12#ifndef OPENVDB_AX_COMPILER_VOLUME_EXECUTABLE_HAS_BEEN_INCLUDED
13#define OPENVDB_AX_COMPILER_VOLUME_EXECUTABLE_HAS_BEEN_INCLUDED
18#include <openvdb/version.h>
21#include <unordered_map>
23class TestVolumeExecutable;
78 using Ptr = std::shared_ptr<VolumeExecutable>;
255 friend class ::TestVolumeExecutable;
272 const std::shared_ptr<const llvm::ExecutionEngine>& engine,
275 const std::unordered_map<std::string, uint64_t>& functions,
281 const std::shared_ptr<const llvm::LLVMContext> mContext;
282 const std::shared_ptr<const llvm::ExecutionEngine> mExecutionEngine;
285 const std::unordered_map<std::string, uint64_t> mFunctionAddresses;
286 std::unique_ptr<Settings> mSettings;
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.
Abstract base class for typed grids.
Definition: Grid.h:78
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 volume grids....
Definition: VolumeExecutable.h:76
void setActiveTileStreamingGrainSize(const size_t g2)
Set the threading grain sizes used when iterating over nodes in a VDB.
void setCreateMissing(const bool flag)
Set the behaviour when missing grids are accessed. Default behaviour is true, which creates them with...
Index getTreeExecutionLevel() const
void execute(openvdb::GridBase &grids) const
Run this volume executable binary on target volumes.
void getTreeExecutionLevel(Index &min, Index &max) const
Get the tree execution levels.
Streaming getActiveTileStreaming() const
IterType getValueIterator() const
std::shared_ptr< VolumeExecutable > Ptr
Definition: VolumeExecutable.h:78
void setValueIterator(const IterType &iter)
Set the value iterator type to use with this executable. Options are ON, OFF, ALL....
void setActiveTileStreaming(const Streaming &s)
Controls the behaviour of expansion of active tiles.
void setGrainSize(const size_t g1)
Set the threading grain sizes used when iterating over nodes in a VDB.
Streaming getActiveTileStreaming(const std::string &name, const ast::tokens::CoreType &type) const
size_t getGrainSize() const
void setTreeExecutionLevel(const Index min, const Index max)
Set the execution level for this executable. This controls what nodes are processed when execute is c...
Streaming
The streaming type of active tiles during execution.
Definition: VolumeExecutable.h:193
bool getCreateMissing() const
void setTreeExecutionLevel(const Index level)
IterType
Definition: VolumeExecutable.h:206
void execute(openvdb::GridPtrVec &grids) const
Run this volume executable binary on target volumes.
size_t getActiveTileStreamingGrainSize() const
VolumeExecutable(const VolumeExecutable &other)
Copy constructor. Shares the LLVM constructs but deep copies the settings. Multiple copies of an exec...
Definition: Compiler.h:31
CoreType
Definition: Tokens.h:32
@ ALL
Definition: IndexIterator.h:43
std::vector< GridBase::Ptr > GridPtrVec
Definition: Grid.h:514
Index32 Index
Definition: Types.h:54
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