12#ifndef OPENVDB_AX_POINT_COMPUTE_GENERATOR_HAS_BEEN_INCLUDED
13#define OPENVDB_AX_POINT_COMPUTE_GENERATOR_HAS_BEEN_INCLUDED
20#include "../compiler/AttributeRegistry.h"
22#include <openvdb/version.h>
39 void(
const void*
const,
52 static const size_t N_ARGS = FunctionTraitsT::N_ARGS;
62 void(
const void*
const,
75 static const size_t N_ARGS = FunctionTraitsT::N_ARGS;
85 void(
const void*
const,
98 static const size_t N_ARGS = FunctionTraitsT::N_ARGS;
108 void(
const void*
const,
109 const int32_t (*)[3],
122 static const size_t N_ARGS = FunctionTraitsT::N_ARGS;
132namespace codegen_internal {
153 using ComputeGenerator::traverse;
154 using ComputeGenerator::visit;
Attribute Array storage templated on type and compression codec.
The core visitor framework for code generation.
Contains frameworks for creating custom AX functions which can be registered within the FunctionRegis...
Consolidated llvm types for most supported types.
This class stores a list of access names, types and their dependency connections.
Definition AttributeRegistry.h:39
std::shared_ptr< AttributeRegistry > Ptr
Definition AttributeRegistry.h:41
Logger for collecting errors and warnings that occur during AX compilation.
Definition Logger.h:58
The function registry which is used for function code generation. Each time a function is visited wit...
Definition FunctionRegistry.h:36
uint32_t Index32
Definition Types.h:52
Definition Exceptions.h:13
Utility classes and functions for OpenVDB plugins.
Options that control how functions behave.
Definition CompilerOptions.h:25
Attributes represent any access to a primitive value, typically associated with the '@' symbol syntax...
Definition AST.h:1874
A Tree is the highest concrete (non-abstract) node in the entire AX AST hierarchy....
Definition AST.h:562
Templated function traits which provides compile-time index access to the types of the function signa...
Definition Types.h:279
Definition PointComputeGenerator.h:59
static const std::array< const char *, N_ARGS > & argumentKeys()
void(const void *const, const int32_t(*)[3], Index32 *, bool, uint64_t, void **, void **, uint64_t *, const void *const, void **, void *) Signature
Definition PointComputeGenerator.h:72
static const char * getDefaultName()
Definition PointComputeGenerator.h:105
static const std::array< const char *, N_ARGS > & argumentKeys()
void(const void *const, const int32_t(*)[3], Index32 *, uint64_t *, int64_t, uint64_t, void **, void **, uint64_t *, const void *const, void **, void *) Signature
Definition PointComputeGenerator.h:119
static const char * getDefaultName()
Definition PointComputeGenerator.h:82
static const std::array< const char *, N_ARGS > & argumentKeys()
void(const void *const, const int32_t(*)[3], Index32 *, bool, uint64_t, void **, void **, uint64_t *, const void *const, void **, void *) Signature
Definition PointComputeGenerator.h:95
static const char * getDefaultName()
Definition PointComputeGenerator.h:36
static const std::array< const char *, N_ARGS > & argumentKeys()
void(const void *const, const int32_t(*)[3], Index32 *, bool, uint64_t, void **, void **, uint64_t *, const void *const, void **, void *) Signature
Definition PointComputeGenerator.h:49
static const char * getDefaultName()
Visitor object which will generate llvm IR for a syntax tree. This provides the majority of the code ...
Definition ComputeGenerator.h:87
Visitor object which will generate llvm IR for a syntax tree which has been generated from AX that ta...
Definition PointComputeGenerator.h:139
AttributeRegistry::Ptr generate(const ast::Tree &node)
~PointComputeGenerator() override=default
bool visit(const ast::Attribute *) override
Visitor methods for all AST nodes which implement IR generation.
PointComputeGenerator(llvm::Module &module, const FunctionOptions &options, FunctionRegistry &functionRegistry, Logger &logger)
Constructor.
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition version.h.in:121
#define OPENVDB_USE_VERSION_NAMESPACE
Definition version.h.in:212