mirror of https://github.com/CGAL/cgal
rename traits
This commit is contained in:
parent
9958f98341
commit
63eb246f93
|
|
@ -35,17 +35,17 @@
|
|||
- `EfficientRANSACTraits`
|
||||
|
||||
## Main Classes ##
|
||||
- `CGAL::Shape_detection_3::Efficient_RANSAC<ERTraits>`
|
||||
- `CGAL::Shape_detection_3::Efficient_RANSAC<Traits>`
|
||||
- `CGAL::Shape_detection_3::Efficient_RANSAC_traits`
|
||||
|
||||
## Shape Interface ##
|
||||
- `CGAL::Shape_detection_3::Shape_base<ERTraits>`
|
||||
- `CGAL::Shape_detection_3::Shape_base<Traits>`
|
||||
|
||||
## Shape Classes ##
|
||||
- `CGAL::Shape_detection_3::Plane<ERTraits>`
|
||||
- `CGAL::Shape_detection_3::Sphere<ERTraits>`
|
||||
- `CGAL::Shape_detection_3::Cylinder<ERTraits>`
|
||||
- `CGAL::Shape_detection_3::Cone<ERTraits>`
|
||||
- `CGAL::Shape_detection_3::Torus<ERTraits>`
|
||||
- `CGAL::Shape_detection_3::Plane<Traits>`
|
||||
- `CGAL::Shape_detection_3::Sphere<Traits>`
|
||||
- `CGAL::Shape_detection_3::Cylinder<Traits>`
|
||||
- `CGAL::Shape_detection_3::Cone<Traits>`
|
||||
- `CGAL::Shape_detection_3::Torus<Traits>`
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -7,14 +7,14 @@
|
|||
My_Plane derives from Shape_base. The plane is represented by
|
||||
its normal vector and distance to the origin.
|
||||
*/
|
||||
template <class ERTraits>
|
||||
class My_Plane : public CGAL::Shape_detection_3::Shape_base<ERTraits> {
|
||||
template <class Traits>
|
||||
class My_Plane : public CGAL::Shape_detection_3::Shape_base<Traits> {
|
||||
public:
|
||||
typedef typename ERTraits::Geom_traits::FT FT;///< number type.
|
||||
typedef typename ERTraits::Geom_traits::Point_3 Point;///< point type.
|
||||
typedef typename Traits::Geom_traits::FT FT;///< number type.
|
||||
typedef typename Traits::Geom_traits::Point_3 Point;///< point type.
|
||||
|
||||
public:
|
||||
My_Plane() : Shape_base<ERTraits>() {}
|
||||
My_Plane() : Shape_base<Traits>() {}
|
||||
|
||||
// Computes squared Euclidean distance from query point to the shape.
|
||||
virtual FT squared_distance(const Point &p) const {
|
||||
|
|
|
|||
|
|
@ -43,27 +43,27 @@ namespace CGAL {
|
|||
\brief Cone implements Shape_base.
|
||||
The cone is represented by its apex, the axis and the opening angle.
|
||||
This representation models an open infinite single-cone.
|
||||
\tparam ERTraits a model of `EfficientRANSACTraits`
|
||||
\tparam Traits a model of `EfficientRANSACTraits`
|
||||
\ingroup PkgPointSetShapeDetection3Shapes
|
||||
*/
|
||||
|
||||
template <class ERTraits>
|
||||
class Cone : public Shape_base<ERTraits> {
|
||||
template <class Traits>
|
||||
class Cone : public Shape_base<Traits> {
|
||||
public:
|
||||
/// \cond SKIP_IN_MANUAL
|
||||
typedef typename ERTraits::Input_iterator Input_iterator;
|
||||
typedef typename Traits::Input_iterator Input_iterator;
|
||||
///< random access iterator for input data.
|
||||
typedef typename ERTraits::Point_pmap Point_pmap;
|
||||
typedef typename Traits::Point_pmap Point_pmap;
|
||||
///< property map to access the location of an input point.
|
||||
typedef typename ERTraits::Normal_pmap Normal_pmap;
|
||||
typedef typename Traits::Normal_pmap Normal_pmap;
|
||||
///< property map to access the unoriented normal of an input point.
|
||||
typedef typename ERTraits::Geom_traits::FT FT; ///< number type.
|
||||
typedef typename ERTraits::Geom_traits::Point_3 Point;///< point type.
|
||||
typedef typename ERTraits::Geom_traits::Vector_3 Vector;///< vector type.
|
||||
typedef typename Traits::Geom_traits::FT FT; ///< number type.
|
||||
typedef typename Traits::Geom_traits::Point_3 Point;///< point type.
|
||||
typedef typename Traits::Geom_traits::Vector_3 Vector;///< vector type.
|
||||
/// \endcond
|
||||
|
||||
|
||||
Cone() : Shape_base<ERTraits>() {}
|
||||
Cone() : Shape_base<Traits>() {}
|
||||
|
||||
/*!
|
||||
The opening angle between the axis and the surface of the cone.
|
||||
|
|
|
|||
|
|
@ -42,28 +42,28 @@ namespace CGAL {
|
|||
\brief Cylinder implements Shape_base. The cylinder is represented
|
||||
by the axis, i.e. a point and direction, and the radius. The cylinder is
|
||||
unbounded, thus caps are not modelled.
|
||||
\tparam ERTraits a model of `EfficientRANSACTraits`
|
||||
\tparam Traits a model of `EfficientRANSACTraits`
|
||||
\ingroup PkgPointSetShapeDetection3Shapes
|
||||
*/
|
||||
template <class ERTraits>
|
||||
class Cylinder : public Shape_base<ERTraits> {
|
||||
template <class Traits>
|
||||
class Cylinder : public Shape_base<Traits> {
|
||||
public:
|
||||
/// \cond SKIP_IN_MANUAL
|
||||
typedef typename ERTraits::Input_iterator Input_iterator;
|
||||
typedef typename Traits::Input_iterator Input_iterator;
|
||||
///< random access iterator for input data.
|
||||
typedef typename ERTraits::Point_pmap Point_pmap;
|
||||
typedef typename Traits::Point_pmap Point_pmap;
|
||||
///< property map to access the location of an input point.
|
||||
typedef typename ERTraits::Normal_pmap Normal_pmap;
|
||||
typedef typename Traits::Normal_pmap Normal_pmap;
|
||||
///< property map to access the unoriented normal of an input point.
|
||||
typedef typename ERTraits::Geom_traits::Vector_3 Vector; ///< vector type.
|
||||
typedef typename ERTraits::Geom_traits::Point_3 Point; ///< point type.
|
||||
typedef typename ERTraits::Geom_traits::FT FT; ///< number type.
|
||||
typedef typename Traits::Geom_traits::Vector_3 Vector; ///< vector type.
|
||||
typedef typename Traits::Geom_traits::Point_3 Point; ///< point type.
|
||||
typedef typename Traits::Geom_traits::FT FT; ///< number type.
|
||||
/// \endcond
|
||||
|
||||
typedef typename ERTraits::Geom_traits::Line_3 Line; ///< line type.
|
||||
typedef typename Traits::Geom_traits::Line_3 Line; ///< line type.
|
||||
|
||||
public:
|
||||
Cylinder() : Shape_base<ERTraits>() {}
|
||||
Cylinder() : Shape_base<Traits>() {}
|
||||
|
||||
/*!
|
||||
Axis of the cylinder.
|
||||
|
|
|
|||
|
|
@ -60,10 +60,10 @@ this classes enables to detect subset of connected points lying on the surface o
|
|||
Each input point is assigned to either none or at most one detected primitive
|
||||
shape. The implementation follows \cgalCite{Schnabel07}.
|
||||
|
||||
\tparam ERTraits a model of `EfficientRANSACTraits`
|
||||
\tparam Traits a model of `EfficientRANSACTraits`
|
||||
|
||||
*/
|
||||
template <class ERTraits>
|
||||
template <class Traits>
|
||||
class Efficient_RANSAC {
|
||||
public:
|
||||
|
||||
|
|
@ -88,16 +88,16 @@ shape. The implementation follows \cgalCite{Schnabel07}.
|
|||
|
||||
/// \name Types
|
||||
/// @{
|
||||
typedef typename ERTraits::Input_iterator Input_iterator;
|
||||
typedef typename Traits::Input_iterator Input_iterator;
|
||||
///< random access iterator for input data.
|
||||
typedef typename ERTraits::Geom_traits::FT FT; ///< number type.
|
||||
typedef typename ERTraits::Geom_traits::Point_3 Point; ///< point type.
|
||||
typedef typename ERTraits::Geom_traits::Vector_3 Vector; ///< vector type.
|
||||
typedef typename ERTraits::Point_pmap Point_pmap;
|
||||
typedef typename Traits::Geom_traits::FT FT; ///< number type.
|
||||
typedef typename Traits::Geom_traits::Point_3 Point; ///< point type.
|
||||
typedef typename Traits::Geom_traits::Vector_3 Vector; ///< vector type.
|
||||
typedef typename Traits::Point_pmap Point_pmap;
|
||||
///< property map to access the location of an input point.
|
||||
typedef typename ERTraits::Normal_pmap Normal_pmap;
|
||||
typedef typename Traits::Normal_pmap Normal_pmap;
|
||||
///< property map to access the unoriented normal of an input point
|
||||
typedef Shape_base<ERTraits> Shape; ///< shape type.
|
||||
typedef Shape_base<Traits> Shape; ///< shape type.
|
||||
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
typedef unspecified_type Shape_range;
|
||||
|
|
@ -141,9 +141,9 @@ shape. The implementation follows \cgalCite{Schnabel07}.
|
|||
/// @}
|
||||
|
||||
private:
|
||||
typedef internal::Octree<internal::DirectPointAccessor<ERTraits> >
|
||||
typedef internal::Octree<internal::DirectPointAccessor<Traits> >
|
||||
Direct_octree;
|
||||
typedef internal::Octree<internal::IndexedPointAccessor<ERTraits> >
|
||||
typedef internal::Octree<internal::IndexedPointAccessor<Traits> >
|
||||
Indexed_octree;
|
||||
//--------------------------------------------typedef
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ extern int scoreTime;
|
|||
namespace CGAL {
|
||||
namespace Shape_detection_3 {
|
||||
|
||||
template<class ERTraits>
|
||||
template<class Traits>
|
||||
class Efficient_RANSAC;
|
||||
|
||||
namespace internal {
|
||||
|
|
|
|||
|
|
@ -32,27 +32,27 @@ namespace CGAL {
|
|||
/*!
|
||||
\ingroup PkgPointSetShapeDetection3Shapes
|
||||
\brief Plane implements Shape_base. The plane is represented by the normal vector and the distance to the origin.
|
||||
\tparam ERTraits a model of `EfficientRANSACTraits`
|
||||
\tparam Traits a model of `EfficientRANSACTraits`
|
||||
*/
|
||||
template <class ERTraits>
|
||||
class Plane : public Shape_base<ERTraits> {
|
||||
template <class Traits>
|
||||
class Plane : public Shape_base<Traits> {
|
||||
public:
|
||||
/// \cond SKIP_IN_MANUAL
|
||||
typedef typename ERTraits::Input_iterator Input_iterator;
|
||||
typedef typename Traits::Input_iterator Input_iterator;
|
||||
///< random access iterator for input data.
|
||||
typedef typename ERTraits::Point_pmap Point_pmap;
|
||||
typedef typename Traits::Point_pmap Point_pmap;
|
||||
///< property map to access the location of an input point.
|
||||
typedef typename ERTraits::Normal_pmap Normal_pmap;
|
||||
typedef typename Traits::Normal_pmap Normal_pmap;
|
||||
///< property map to access the unoriented normal of an input point.
|
||||
typedef typename ERTraits::Geom_traits::FT FT; ///< number type.
|
||||
typedef typename ERTraits::Geom_traits::Point_3 Point; ///< point type.
|
||||
typedef typename ERTraits::Geom_traits::Vector_3 Vector;
|
||||
typedef typename Traits::Geom_traits::FT FT; ///< number type.
|
||||
typedef typename Traits::Geom_traits::Point_3 Point; ///< point type.
|
||||
typedef typename Traits::Geom_traits::Vector_3 Vector;
|
||||
/// \endcond
|
||||
|
||||
typedef typename ERTraits::Geom_traits::Plane_3 Plane_3;///< plane type for conversion operator.
|
||||
typedef typename Traits::Geom_traits::Plane_3 Plane_3;///< plane type for conversion operator.
|
||||
|
||||
public:
|
||||
Plane() : Shape_base<ERTraits>() {}
|
||||
Plane() : Shape_base<Traits>() {}
|
||||
|
||||
/*!
|
||||
Conversion operator to Plane_3 type.
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ namespace CGAL {
|
|||
identify the inliers from the input data and to extract the largest
|
||||
cluster of spatially neighbored points.
|
||||
*/
|
||||
template <class ERTraits>
|
||||
template <class Traits>
|
||||
class Shape_base {
|
||||
/// \cond SKIP_IN_MANUAL
|
||||
template <class T>
|
||||
|
|
@ -67,19 +67,19 @@ namespace CGAL {
|
|||
|
||||
public:
|
||||
/// \cond SKIP_IN_MANUAL
|
||||
typedef typename ERTraits::Input_iterator Input_iterator;
|
||||
typedef typename Traits::Input_iterator Input_iterator;
|
||||
///< random access iterator for input data.
|
||||
typedef typename ERTraits::Point_pmap Point_pmap;
|
||||
typedef typename Traits::Point_pmap Point_pmap;
|
||||
///< property map to access the location of an input point.
|
||||
typedef typename ERTraits::Normal_pmap Normal_pmap;
|
||||
typedef typename Traits::Normal_pmap Normal_pmap;
|
||||
///< property map to access the unoriented normal of an input point.
|
||||
typedef Shape_base<ERTraits> Shape;
|
||||
typedef Shape_base<Traits> Shape;
|
||||
///< own type.
|
||||
/// \endcond
|
||||
|
||||
typedef typename ERTraits::Geom_traits::FT FT; ///< number type.
|
||||
typedef typename ERTraits::Geom_traits::Point_3 Point; ///< point type.
|
||||
typedef typename ERTraits::Geom_traits::Vector_3 Vector; ///< vector type.
|
||||
typedef typename Traits::Geom_traits::FT FT; ///< number type.
|
||||
typedef typename Traits::Geom_traits::Point_3 Point; ///< point type.
|
||||
typedef typename Traits::Geom_traits::Vector_3 Vector; ///< vector type.
|
||||
|
||||
Shape_base() :
|
||||
m_is_valid(false),
|
||||
|
|
@ -274,12 +274,12 @@ namespace CGAL {
|
|||
std::size_t connected_component_kdTree(std::vector<std::size_t> &indices,
|
||||
FT cluster_epsilon) {
|
||||
typedef typename CGAL::Search_traits_3<
|
||||
typename ERTraits::Geom_traits> Traits_base;
|
||||
typename Traits::Geom_traits> Traits_base;
|
||||
typedef typename boost::tuple<Point,int> Point_and_int;
|
||||
typedef typename CGAL::Search_traits_adapter<Point_and_int,
|
||||
CGAL::Nth_of_tuple_property_map<0, Point_and_int>, Traits_base> Traits;
|
||||
typedef typename CGAL::Kd_tree<Traits> Kd_Tree;
|
||||
typedef typename CGAL::Fuzzy_sphere<Traits> Fuzzy_sphere;
|
||||
CGAL::Nth_of_tuple_property_map<0, Point_and_int>, Traits_base> Search_traits;
|
||||
typedef typename CGAL::Kd_tree<Search_traits> Kd_Tree;
|
||||
typedef typename CGAL::Fuzzy_sphere<Search_traits> Fuzzy_sphere;
|
||||
|
||||
m_has_connected_component = true;
|
||||
|
||||
|
|
|
|||
|
|
@ -33,30 +33,30 @@ namespace CGAL {
|
|||
/*!
|
||||
\ingroup PkgPointSetShapeDetection3Shapes
|
||||
\brief Sphere implements Shape_base. The sphere is represented by its center and the radius.
|
||||
\tparam ERTraits a model of `EfficientRANSACTraits`
|
||||
\tparam Traits a model of `EfficientRANSACTraits`
|
||||
*/
|
||||
template <class ERTraits>
|
||||
class Sphere : public Shape_base<ERTraits> {
|
||||
template <class Traits>
|
||||
class Sphere : public Shape_base<Traits> {
|
||||
public:
|
||||
/// \cond SKIP_IN_MANUAL
|
||||
typedef typename ERTraits::Input_iterator Input_iterator;
|
||||
typedef typename Traits::Input_iterator Input_iterator;
|
||||
///< random access iterator for input data.
|
||||
typedef typename ERTraits::Point_pmap Point_pmap;
|
||||
typedef typename Traits::Point_pmap Point_pmap;
|
||||
///< property map to access the location of an input point.
|
||||
typedef typename ERTraits::Normal_pmap Normal_pmap;
|
||||
typedef typename Traits::Normal_pmap Normal_pmap;
|
||||
///< property map to access the unoriented normal of an input point.
|
||||
typedef typename ERTraits::Geom_traits::Vector_3 Vector;
|
||||
typedef typename Traits::Geom_traits::Vector_3 Vector;
|
||||
///< vector type.
|
||||
typedef typename ERTraits::Geom_traits::Sphere_3 Sphere_3;
|
||||
typedef typename Traits::Geom_traits::Sphere_3 Sphere_3;
|
||||
///< sphere type.
|
||||
typedef typename ERTraits::Geom_traits::FT FT;
|
||||
typedef typename Traits::Geom_traits::FT FT;
|
||||
///< number type.
|
||||
typedef typename ERTraits::Geom_traits::Point_3 Point;
|
||||
typedef typename Traits::Geom_traits::Point_3 Point;
|
||||
///< point type.
|
||||
/// \endcond
|
||||
|
||||
public:
|
||||
Sphere() : Shape_base<ERTraits>() {}
|
||||
Sphere() : Shape_base<Traits>() {}
|
||||
|
||||
/*!
|
||||
Conversion operator to convert to common Sphere_3 type.
|
||||
|
|
|
|||
|
|
@ -36,28 +36,28 @@ namespace CGAL {
|
|||
\ingroup PkgPointSetShapeDetection3Shapes
|
||||
\brief Torus implements Shape_base. The torus is represented by the
|
||||
symmetry axis, its center on the axis and the major and minor radii.
|
||||
\tparam ERTraits a model of `EfficientRANSACTraits`
|
||||
\tparam Traits a model of `EfficientRANSACTraits`
|
||||
*/
|
||||
template <class ERTraits>
|
||||
class Torus : public Shape_base<ERTraits> {
|
||||
template <class Traits>
|
||||
class Torus : public Shape_base<Traits> {
|
||||
public:
|
||||
/// \cond SKIP_IN_MANUAL
|
||||
typedef typename ERTraits::Input_iterator Input_iterator;
|
||||
typedef typename Traits::Input_iterator Input_iterator;
|
||||
///< random access iterator for input data.
|
||||
typedef typename ERTraits::Point_pmap Point_pmap;
|
||||
typedef typename Traits::Point_pmap Point_pmap;
|
||||
///< property map to access the location of an input point.
|
||||
typedef typename ERTraits::Normal_pmap Normal_pmap;
|
||||
typedef typename Traits::Normal_pmap Normal_pmap;
|
||||
///< property map to access the unoriented normal of an input point.
|
||||
typedef typename ERTraits::Geom_traits::FT FT; ///< number type.
|
||||
typedef typename ERTraits::Geom_traits::Point_3 Point; ///< point type.
|
||||
typedef typename ERTraits::Geom_traits::Vector_3 Vector; ///< vector type.
|
||||
typedef typename ERTraits::Geom_traits::Point_2 Point_2;
|
||||
typedef typename Traits::Geom_traits::FT FT; ///< number type.
|
||||
typedef typename Traits::Geom_traits::Point_3 Point; ///< point type.
|
||||
typedef typename Traits::Geom_traits::Vector_3 Vector; ///< vector type.
|
||||
typedef typename Traits::Geom_traits::Point_2 Point_2;
|
||||
///< 2D point type used during construction.
|
||||
typedef typename ERTraits::Geom_traits::Circle_2 Circle;
|
||||
typedef typename Traits::Geom_traits::Circle_2 Circle;
|
||||
///< cricle type used during construction.
|
||||
/// \endcond
|
||||
|
||||
Torus() : Shape_base<ERTraits>() {}
|
||||
Torus() : Shape_base<Traits>() {}
|
||||
|
||||
/*!
|
||||
Direction of symmetry axis.
|
||||
|
|
|
|||
Loading…
Reference in New Issue