CGAL 4.12 - Point Set Processing
|
#include <CGAL/structure_point_set.h>
A 3D point set with structure information based on a set of detected planes.
Given a point set in 3D space along with a set of fitted planes, this class stores a simplified and structured version of the point set. Each output point is assigned to one, two or more primitives (depending wether it belongs to a planar section, an edge or a if it is a vertex). The implementation follow [6].
Kernel | a model of ShapeDetectionTraits that must provide in addition a function Intersect_3 intersection_3_object() const and a functor Intersect_3 with:
|
Public Types | |
enum | Coherence_type { INCOHERENT = -1, FREEFORM = 0, VERTEX = 1, CREASE = 2, PLANAR = 3 } |
Tag classifying the coherence of a triplet of points with respect to an inferred surface. More... | |
typedef Kernel::Point_3 | Point |
typedef Kernel::Vector_3 | Vector |
typedef Kernel::Plane_3 | Plane |
Public Member Functions | |
template<typename PointRange , typename PlaneRange , typename NamedParameters > | |
Point_set_with_structure (const PointRange &points, const PlaneRange &planes, double epsilon, const NamedParameters &np) | |
Constructs a structured point set based on the input points and the associated shape detection object. More... | |
std::size_t | size () const |
std::pair< Point, Vector > | operator[] (std::size_t i) const |
const Point & | point (std::size_t i) const |
const Vector & | normal (std::size_t i) const |
template<typename OutputIterator > | |
void | adjacency (std::size_t i, OutputIterator output) const |
Returns all Plane_shape objects that are adjacent to the point with index i . More... | |
Coherence_type | facet_coherence (const CGAL::cpp11::array< std::size_t, 3 > &f) const |
Computes the coherence of a facet between the 3 points indexed by f with respect to the underlying structure. | |
enum CGAL::Point_set_with_structure::Coherence_type |
Tag classifying the coherence of a triplet of points with respect to an inferred surface.
CGAL::Point_set_with_structure< Kernel >::Point_set_with_structure | ( | const PointRange & | points, |
const PlaneRange & | planes, | ||
double | epsilon, | ||
const NamedParameters & | np | ||
) |
Constructs a structured point set based on the input points and the associated shape detection object.
PointRange | is a model of ConstRange . The value type of its iterator is the key type of the named parameter point_map . |
PlaneRange | is a model of ConstRange . The value type of its iterator is the key type of the named parameter plane_map . |
points | input point range. |
planes | input plane range. |
epsilon | size parameter. |
np | optional sequence of Named Parameters among the ones listed below. |
point_map | a model of ReadablePropertyMap with value type Kernel::Point_3 . If this parameter is omitted, CGAL::Identity_property_map<Kernel::Point_3> is used. |
normal_map | a model of ReadablePropertyMap with value type Kernel::Vector_3 . |
plane_index_map | a model of ReadablePropertyMap with value type int . Associates the index of a point in the input range to the index of plane (-1 if point does is not assigned to a plane). |
plane_map | a model of ReadablePropertyMap with value type Kernel::Plane_3 . If this parameter is omitted, CGAL::Identity_property_map<Kernel::Plane_3> is used. |
attraction_factor | multiple of epsilon used to connect simplices. |
void CGAL::Point_set_with_structure< Kernel >::adjacency | ( | std::size_t | i, |
OutputIterator | output | ||
) | const |
Returns all Plane_shape
objects that are adjacent to the point with index i
.