DGtal
1.5.beta
|
Aim: model of a CEuclideanOrientedShape from an implicit function from an oriented point cloud. The implicit function is given by the generalized winding number of the oriented point cloud [10] . We use the libIGL implementation. More...
#include <DGtal/shapes/WindingNumbersShape.h>
Public Types | |
using | Space = TSpace |
Types. More... | |
using | RealPoint = typename Space::RealPoint |
using | RealVector = typename Space::RealVector |
using | Orientation = DGtal::Orientation |
Public Member Functions | |
WindingNumbersShape ()=delete | |
WindingNumbersShape (ConstAlias< Eigen::MatrixXd > points, ConstAlias< Eigen::MatrixXd > normals, bool skipPointAreas=false) | |
WindingNumbersShape (ConstAlias< Eigen::MatrixXd > points, ConstAlias< Eigen::MatrixXd > normals, const Eigen::VectorXd &areas) | |
void | setPointAreas (ConstAlias< Eigen::VectorXd > areas) |
Orientation | orientation (const RealPoint aPoint, const double threshold=0.3) const |
std::vector< Orientation > | orientationBatch (const Eigen::MatrixXd &queries, const double threshold=0.3) const |
void | rawWindingNumberBatch (const Eigen::MatrixXd &queries, Eigen::VectorXd &W) const |
Data Fields | |
CountedConstPtrOrConstPtr< Eigen::MatrixXd > | myPoints |
Const alias to the points. More... | |
CountedConstPtrOrConstPtr< Eigen::MatrixXd > | myNormals |
Const alias to the normals. More... | |
Eigen::VectorXd | myPointAreas |
Const alias to point area measure. More... | |
std::vector< std::vector< int > > | myO_PI |
libIGL octree for fast queries data structure More... | |
Eigen::MatrixXi | myO_CH |
libIGL octree for fast queries data structure More... | |
Eigen::MatrixXd | myO_CN |
libIGL octree for fast queries data structure More... | |
Eigen::VectorXd | myO_W |
libIGL octree for fast queries data structure More... | |
Aim: model of a CEuclideanOrientedShape from an implicit function from an oriented point cloud. The implicit function is given by the generalized winding number of the oriented point cloud [10] . We use the libIGL implementation.
Description of template class 'WindingNumbersShape'
TSPace | the digital space type (a model of CSpace) |
Definition at line 77 of file WindingNumbersShape.h.
using DGtal::WindingNumbersShape< TSpace >::Orientation = DGtal::Orientation |
Definition at line 83 of file WindingNumbersShape.h.
using DGtal::WindingNumbersShape< TSpace >::RealPoint = typename Space::RealPoint |
Definition at line 81 of file WindingNumbersShape.h.
using DGtal::WindingNumbersShape< TSpace >::RealVector = typename Space::RealVector |
Definition at line 82 of file WindingNumbersShape.h.
using DGtal::WindingNumbersShape< TSpace >::Space = TSpace |
Types.
Definition at line 80 of file WindingNumbersShape.h.
|
delete |
|
inline |
Construct a WindingNumberShape Euclidean shape from an oriented point cloud. This constructor estimates the area of each point using CGAL.
If the number of points is greater than 20, CGAL is used to estimate the per-sample area (if skipPointAreas is set to false).
points | a "nx3" matrix with the sample coordinates. |
normals | a "nx3" matrix for the normal vectors. |
skipPointAreas | if true, we do not estimate the point areas using CGAL (default: false) |
Definition at line 97 of file WindingNumbersShape.h.
References DGtal::Trace::info(), DGtal::WindingNumbersShape< TSpace >::myNormals, DGtal::WindingNumbersShape< TSpace >::myO_CH, DGtal::WindingNumbersShape< TSpace >::myO_CN, DGtal::WindingNumbersShape< TSpace >::myO_PI, DGtal::WindingNumbersShape< TSpace >::myO_W, DGtal::WindingNumbersShape< TSpace >::myPointAreas, DGtal::WindingNumbersShape< TSpace >::myPoints, DGtal::trace, and DGtal::Trace::warning().
|
inline |
Construct a WindingNumberShape Euclidean shape from an oriented point cloud. For this constructor, the area of each point is given by the user.
points | a "nx3" matrix with the sample coordinates. |
normals | a "nx3" matrix for the normal vectors. |
areas | a "n" vector with the area of each point. |
Definition at line 129 of file WindingNumbersShape.h.
References DGtal::WindingNumbersShape< TSpace >::myNormals, DGtal::WindingNumbersShape< TSpace >::myO_CH, DGtal::WindingNumbersShape< TSpace >::myO_CN, DGtal::WindingNumbersShape< TSpace >::myO_PI, DGtal::WindingNumbersShape< TSpace >::myO_W, DGtal::WindingNumbersShape< TSpace >::myPointAreas, and DGtal::WindingNumbersShape< TSpace >::myPoints.
|
inline |
Orientation of a point using the winding number value from an oriented pointcloud.
aPoint | [in] a point in space |
threshold | [in] the iso-value of the surface of the winding number implicit map (default = 0.3). |
Definition at line 155 of file WindingNumbersShape.h.
References aPoint(), and DGtal::WindingNumbersShape< TSpace >::orientationBatch().
|
inline |
Orientation of a set of points (queries) using the winding number value from an oriented pointcloud.
queries | [in] a "nx3" matrix with the query points in space. |
threshold | [in] the iso-value of the surface of the winding number implicit map (default = 0.3). |
Definition at line 170 of file WindingNumbersShape.h.
References DGtal::INSIDE, DGtal::ON, DGtal::OUTSIDE, and DGtal::WindingNumbersShape< TSpace >::rawWindingNumberBatch().
Referenced by DGtal::WindingNumbersShape< TSpace >::orientation().
|
inline |
Returns the raw value of the Winding Number funciton at a set of points (queries).
queries | [in] a "nx3" matrix with the query points in space. |
W | [out] a vector with all windung number values. |
Definition at line 197 of file WindingNumbersShape.h.
References DGtal::WindingNumbersShape< TSpace >::myNormals, DGtal::WindingNumbersShape< TSpace >::myO_CH, DGtal::WindingNumbersShape< TSpace >::myO_PI, DGtal::WindingNumbersShape< TSpace >::myPointAreas, and DGtal::WindingNumbersShape< TSpace >::myPoints.
Referenced by DGtal::WindingNumbersShape< TSpace >::orientationBatch().
|
inline |
Set the area map for each point.
areas | a Eigen vector of estimated area for each input point. |
Definition at line 142 of file WindingNumbersShape.h.
References DGtal::WindingNumbersShape< TSpace >::myPointAreas.
CountedConstPtrOrConstPtr<Eigen::MatrixXd> DGtal::WindingNumbersShape< TSpace >::myNormals |
Const alias to the normals.
Definition at line 212 of file WindingNumbersShape.h.
Referenced by DGtal::WindingNumbersShape< TSpace >::rawWindingNumberBatch(), and DGtal::WindingNumbersShape< TSpace >::WindingNumbersShape().
Eigen::MatrixXi DGtal::WindingNumbersShape< TSpace >::myO_CH |
libIGL octree for fast queries data structure
Definition at line 219 of file WindingNumbersShape.h.
Referenced by DGtal::WindingNumbersShape< TSpace >::rawWindingNumberBatch(), and DGtal::WindingNumbersShape< TSpace >::WindingNumbersShape().
Eigen::MatrixXd DGtal::WindingNumbersShape< TSpace >::myO_CN |
libIGL octree for fast queries data structure
Definition at line 221 of file WindingNumbersShape.h.
Referenced by DGtal::WindingNumbersShape< TSpace >::WindingNumbersShape().
std::vector<std::vector<int > > DGtal::WindingNumbersShape< TSpace >::myO_PI |
libIGL octree for fast queries data structure
Definition at line 217 of file WindingNumbersShape.h.
Referenced by DGtal::WindingNumbersShape< TSpace >::rawWindingNumberBatch(), and DGtal::WindingNumbersShape< TSpace >::WindingNumbersShape().
Eigen::VectorXd DGtal::WindingNumbersShape< TSpace >::myO_W |
libIGL octree for fast queries data structure
Definition at line 223 of file WindingNumbersShape.h.
Referenced by DGtal::WindingNumbersShape< TSpace >::WindingNumbersShape().
Eigen::VectorXd DGtal::WindingNumbersShape< TSpace >::myPointAreas |
Const alias to point area measure.
Definition at line 214 of file WindingNumbersShape.h.
Referenced by DGtal::WindingNumbersShape< TSpace >::rawWindingNumberBatch(), DGtal::WindingNumbersShape< TSpace >::setPointAreas(), and DGtal::WindingNumbersShape< TSpace >::WindingNumbersShape().
CountedConstPtrOrConstPtr<Eigen::MatrixXd> DGtal::WindingNumbersShape< TSpace >::myPoints |
Const alias to the points.
Definition at line 210 of file WindingNumbersShape.h.
Referenced by DGtal::WindingNumbersShape< TSpace >::rawWindingNumberBatch(), and DGtal::WindingNumbersShape< TSpace >::WindingNumbersShape().