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 <unordered_map> 24 class TestVolumeExecutable;
27 class ExecutionEngine;
82 using Ptr = std::shared_ptr<VolumeExecutable>;
113 void setCreateMissing(
const bool flag);
115 bool getCreateMissing()
const;
132 void setTreeExecutionLevel(
const Index level);
200 void setActiveTileStreaming(
const Streaming& s);
202 Streaming getActiveTileStreaming()
const;
207 Streaming getActiveTileStreaming(
const std::string& name,
214 void setValueIterator(
const IterType& iter);
235 void setGrainSize(
const size_t g1);
236 void setActiveTileStreamingGrainSize(
const size_t g2);
239 size_t getGrainSize()
const;
242 size_t getActiveTileStreamingGrainSize()
const;
274 static CLI create(
size_t argc,
const char* argv[],
bool* used=
nullptr);
275 static void usage(std::ostream& os,
const bool verbose);
279 std::unique_ptr<Settings<true>> mSettings;
285 void setSettingsFromCLI(
const CLI& cli);
292 Index getTreeExecutionLevel() const;
296 friend class ::TestVolumeExecutable;
313 const
std::shared_ptr<const
llvm::ExecutionEngine>& engine,
316 const
std::unordered_map<
std::
string, uint64_t>& functions,
317 const ast::Tree& tree);
322 const
std::shared_ptr<const
llvm::LLVMContext> mContext;
323 const
std::shared_ptr<const
llvm::ExecutionEngine> mExecutionEngine;
326 const
std::unordered_map<
std::
string, uint64_t> mFunctionAddresses;
334 #endif // OPENVDB_AX_COMPILER_VOLUME_EXECUTABLE_HAS_BEEN_INCLUDED Definition: Compiler.h:31
IterType
Definition: VolumeExecutable.h:210
CoreType
Definition: Tokens.h:31
std::shared_ptr< VolumeExecutable > Ptr
Definition: VolumeExecutable.h:82
This class stores a list of access names, types and their dependency connections. ...
Definition: AttributeRegistry.h:38
This class wraps an interface for a map of attribute bindings. These map attributes in AX code to con...
Definition: AttributeBindings.h:36
Streaming
The streaming type of active tiles during execution.
Definition: VolumeExecutable.h:197
The custom data class is a simple container for named openvdb metadata. Its primary use case is passi...
Definition: CustomData.h:33
The Attribute Bindings class is used by the compiled Executables to handle the mapping of AX Attribut...
Definition: Exceptions.h:13
Index32 Index
Definition: Types.h:54
Definition: VolumeExecutable.h:263
std::vector< GridBase::Ptr > GridPtrVec
Definition: Grid.h:508
These classes contain lists of expected attributes and volumes which are populated by compiler during...
The compiler class. This holds an llvm context and set of compiler options, and constructs executable...
Definition: Compiler.h:49
Definition: IndexIterator.h:43
Access to the CustomData class which can provide custom user user data to the OpenVDB AX Compiler...
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition: version.h.in:121
Abstract base class for typed grids.
Definition: Grid.h:77
Object that encapsulates compiled AX code which can be executed on a collection of VDB volume grids...
Definition: VolumeExecutable.h:79
Command Line Interface handling for the VolumeExecutable.
Definition: VolumeExecutable.h:269
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h.in:212