10#ifndef OPENVDB_POINTS_POINT_RASTERIZE_FRUSTUM_HAS_BEEN_INCLUDED
11#define OPENVDB_POINTS_POINT_RASTERIZE_FRUSTUM_HAS_BEEN_INCLUDED
17#include <openvdb/thread/Threading.h>
44 bool isStatic()
const;
53 bool hasWeight(
Index i)
const;
54 float weight(
Index i)
const;
60 void setShutter(
float start,
float end);
61 float shutterStart()
const;
62 float shutterEnd()
const;
65 std::deque<math::Transform> mTransforms;
66 std::deque<float> mWeights;
68 float mShutterStart = -0.25f,
92 : transform(new math::Transform(_transform))
93 , camera(_transform) { }
97 bool scaleByVoxelVolume =
false,
99 accurateFrustumRadius =
false,
100 accurateSphereMotionBlur =
false,
101 velocityMotionBlur =
false,
103 float threshold = 1e-6f,
105 framesPerSecond = 24.0f;
107 radiusAttribute =
"pscale";
108 int motionSamples = 2;
122 const bool clipToFrustum =
true,
123 const bool invert =
false);
125 operator bool()
const;
136 bool mInvert =
false;
140namespace point_rasterize_internal {
142template <
typename Po
intDataGr
idT>
163template<
typename Po
intDataGr
idT>
188 void addPoints(
GridPtr& points,
bool stream =
false);
197 size_t memUsage()
const;
199 template <
typename FilterT = po
ints::NullFilter>
201 rasterizeUniformDensity(
RasterMode mode=RasterMode::MAXIMUM,
202 bool reduceMemory =
false,
float scale = 1.0f,
const FilterT& filter = FilterT());
204 template <
typename FilterT = po
ints::NullFilter>
207 bool reduceMemory =
false,
float scale = 1.0f,
const FilterT& filter = FilterT());
209 template <
typename FilterT = po
ints::NullFilter>
211 rasterizeAttribute(
const Name& attribute,
RasterMode mode=RasterMode::ACCUMULATE,
212 bool reduceMemory =
false,
float scale = 1.0f,
const FilterT& filter = FilterT());
214 template <
typename Gr
idT,
typename AttributeT,
typename FilterT = po
ints::NullFilter>
216 rasterizeAttribute(
const Name& attribute,
RasterMode mode=RasterMode::ACCUMULATE,
217 bool reduceMemory =
false,
float scale = 1.0f,
const FilterT& filter = FilterT());
219 template <
typename Gr
idT,
typename FilterT = po
ints::NullFilter>
221 rasterizeMask(
bool reduceMemory =
false,
const FilterT& filter = FilterT());
224 template <
typename AttributeT,
typename Gr
idT,
typename FilterT>
226 performRasterization(
228 bool reduceMemory,
float scale,
const FilterT& filter);
235 std::vector<GridToRasterize> mPointGrids;
Digital Differential Analyzers specialized for VDB.
Methods for counting points in VDB Point grids.
Attribute-owned data structure for points. Point attributes are stored in leaf nodes and ordered by v...
SharedPtr< GridBase > Ptr
Definition Grid.h:80
Container class that associates a tree with a transform and metadata.
Definition Grid.h:571
SharedPtr< Grid > Ptr
Definition Grid.h:573
Axis-aligned bounding box of signed integer coordinates.
Definition Coord.h:252
Signed (x, y, z) 32-bit integer coordinates.
Definition Coord.h:26
Efficient rasterization of one or more VDB Points grids into a linear or frustum volume with the opti...
Definition PointRasterizeFrustum.h:165
typename PointDataGridT::ConstPtr GridConstPtr
Definition PointRasterizeFrustum.h:168
typename PointDataGridT::Ptr GridPtr
Definition PointRasterizeFrustum.h:167
A camera class that provides an interface for camera motion blur when rasterizing.
Definition PointRasterizeFrustum.h:40
Definition PointRasterizeFrustum.h:143
SharedPtr< const Tree > ConstPtr
Definition Tree.h:198
The Value Accessor Implementation and API methods. The majoirty of the API matches the API of a compa...
Definition ValueAccessor.h:367
RasterMode
How to composite points into a volume.
Definition PointRasterizeFrustum.h:31
std::string Name
Definition Name.h:19
Index32 Index
Definition Types.h:54
Definition Exceptions.h:13
Definition PointRasterizeFrustum.h:113
FrustumRasterizerMask()=default
A group of shared settings to be used in the Volume Rasterizer.
Definition PointRasterizeFrustum.h:88
FrustumRasterizerSettings()=delete
math::Transform::Ptr transform
Definition PointRasterizeFrustum.h:95
RasterCamera camera
Definition PointRasterizeFrustum.h:96
FrustumRasterizerSettings(const math::Transform &_transform)
Definition PointRasterizeFrustum.h:91
A struct that stores all include/exclude attribute names as strings and is internally converted into ...
Definition PointRasterizeFrustum.h:242
std::vector< Name > excludeNames
Definition PointRasterizeFrustum.h:244
std::vector< Name > includeNames
Definition PointRasterizeFrustum.h:243
Base class for interrupters.
Definition NullInterrupter.h:26
#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:218