12 #ifndef OPENVDB_AX_COMPILER_VOLUME_EXECUTABLE_HAS_BEEN_INCLUDED 13 #define OPENVDB_AX_COMPILER_VOLUME_EXECUTABLE_HAS_BEEN_INCLUDED 19 #include <openvdb/version.h> 22 #include <llvm/Config/llvm-config.h> 24 #include <unordered_map> 26 struct TestVolumeExecutableAcc;
29 class ExecutionEngine;
87 using Ptr = std::shared_ptr<VolumeExecutable>;
118 void setCreateMissing(
const bool flag);
120 bool getCreateMissing()
const;
137 void setTreeExecutionLevel(
const Index level);
205 void setActiveTileStreaming(
const Streaming& s);
207 Streaming getActiveTileStreaming()
const;
212 Streaming getActiveTileStreaming(
const std::string& name,
219 void setValueIterator(
const IterType& iter);
240 void setGrainSize(
const size_t g1);
241 void setActiveTileStreamingGrainSize(
const size_t g2);
244 size_t getGrainSize()
const;
247 size_t getActiveTileStreamingGrainSize()
const;
279 static CLI create(
size_t argc,
const char* argv[],
bool* used=
nullptr);
280 static void usage(std::ostream& os,
const bool verbose);
284 std::unique_ptr<Settings<true>> mSettings;
290 void setSettingsFromCLI(
const CLI& cli);
297 Index getTreeExecutionLevel() const;
301 friend struct ::TestVolumeExecutableAcc;
318 #if LLVM_VERSION_MAJOR <= 15 319 const std::shared_ptr<const llvm::LLVMContext>& context,
320 const std::shared_ptr<const llvm::ExecutionEngine>& engine,
322 const std::shared_ptr<const llvm::orc::LLJIT>& mExecutionEngine,
326 const std::unordered_map<std::string, uint64_t>& functions,
330 #if LLVM_VERSION_MAJOR <= 15 333 const std::shared_ptr<const llvm::LLVMContext> mContext;
334 const std::shared_ptr<const llvm::ExecutionEngine> mExecutionEngine;
336 const std::shared_ptr<const llvm::orc::LLJIT> mExecutionEngine;
340 const std::unordered_map<std::string, uint64_t> mFunctionAddresses;
341 std::unique_ptr<Settings<false>> mSettings;
348 #endif // OPENVDB_AX_COMPILER_VOLUME_EXECUTABLE_HAS_BEEN_INCLUDED Definition: FunctionRegistry.h:23
std::vector< GridBase::Ptr > GridPtrVec
Definition: Grid.h:508
Streaming
The streaming type of active tiles during execution.
Definition: VolumeExecutable.h:202
A Tree is the highest concrete (non-abstract) node in the entire AX AST hierarchy. It represents an entire conversion of a valid AX string.
Definition: AST.h:562
Definition: VolumeExecutable.h:268
Index32 Index
Definition: Types.h:54
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 volume grids...
Definition: VolumeExecutable.h:84
Definition: IndexIterator.h:44
std::shared_ptr< const AttributeRegistry > ConstPtr
Definition: AttributeRegistry.h:43
CoreType
Definition: Tokens.h:31
The Attribute Bindings class is used by the compiled Executables to handle the mapping of AX Attribut...
Definition: Exceptions.h:13
Abstract base class for typed grids.
Definition: Grid.h:77
The compiler class. This holds a set of compiler options and constructs executable objects (e...
Definition: Compiler.h:50
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...
IterType
Definition: VolumeExecutable.h:215
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition: version.h.in:121
std::shared_ptr< VolumeExecutable > Ptr
Definition: VolumeExecutable.h:87
Command Line Interface handling for the VolumeExecutable.
Definition: VolumeExecutable.h:274
This class wraps an interface for a map of attribute bindings. These map attributes in AX code to con...
Definition: AttributeBindings.h:36
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h.in:218