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> 
   65    std::deque<math::Transform> mTransforms;
 
   66    std::deque<float> mWeights;
 
   68    float mShutterStart = -0.25f,
 
 
  122        const bool clipToFrustum = 
true,
 
  123        const bool invert = 
false);
 
  125    operator bool() 
const;
 
  136    bool mInvert = 
false;
 
 
  142template <
typename Po
intDataGr
idT>
 
 
  163template<
typename Po
intDataGr
idT>
 
  199    template <
typename FilterT = po
ints::NullFilter>
 
  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>
 
  212        bool reduceMemory = 
false, 
float scale = 1.0f, 
const FilterT& filter = FilterT());
 
  214    template <
typename Gr
idT, 
typename AttributeT, 
typename FilterT = po
ints::NullFilter>
 
  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
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
typename PointDataGridT::ConstPtr GridConstPtr
Definition PointRasterizeFrustum.h:168
size_t memUsage() const
Return memory usage of the rasterizer.
Definition PointRasterizeFrustumImpl.h:1315
point_rasterize_internal::GridToRasterize< PointDataGridT > GridToRasterize
Definition PointRasterizeFrustum.h:169
size_t size() const
Return number of PointDataGrids in the rasterizer.
Definition PointRasterizeFrustumImpl.h:1308
FrustumRasterizer(const FrustumRasterizerSettings &settings, const FrustumRasterizerMask &mask=FrustumRasterizerMask(), util::NullInterrupter *interrupt=nullptr)
main constructor
Definition PointRasterizeFrustumImpl.h:1265
FloatGrid::Ptr rasterizeDensity(const openvdb::Name &attribute, RasterMode mode=RasterMode::MAXIMUM, bool reduceMemory=false, float scale=1.0f, const FilterT &filter=FilterT())
Definition PointRasterizeFrustumImpl.h:1340
void addPoints(GridConstPtr &points)
Append a PointDataGrid to the rasterizer (but don't rasterize yet).
Definition PointRasterizeFrustumImpl.h:1280
GridT::Ptr rasterizeMask(bool reduceMemory=false, const FilterT &filter=FilterT())
Definition PointRasterizeFrustumImpl.h:1440
typename PointDataGridT::Ptr GridPtr
Definition PointRasterizeFrustum.h:167
void clear()
Clear all PointDataGrids in the rasterizer.
Definition PointRasterizeFrustumImpl.h:1301
GridBase::Ptr rasterizeAttribute(const Name &attribute, RasterMode mode=RasterMode::ACCUMULATE, bool reduceMemory=false, float scale=1.0f, const FilterT &filter=FilterT())
Definition PointRasterizeFrustumImpl.h:1352
FloatGrid::Ptr rasterizeUniformDensity(RasterMode mode=RasterMode::MAXIMUM, bool reduceMemory=false, float scale=1.0f, const FilterT &filter=FilterT())
Definition PointRasterizeFrustumImpl.h:1327
A camera class that provides an interface for camera motion blur when rasterizing.
Definition PointRasterizeFrustum.h:40
float weight(Index i) const
Definition PointRasterizeFrustumImpl.h:1126
void simplify()
Definition PointRasterizeFrustumImpl.h:1089
const math::Transform & transform(Index i) const
Definition PointRasterizeFrustumImpl.h:1136
size_t size() const
Definition PointRasterizeFrustumImpl.h:1084
const math::Transform & firstTransform() const
Definition PointRasterizeFrustumImpl.h:1146
bool isStatic() const
Definition PointRasterizeFrustumImpl.h:1067
void setShutter(float start, float end)
Definition PointRasterizeFrustumImpl.h:1158
void appendTransform(const math::Transform &, float weight=1.0f)
Definition PointRasterizeFrustumImpl.h:1078
float shutterEnd() const
Definition PointRasterizeFrustumImpl.h:1169
bool hasWeight(Index i) const
Definition PointRasterizeFrustumImpl.h:1119
RasterCamera(const math::Transform &transform)
Definition PointRasterizeFrustumImpl.h:1063
void clear()
Definition PointRasterizeFrustumImpl.h:1072
const math::Transform & lastTransform() const
Definition PointRasterizeFrustumImpl.h:1152
float shutterStart() const
Definition PointRasterizeFrustumImpl.h:1164
Definition PointRasterizeFrustum.h:143
SharedPtr< const Tree > ConstPtr
Definition Tree.h:198
Definition PointRasterizeFrustum.h:140
Definition AttributeArray.h:42
RasterMode
How to composite points into a volume.
Definition PointRasterizeFrustum.h:31
@ MAXIMUM
Definition PointRasterizeFrustum.h:33
@ AVERAGE
Definition PointRasterizeFrustum.h:34
@ ACCUMULATE
Definition PointRasterizeFrustum.h:32
ValueAccessorImpl< TreeType, IsSafe, MutexType, openvdb::make_index_sequence< CacheLevels > > ValueAccessor
Default alias for a ValueAccessor. This is simply a helper alias for the generic definition but takes...
Definition ValueAccessor.h:86
std::string Name
Definition Name.h:19
Index32 Index
Definition Types.h:54
math::BBox< Vec3d > BBoxd
Definition Types.h:84
Grid< MaskTree > MaskGrid
Definition openvdb.h:78
Definition Exceptions.h:13
Definition PointRasterizeFrustum.h:113
FrustumRasterizerMask()=default
bool valid(const Coord &ijk, AccessorT *acc) const
Definition PointRasterizeFrustumImpl.h:1252
const tree::ValueAccessor< const MaskTree > AccessorT
Definition PointRasterizeFrustum.h:114
MaskTree::ConstPtr getTreePtr() const
Definition PointRasterizeFrustumImpl.h:1240
const CoordBBox & clipBBox() const
Definition PointRasterizeFrustumImpl.h:1246
A group of shared settings to be used in the Volume Rasterizer.
Definition PointRasterizeFrustum.h:88
int motionSamples
Definition PointRasterizeFrustum.h:108
bool accurateFrustumRadius
Definition PointRasterizeFrustum.h:99
bool useRadius
Definition PointRasterizeFrustum.h:98
FrustumRasterizerSettings()=delete
float threshold
Definition PointRasterizeFrustum.h:103
float radiusScale
Definition PointRasterizeFrustum.h:104
math::Transform::Ptr transform
Definition PointRasterizeFrustum.h:95
Name velocityAttribute
Definition PointRasterizeFrustum.h:106
bool velocityMotionBlur
Definition PointRasterizeFrustum.h:101
bool accurateSphereMotionBlur
Definition PointRasterizeFrustum.h:100
bool threaded
Definition PointRasterizeFrustum.h:102
float framesPerSecond
Definition PointRasterizeFrustum.h:105
RasterCamera camera
Definition PointRasterizeFrustum.h:96
FrustumRasterizerSettings(const math::Transform &_transform)
Definition PointRasterizeFrustum.h:91
bool scaleByVoxelVolume
Definition PointRasterizeFrustum.h:97
Name radiusAttribute
Definition PointRasterizeFrustum.h:107
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