Go to the documentation of this file.
12 #ifndef OPENVDB_AX_COMPILER_VOLUME_EXECUTABLE_HAS_BEEN_INCLUDED
13 #define OPENVDB_AX_COMPILER_VOLUME_EXECUTABLE_HAS_BEEN_INCLUDED
21 #include <unordered_map>
23 class TestVolumeExecutable;
26 class ExecutionEngine;
42 using Ptr = std::shared_ptr<VolumeExecutable>;
103 friend class ::TestVolumeExecutable;
117 const std::shared_ptr<const llvm::ExecutionEngine>& engine,
120 const std::unordered_map<std::string, uint64_t>& functions);
125 const std::shared_ptr<const llvm::LLVMContext> mContext;
126 const std::shared_ptr<const llvm::ExecutionEngine> mExecutionEngine;
129 const std::unordered_map<std::string, uint64_t> mFunctionAddresses;
130 std::unique_ptr<Settings> mSettings;
137 #endif // OPENVDB_AX_COMPILER_VOLUME_EXECUTABLE_HAS_BEEN_INCLUDED
bool getCreateMissing() const
Index32 Index
Definition: openvdb/Types.h:32
Definition: Compiler.h:31
std::vector< GridBase::Ptr > GridPtrVec
Definition: Grid.h:514
@ ALL
Definition: IndexIterator.h:43
Access to the CustomData class which can provide custom user user data to the OpenVDB AX Compiler.
Library and file format version numbers.
VolumeExecutable(const VolumeExecutable &other)
Copy constructor. Shares the LLVM constructs but deep copies the settings. Multiple copies of an exec...
void setValueIterator(const IterType &iter)
Set the value iterator type to use with this executable. Options are ON, OFF, ALL....
size_t getGrainSize() const
void execute(openvdb::GridPtrVec &grids) const
Execute AX code on target grids.
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.
Object that encapsulates compiled AX code which can be executed on a collection of VDB volume grids.
Definition: VolumeExecutable.h:40
IterType getValueIterator() const
std::shared_ptr< const CustomData > ConstPtr
Definition: CustomData.h:47
void setTreeExecutionLevel(const Index level)
Set the execution level for this executable. This controls what nodes are processed when execute is c...
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h:153
IterType
Definition: VolumeExecutable.h:81
std::shared_ptr< VolumeExecutable > Ptr
Definition: VolumeExecutable.h:42
void execute(openvdb::GridBase &grid) const
void setCreateMissing(const bool flag)
Set the behaviour when missing grids are accessed. Default behaviour is true, which creates them with...
Abstract base class for typed grids.
Definition: Grid.h:78
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition: version.h:101
std::shared_ptr< const AttributeRegistry > ConstPtr
Definition: AttributeRegistry.h:40
These classes contain lists of expected attributes and volumes which are populated by compiler during...
Definition: openvdb/Exceptions.h:13
The compiler class. This holds an llvm context and set of compiler options, and constructs executable...
Definition: Compiler.h:50
Index getTreeExecutionLevel() const