40 #ifndef OPENVDB_POINTS_RASTERIZE_SDF_HAS_BEEN_INCLUDED 41 #define OPENVDB_POINTS_RASTERIZE_SDF_HAS_BEEN_INCLUDED 51 #include <openvdb/thread/Threading.h> 55 #include <unordered_map> 57 #include <tbb/task_group.h> 58 #include <tbb/parallel_reduce.h> 77 template <
typename PointDataGridT,
78 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
79 typename FilterT = NullFilter,
80 typename InterrupterT = util::NullInterrupter>
85 math::Transform::Ptr transform =
nullptr,
86 const FilterT& filter = NullFilter(),
87 InterrupterT* interrupter =
nullptr);
101 template <
typename PointDataGridT,
102 typename RadiusT = float,
103 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
104 typename FilterT = NullFilter,
105 typename InterrupterT = util::NullInterrupter>
108 const std::string& radius,
111 math::Transform::Ptr transform =
nullptr,
112 const FilterT& filter = NullFilter(),
113 InterrupterT* interrupter =
nullptr);
139 template <
typename PointDataGridT,
141 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
142 typename FilterT = NullFilter,
143 typename InterrupterT = util::NullInterrupter>
147 const std::vector<std::string>& attributes,
149 math::Transform::Ptr transform =
nullptr,
150 const FilterT& filter = NullFilter(),
151 InterrupterT* interrupter =
nullptr);
177 template <
typename PointDataGridT,
179 typename RadiusT = float,
180 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
181 typename FilterT = NullFilter,
182 typename InterrupterT = util::NullInterrupter>
185 const std::string& radius,
186 const std::vector<std::string>& attributes,
189 math::Transform::Ptr transform =
nullptr,
190 const FilterT& filter = NullFilter(),
191 InterrupterT* interrupter =
nullptr);
211 template <
typename PointDataGridT,
212 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
213 typename FilterT = NullFilter,
214 typename InterrupterT = util::NullInterrupter>
218 const Real searchRadius,
220 math::Transform::Ptr transform =
nullptr,
221 const FilterT& filter = NullFilter(),
222 InterrupterT* interrupter =
nullptr);
247 template <
typename PointDataGridT,
248 typename RadiusT = float,
249 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
250 typename FilterT = NullFilter,
251 typename InterrupterT = util::NullInterrupter>
254 const std::string& radius,
255 const Real radiusScale,
256 const Real searchRadius,
258 math::Transform::Ptr transform =
nullptr,
259 const FilterT& filter = NullFilter(),
260 InterrupterT* interrupter =
nullptr);
293 template <
typename PointDataGridT,
295 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
296 typename FilterT = NullFilter,
297 typename InterrupterT = util::NullInterrupter>
301 const Real searchRadius,
302 const std::vector<std::string>& attributes,
304 math::Transform::Ptr transform =
nullptr,
305 const FilterT& filter = NullFilter(),
306 InterrupterT* interrupter =
nullptr);
343 template <
typename PointDataGridT,
345 typename RadiusT = float,
346 typename SdfT =
typename PointDataGridT::template ValueConverter<float>::Type,
347 typename FilterT = NullFilter,
348 typename InterrupterT = util::NullInterrupter>
351 const std::string& radius,
352 const Real radiusScale,
353 const Real searchRadius,
354 const std::vector<std::string>& attributes,
356 math::Transform::Ptr transform =
nullptr,
357 const FilterT& filter = NullFilter(),
358 InterrupterT* interrupter =
nullptr);
366 #endif //OPENVDB_POINTS_RASTERIZE_SDF_HAS_BEEN_INCLUDED Framework methods for rasterizing PointDataGrid data to Trees.
std::vector< GridBase::Ptr > GridPtrVec
Definition: Grid.h:508
Defined various multi-threaded utility functions for trees.
static const Real LEVEL_SET_HALF_WIDTH
Definition: Types.h:461
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
MatType scale(const Vec3< typename MatType::value_type > &s)
Return a matrix that scales by s.
Definition: Mat.h:615
Definition: Exceptions.h:13
double Real
Definition: Types.h:60
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
Attribute-owned data structure for points. Point attributes are stored in leaf nodes and ordered by v...
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition: version.h.in:121
Functions to perform multi threaded reductions and analysis of arbitrary point attribute types...
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
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h.in:218