|
class | AttributeBindings |
| This class wraps an interface for a map of attribute bindings. These map attributes in AX code to context data. These mappings are one-to-one i.e. each AX name can only map to one data name, however each name can appear as either an AX name or data name or both, i.e. the following sets of bindings are valid: axname: a -> dataname: a axname: b -> dataname: c or axname: a -> dataname: b axname: b -> dataname: a. More...
|
|
class | AttributeRegistry |
| This class stores a list of access names, types and their dependency connections. More...
|
|
class | Compiler |
| The compiler class. This holds an llvm context and set of compiler options, and constructs executable objects (e.g. PointExecutable or VolumeExecutable) from a syntax tree or snippet of code. More...
|
|
struct | CompilerOptions |
| Settings which control how a Compiler class object behaves. More...
|
|
class | CustomData |
| The custom data class is a simple container for named openvdb metadata. Its primary use case is passing arbitrary "external" data to an AX executable object when calling Compiler::compile. For example, it is the mechanism by which we pass data held inside of a parent DCC to executable AX code. More...
|
|
struct | FunctionOptions |
| Options that control how functions behave. More...
|
|
class | Logger |
| Logger for collecting errors and warnings that occur during AX compilation. More...
|
|
class | PointExecutable |
| 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...
|
|
class | VolumeExecutable |
| Object that encapsulates compiled AX code which can be executed on a collection of VDB volume grids. Executables are created by the compiler and hold the final immutable JIT compiled function and context. More...
|
|
Run a full AX pipeline (parse, compile and execute) on a vector of OpenVDB numerical grids OR a vector of OpenVDB Point Data grids.
This method wraps the parsing, compilation and execution of AX code for a vector of OpenVDB grids. The vector must contain either a set of any numerical grids supported by the default AX types OR a set of OpenVDB Points grids. On success, grids in the provided grid vector will be iterated over and updated if they are written to.
- Warning
- The type of grids provided changes the type of AX compilation. If the vector is empty, this function immediately returns with no other effect.
- Note
- Various defaults are applied to this pipeline to provide a simple run signature. For numerical grids, only active voxels are processed and missing grid creation is disabled. For OpenVDB Points grids, all points are processed. Any warnings generated by the parser, compiler or executable will be ignored.
-
Various runtime errors may be thrown from the different AX pipeline stages. See Exceptions.h for the possible different errors.
- Parameters
-
ax | The null terminated AX code string to parse and compile |
grids | The grids to which to apply the compiled AX function |
bindings | An attribute bindings object mapping names in the AX string to names of the point attributes/grids (points/volumes resp.) This can be initialized as a vector of pairs of strings e.g. {{"axname0","dataname0"}, {"axname1","dataname1"}} see AttributeBindings.h for details. |