OpenVDB
12.1.0
|
Namespaces | |
ast | |
codegen | |
math | |
Classes | |
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 a 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... | |
Typedefs | |
using | String.h = TypedMetadata< ax::codegen::String > |
Functions | |
OPENVDB_AX_API void | initialize () |
Initializes OpenVDB AX and subsequent LLVM components. More... | |
OPENVDB_AX_API bool | isInitialized () |
Check to see if OpenVDB AX components have been initialized. More... | |
OPENVDB_AX_API void | uninitialize () |
Uninitialize and deregister OpenVDB AX. More... | |
OPENVDB_AX_API void | run (const char *ax, openvdb::GridBase &grid, const AttributeBindings &bindings={}) |
Run a full AX pipeline (parse, compile and execute) on a single OpenVDB Grid. More... | |
OPENVDB_AX_API void | run (const char *ax, openvdb::GridPtrVec &grids, const AttributeBindings &bindings={}) |
Run a full AX pipeline (parse, compile and execute) on a vector of OpenVDB numerical grids OR a vector of OpenVDB Point Data grids. More... | |
std::ostream & | operator<< (std::ostream &os, const AttributeBindings &bindings) |
using String.h = TypedMetadata<ax::codegen::String> |
OPENVDB_AX_API void openvdb::v12_1::ax::initialize | ( | ) |
Initializes OpenVDB AX and subsequent LLVM components.
Must be called before any AX compilation or execution is performed. Can be safely called from multiple threads. Cannot be called after uninitialize has been called.
OPENVDB_AX_API bool openvdb::v12_1::ax::isInitialized | ( | ) |
Check to see if OpenVDB AX components have been initialized.
|
inline |
OPENVDB_AX_API void openvdb::v12_1::ax::run | ( | const char * | ax, |
openvdb::GridBase & | grid, | ||
const AttributeBindings & | bindings = {} |
||
) |
Run a full AX pipeline (parse, compile and execute) on a single OpenVDB Grid.
This method wraps the parsing, compilation and execution of AX code for a single OpenVDB grid of any standard grid type (including OpenVDB Points Grids). Provided AX code is expected to only refer to the provided single grid. On success, the grid will have its voxels or point data modified as dictated by the provided AX code.
ax | The null terminated AX code string to parse and compile |
grid | The grid 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. |
OPENVDB_AX_API void openvdb::v12_1::ax::run | ( | const char * | ax, |
openvdb::GridPtrVec & | grids, | ||
const AttributeBindings & | bindings = {} |
||
) |
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.
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. |
OPENVDB_AX_API void openvdb::v12_1::ax::uninitialize | ( | ) |
Uninitialize and deregister OpenVDB AX.
This has the important function of shutting down LLVM and correctly freeing statically allocated LLVM types. Should be called on application termination. Can be safely called from multiple threads.