40 #ifndef OPENVDB_POINTS_RASTERIZE_SDF_HAS_BEEN_INCLUDED
41 #define OPENVDB_POINTS_RASTERIZE_SDF_HAS_BEEN_INCLUDED
51 #include <openvdb/thread/Threading.h>
54 #include <unordered_map>
56 #include <tbb/task_group.h>
57 #include <tbb/parallel_reduce.h>
76 template <
typename PointDataGridT,
77 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
78 typename FilterT = NullFilter,
79 typename InterrupterT = util::NullInterrupter>
84 math::Transform::Ptr transform =
nullptr,
85 const FilterT& filter = NullFilter(),
86 InterrupterT* interrupter =
nullptr);
100 template <
typename PointDataGridT,
101 typename RadiusT = float,
102 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
103 typename FilterT = NullFilter,
104 typename InterrupterT = util::NullInterrupter>
107 const std::string& radius,
110 math::Transform::Ptr transform =
nullptr,
111 const FilterT& filter = NullFilter(),
112 InterrupterT* interrupter =
nullptr);
138 template <
typename PointDataGridT,
140 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
141 typename FilterT = NullFilter,
142 typename InterrupterT = util::NullInterrupter>
146 const std::vector<std::string>& attributes,
148 math::Transform::Ptr transform =
nullptr,
149 const FilterT& filter = NullFilter(),
150 InterrupterT* interrupter =
nullptr);
176 template <
typename PointDataGridT,
178 typename RadiusT = float,
179 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
180 typename FilterT = NullFilter,
181 typename InterrupterT = util::NullInterrupter>
184 const std::string& radius,
185 const std::vector<std::string>& attributes,
188 math::Transform::Ptr transform =
nullptr,
189 const FilterT& filter = NullFilter(),
190 InterrupterT* interrupter =
nullptr);
210 template <
typename PointDataGridT,
211 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
212 typename FilterT = NullFilter,
213 typename InterrupterT = util::NullInterrupter>
217 const Real searchRadius,
219 math::Transform::Ptr transform =
nullptr,
220 const FilterT& filter = NullFilter(),
221 InterrupterT* interrupter =
nullptr);
246 template <
typename PointDataGridT,
247 typename RadiusT = float,
248 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
249 typename FilterT = NullFilter,
250 typename InterrupterT = util::NullInterrupter>
253 const std::string& radius,
254 const Real radiusScale,
255 const Real searchRadius,
257 math::Transform::Ptr transform =
nullptr,
258 const FilterT& filter = NullFilter(),
259 InterrupterT* interrupter =
nullptr);
292 template <
typename PointDataGridT,
294 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
295 typename FilterT = NullFilter,
296 typename InterrupterT = util::NullInterrupter>
300 const Real searchRadius,
301 const std::vector<std::string>& attributes,
303 math::Transform::Ptr transform =
nullptr,
304 const FilterT& filter = NullFilter(),
305 InterrupterT* interrupter =
nullptr);
342 template <
typename PointDataGridT,
344 typename RadiusT = float,
345 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
346 typename FilterT = NullFilter,
347 typename InterrupterT = util::NullInterrupter>
350 const std::string& radius,
351 const Real radiusScale,
352 const Real searchRadius,
353 const std::vector<std::string>& attributes,
355 math::Transform::Ptr transform =
nullptr,
356 const FilterT& filter = NullFilter(),
357 InterrupterT* interrupter =
nullptr);
Attribute-owned data structure for points. Point attributes are stored in leaf nodes and ordered by v...
Functions to perform multi threaded reductions and analysis of arbitrary point attribute types....
Framework methods for rasterizing PointDataGrid data to Trees.
Defined various multi-threaded utility functions for trees.
MatType scale(const Vec3< typename MatType::value_type > &s)
Return a matrix that scales by s.
Definition: Mat.h:637
GridPtrVec rasterizeSmoothSpheres(const PointDataGridT &points, const std::string &radius, const Real radiusScale, const Real searchRadius, const std::vector< std::string > &attributes, const Real halfband=LEVEL_SET_HALF_WIDTH, math::Transform::Ptr transform=nullptr, const FilterT &filter=NullFilter(), InterrupterT *interrupter=nullptr)
Smoothed point distribution based sphere stamping with a varying radius and closest point attribute t...
Definition: PointRasterizeSDFImpl.h:1299
GridPtrVec rasterizeSpheres(const PointDataGridT &points, const std::string &radius, const std::vector< std::string > &attributes, const Real scale=1.0, const Real halfband=LEVEL_SET_HALF_WIDTH, math::Transform::Ptr transform=nullptr, const FilterT &filter=NullFilter(), InterrupterT *interrupter=nullptr)
Narrow band sphere stamping with a varying radius and closest point attribute transfer.
Definition: PointRasterizeSDFImpl.h:1145
static const Real LEVEL_SET_HALF_WIDTH
Definition: Types.h:422
std::vector< GridBase::Ptr > GridPtrVec
Definition: Grid.h:510
NumericAttributeTypes::Append< Vec3AttributeTypes >::Append< Mat3AttributeTypes >::Append< Mat4AttributeTypes >::Append< QuatAttributeTypes >::Append< points::GroupAttributeArray >::Append< points::StringAttributeArray >::Append< points::TypedAttributeArray< bool > > AttributeTypes
The attribute array types which OpenVDB will register by default.
Definition: openvdb.h:186
double Real
Definition: Types.h:60
Definition: Exceptions.h:13
#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