Object that encapsulates compiled AX code which can be executed on a collection of VDB Point Data grids. Executables are created by the compiler and hold the final immutable JIT compiled function and context.
More...
|
| ~PointExecutable () |
|
| PointExecutable (const PointExecutable &other) |
| Copy constructor. Shares the LLVM constructs but deep copies the settings. Multiple copies of an executor can be used at the same time safely. More...
|
|
void | execute (points::PointDataGrid &grid) const |
| Run this point executable binary on a target PointDataGrid. More...
|
|
void | setGroupExecution (const std::string &name) |
| Set a specific point group to execute over. The default is none, which corresponds to all points. Note that this can also be compiled into the AX function using the ingroup("mygroup") method. More...
|
|
const std::string & | getGroupExecution () const |
|
void | setCreateMissing (const bool flag) |
| Set the behaviour when missing point attributes are accessed. Default behaviour is true, which creates them with default initial values. If false, a missing attribute runtime error will be thrown on missing accesses. More...
|
|
bool | getCreateMissing () const |
|
void | setGrainSize (const size_t grain) |
| Set the threading grain size. Default is 1. A value of 0 has the effect of disabling multi-threading. More...
|
|
size_t | getGrainSize () const |
|
Object that encapsulates compiled AX code which can be executed on a collection of VDB Point Data grids. Executables are created by the compiler and hold the final immutable JIT compiled function and context.
The PointExecutable is returned from the ax::Compiler when compiling AX code for point execution. The class represents a typical AX executable object; immutable except for execution settings and implements 'execute' functions which can be called multiple times for arbitrary sets of inputs. The intended usage of these executables is to configure their runtime arguments and then call PointExecutable::execute with your VDBs. For example:
exe->setCreateMissing(false);
exe->setGroupExecution("group1");
exe->execute(vdbs);
exe->execute(points);
std::shared_ptr< PointExecutable > Ptr
Definition: PointExecutable.h:72
PointExecutable(const PointExecutable &other)
Copy constructor. Shares the LLVM constructs but deep copies the settings. Multiple copies of an exec...
The setCreateMissing is initialised with specific configurable settings:
- Create Missing: True By default, create any missing attributes that were accessed
- See also
- setCreateMissing
- Group Execution: All By default, process all points regardless of their group membership
- See also
- setGroupExecution
- Grain size: 1 The default grain sizes passed to the tbb partitioner for leaf level processing.
- See also
- setGrainSize
For more in depth information, see the Executables documentation.
Run this point executable binary on a target PointDataGrid.
This method reads from the stored settings on the executable to determine certain behaviour and runs the JIT compiled function across every valid point. Point attributes may be created, deleted collapsed or expanded, and points themselves may be added, deleted or moved.
This method is thread safe; it can be run concurrently from the same PointExecutable instance on different inputs.
- Parameters
-
grid | The PointDataGrid to process |