Anisotropic point rasterization based on the principal component analysis of point neighbours. See the struct member documentation for detailed behavior.
More...
template<typename AttributeTs = TypeList<>, typename RadiusAttributeT = Vec3f, typename FilterT = NullFilter>
struct openvdb::v12_1::points::EllipsoidSettings< AttributeTs, RadiusAttributeT, FilterT >
Anisotropic point rasterization based on the principal component analysis of point neighbours. See the struct member documentation for detailed behavior.
This rasterization technique is typically used with the accompanying PCA tools in PrincipalComponentAnalysis.h which initializes the required attributes. These attributes define the rotational and affine transformations which can be used to construct ellipsoids for each point. Typically (for our intended surfacing) these transformations are built by analysing each points neighbourhood distributions and constructing tight ellipsoids that orient themselves to follow these point distributions.
- Note
- Protected inheritance prevents accidental struct slicing
template<typename AttributeTs = TypeList<>, typename RadiusAttributeT = Vec3f, typename FilterT = NullFilter>
| std::vector<std::string> attributes |
- Parameters
-
| attributes | list of attributes to transfer |
if the attributes vector is empty, only the surface is built. Otherwise, every voxel's closest point is used to transfer each attribute in the attributes parameter to a new grid of matching topology. The built surface is always the first grid returned from the surfacing operation, followed by attribute grids in the order that they appear in this vector.
The AttributeTs template parameter should be a TypeList of the required or possible attributes types. Example:
A list of types (not necessarily unique)
Definition TypeList.h:578
Generic settings for narrow band spherical stamping with a uniform or varying radius and optionally w...
Definition PointRasterizeSDF.h:157
std::vector< std::string > attributes
Definition PointRasterizeSDF.h:216
A runtime error will be thrown if no equivalent type for a given attribute is found in the AttributeTs TypeList.
- Note
- The destination types of these grids is equal to the ValueConverter result of the attribute type applied to the PointDataGridT.