OpenVDB 9.0.0
|
Namespaces | |
namespace | ast |
namespace | codegen |
namespace | math |
Classes | |
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... | |
Typedefs | |
using | AXStringMetadata = TypedMetadata< ax::codegen::String > |
Functions | |
void | initialize () |
Initializes OpenVDB AX and subsequent LLVM components. More... | |
bool | isInitialized () |
Check to see if OpenVDB AX components have been initialized. More... | |
void | uninitialize () |
Uninitialize and deregister OpenVDB AX. More... | |
void | run (const char *ax, openvdb::GridBase &grid) |
Run a full AX pipeline (parse, compile and execute) on a single OpenVDB Grid. More... | |
void | run (const char *ax, openvdb::GridPtrVec &grids) |
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... | |
void openvdb::v9_0::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.
bool openvdb::v9_0::ax::isInitialized | ( | ) |
Check to see if OpenVDB AX components have been initialized.
void openvdb::v9_0::ax::run | ( | const char * | ax, |
openvdb::GridBase & | grid | ||
) |
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 |
void openvdb::v9_0::ax::run | ( | const char * | ax, |
openvdb::GridPtrVec & | grids | ||
) |
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 |
void openvdb::v9_0::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.