12 #ifndef OPENVDB_AX_COMPILER_POINT_EXECUTABLE_HAS_BEEN_INCLUDED
13 #define OPENVDB_AX_COMPILER_POINT_EXECUTABLE_HAS_BEEN_INCLUDED
20 #include <openvdb/version.h>
23 #include <unordered_map>
25 class TestPointExecutable;
28 class ExecutionEngine;
73 using Ptr = std::shared_ptr<PointExecutable>;
147 friend class ::TestPointExecutable;
166 PointExecutable(
const std::shared_ptr<const llvm::LLVMContext>& context,
167 const std::shared_ptr<const llvm::ExecutionEngine>& engine,
170 const std::unordered_map<std::string, uint64_t>& functions,
176 const std::shared_ptr<const llvm::LLVMContext> mContext;
177 const std::shared_ptr<const llvm::ExecutionEngine> mExecutionEngine;
180 const std::unordered_map<std::string, uint64_t> mFunctionAddresses;
181 std::unique_ptr<Settings> mSettings;
The Attribute Bindings class is used by the compiled Executables to handle the mapping of AX Attribut...
These classes contain lists of expected attributes and volumes which are populated by compiler during...
Access to the CustomData class which can provide custom user user data to the OpenVDB AX Compiler.
Attribute-owned data structure for points. Point attributes are stored in leaf nodes and ordered by v...
Container class that associates a tree with a transform and metadata.
Definition: Grid.h:573
This class wraps an interface for a map of attribute bindings. These map attributes in AX code to con...
Definition: AttributeBindings.h:37
std::shared_ptr< const AttributeRegistry > ConstPtr
Definition: AttributeRegistry.h:42
The compiler class. This holds an llvm context and set of compiler options, and constructs executable...
Definition: Compiler.h:50
std::shared_ptr< const CustomData > ConstPtr
Definition: CustomData.h:38
Object that encapsulates compiled AX code which can be executed on a collection of VDB Point Data gri...
Definition: PointExecutable.h:71
void setCreateMissing(const bool flag)
Set the behaviour when missing point attributes are accessed. Default behaviour is true,...
std::shared_ptr< PointExecutable > Ptr
Definition: PointExecutable.h:73
void execute(points::PointDataGrid &grid) const
Run this point executable binary on a target PointDataGrid.
PointExecutable(const PointExecutable &other)
Copy constructor. Shares the LLVM constructs but deep copies the settings. Multiple copies of an exec...
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.
const AttributeBindings & getAttributeBindings() const
void setGroupExecution(const std::string &name)
Set a specific point group to execute over. The default is none, which corresponds to all points....
const std::string & getGroupExecution() const
size_t getGrainSize() const
bool getCreateMissing() const
void setAttributeBindings(const AttributeBindings &bindings)
Set attribute bindings.
Definition: Compiler.h:31
Definition: Exceptions.h:13
A Tree is the highest concrete (non-abstract) node in the entire AX AST hierarchy....
Definition: AST.h:562
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition: version.h.in:116
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h.in:202