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);
365 #endif //OPENVDB_POINTS_RASTERIZE_SDF_HAS_BEEN_INCLUDED Framework methods for rasterizing PointDataGrid data to Trees.
MatType scale(const Vec3< typename MatType::value_type > &s)
Return a matrix that scales by s.
Definition: Mat.h:615
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
double Real
Definition: Types.h:60
Defined various multi-threaded utility functions for trees.
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
Definition: Exceptions.h:13
std::vector< GridBase::Ptr > GridPtrVec
Definition: Grid.h:508
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
static const Real LEVEL_SET_HALF_WIDTH
Definition: Types.h:461
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...
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h.in:212