mirror of https://github.com/CGAL/cgal
Rename Efficient_RANSAC_traits as Shape_detection_traits (same for concept)
This commit is contained in:
parent
99ed2fb1af
commit
b88deb3759
|
|
@ -21,7 +21,7 @@ typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
||||||
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
||||||
|
|
||||||
// Efficient RANSAC types
|
// Efficient RANSAC types
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits
|
typedef CGAL::Shape_detection_3::Shape_detection_traits
|
||||||
<Kernel, Pwn_vector, Point_map, Normal_map> Traits;
|
<Kernel, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
typedef CGAL::Shape_detection_3::Plane<Traits> Plane;
|
typedef CGAL::Shape_detection_3::Plane<Traits> Plane;
|
||||||
|
|
|
||||||
|
|
@ -753,7 +753,7 @@ CGAL/Segment_tree_k.h
|
||||||
CGAL/Shape_detection_3/Cone.h
|
CGAL/Shape_detection_3/Cone.h
|
||||||
CGAL/Shape_detection_3/Cylinder.h
|
CGAL/Shape_detection_3/Cylinder.h
|
||||||
CGAL/Shape_detection_3/Efficient_RANSAC.h
|
CGAL/Shape_detection_3/Efficient_RANSAC.h
|
||||||
CGAL/Shape_detection_3/Efficient_RANSAC_traits.h
|
CGAL/Shape_detection_3/Shape_detection_traits.h
|
||||||
CGAL/Shape_detection_3.h
|
CGAL/Shape_detection_3.h
|
||||||
CGAL/Shape_detection_3/Plane.h
|
CGAL/Shape_detection_3/Plane.h
|
||||||
CGAL/Shape_detection_3/Shape_base.h
|
CGAL/Shape_detection_3/Shape_base.h
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ typedef CGAL::Random_points_on_sphere_3<Point> Point_generator;
|
||||||
|
|
||||||
typedef CGAL::Point_set_3<Point> Point_set;
|
typedef CGAL::Point_set_3<Point> Point_set;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits
|
typedef CGAL::Shape_detection_3::Shape_detection_traits
|
||||||
<Kernel, Point_set, Point_set::Point_map, Point_set::Vector_map> Traits;
|
<Kernel, Point_set, Point_set::Point_map, Point_set::Vector_map> Traits;
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
typedef CGAL::Shape_detection_3::Sphere<Traits> Sphere;
|
typedef CGAL::Shape_detection_3::Sphere<Traits> Sphere;
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
||||||
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
||||||
|
|
||||||
// Efficient RANSAC types
|
// Efficient RANSAC types
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits
|
typedef CGAL::Shape_detection_3::Shape_detection_traits
|
||||||
<Kernel, Pwn_vector, Point_map, Normal_map> Traits;
|
<Kernel, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
typedef CGAL::Shape_detection_3::Plane<Traits> Plane;
|
typedef CGAL::Shape_detection_3::Plane<Traits> Plane;
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ 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
|
(depending wether it belongs to a planar section, an edge or a if it
|
||||||
is a vertex). The implementation follow \cgalCite{cgal:la-srpss-13}.
|
is a vertex). The implementation follow \cgalCite{cgal:la-srpss-13}.
|
||||||
|
|
||||||
\tparam Traits a model of `EfficientRANSACTraits` that must provide in
|
\tparam Traits a model of `ShapeDetectionTraits` that must provide in
|
||||||
addition a function `Intersect_3 intersection_3_object() const` and a
|
addition a function `Intersect_3 intersection_3_object() const` and a
|
||||||
functor `Intersect_3` with:
|
functor `Intersect_3` with:
|
||||||
- `boost::optional< boost::variant< Traits::Plane_3, Traits::Line_3 > > operator()(typename Traits::Plane_3, typename Traits::Plane_3)`
|
- `boost::optional< boost::variant< Traits::Plane_3, Traits::Line_3 > > operator()(typename Traits::Plane_3, typename Traits::Plane_3)`
|
||||||
|
|
@ -1457,7 +1457,7 @@ private:
|
||||||
///
|
///
|
||||||
/// For more details, please refer to \cgalCite{cgal:la-srpss-13}.
|
/// For more details, please refer to \cgalCite{cgal:la-srpss-13}.
|
||||||
///
|
///
|
||||||
/// @tparam Traits a model of `EfficientRANSACTraits` that must provide in
|
/// @tparam Traits a model of `ShapeDetectionTraits` that must provide in
|
||||||
/// addition a function `Intersect_3 intersection_3_object() const` and a
|
/// addition a function `Intersect_3 intersection_3_object() const` and a
|
||||||
/// functor `Intersect_3` with:
|
/// functor `Intersect_3` with:
|
||||||
/// - `boost::optional< boost::variant< Traits::Plane_3, Traits::Line_3 > > operator()(typename Traits::Plane_3, typename Traits::Plane_3)`
|
/// - `boost::optional< boost::variant< Traits::Plane_3, Traits::Line_3 > > operator()(typename Traits::Plane_3, typename Traits::Plane_3)`
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ typedef std::vector<Point_with_normal> Pwn_vector;
|
||||||
typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
||||||
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits
|
typedef CGAL::Shape_detection_3::Shape_detection_traits
|
||||||
<Kernel, Pwn_vector, Point_map, Normal_map> Traits;
|
<Kernel, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,10 +11,10 @@ input data has to be provided in form of a random access iterator.
|
||||||
Point and normal property maps have to
|
Point and normal property maps have to
|
||||||
be provided to extract the points and the normals from the input.
|
be provided to extract the points and the normals from the input.
|
||||||
|
|
||||||
\cgalHasModel `CGAL::Shape_detection_3::Efficient_RANSAC_traits`
|
\cgalHasModel `CGAL::Shape_detection_3::Shape_detection_traits`
|
||||||
|
|
||||||
*/
|
*/
|
||||||
class EfficientRANSACTraits{
|
class ShapeDetectionTraits{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/// \name Types
|
/// \name Types
|
||||||
|
|
@ -32,11 +32,11 @@
|
||||||
\cgalClassifedRefPages
|
\cgalClassifedRefPages
|
||||||
|
|
||||||
## Concept ##
|
## Concept ##
|
||||||
- `EfficientRANSACTraits`
|
- `ShapeDetectionTraits`
|
||||||
|
|
||||||
## Main Classes ##
|
## Main Classes ##
|
||||||
|
- `CGAL::Shape_detection_3::Shape_dection_traits`
|
||||||
- `CGAL::Shape_detection_3::Efficient_RANSAC<Traits>`
|
- `CGAL::Shape_detection_3::Efficient_RANSAC<Traits>`
|
||||||
- `CGAL::Shape_detection_3::Efficient_RANSAC_traits`
|
|
||||||
|
|
||||||
## Shape Interface ##
|
## Shape Interface ##
|
||||||
- `CGAL::Shape_detection_3::Shape_base<Traits>`
|
- `CGAL::Shape_detection_3::Shape_base<Traits>`
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ This parameter defines the probability to miss the largest candidate shape. A lo
|
||||||
This minimum number of points controls the termination of the algorithm. The shape search is iterated until no further shapes can be found with a higher support. Note that this parameter is not strict: depending on the chosen probability, shapes may be extracted with a number of points lower than the specified parameter.
|
This minimum number of points controls the termination of the algorithm. The shape search is iterated until no further shapes can be found with a higher support. Note that this parameter is not strict: depending on the chosen probability, shapes may be extracted with a number of points lower than the specified parameter.
|
||||||
|
|
||||||
\section Point_set_shape_detection_3Usage Examples
|
\section Point_set_shape_detection_3Usage Examples
|
||||||
The main class `Shape_detection_3::Efficient_RANSAC` takes a template parameter `Shape_detection_3::Efficient_RANSAC_traits` that defines the geometric types and input format. Property maps provide a means to interface with user-specific data structures. The first parameter of the `Shape_detection_3::Efficient_RANSAC_traits` class is the common Kernel. In order to match the constraints of property maps, an iterator type and two maps that map an iterator to a point and a normal are specified in the `Shape_detection_3::Efficient_RANSAC_traits` class. The concept behind property maps is detailed in \ref chapterProperty_map "a dedicated chapter".
|
The main class `Shape_detection_3::Efficient_RANSAC` takes a template parameter `Shape_detection_3::Shape_detection_traits` that defines the geometric types and input format. Property maps provide a means to interface with user-specific data structures. The first parameter of the `Shape_detection_3::Shape_detection_traits` class is the common Kernel. In order to match the constraints of property maps, an iterator type and two maps that map an iterator to a point and a normal are specified in the `Shape_detection_3::Shape_detection_traits` class. The concept behind property maps is detailed in \ref chapterProperty_map "a dedicated chapter".
|
||||||
|
|
||||||
Typical usage consists in five steps:
|
Typical usage consists in five steps:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,9 @@ typedef std::vector<Point_with_normal> Pwn_vector;
|
||||||
typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
||||||
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
||||||
|
|
||||||
// In Efficient_RANSAC_traits the basic types, i.e., Point and Vector types
|
// In Shape_detection_traits the basic types, i.e., Point and Vector types
|
||||||
// as well as iterator type and property maps, are defined.
|
// as well as iterator type and property maps, are defined.
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits
|
typedef CGAL::Shape_detection_3::Shape_detection_traits
|
||||||
<Kernel, Pwn_vector, Point_map, Normal_map> Traits;
|
<Kernel, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
typedef CGAL::Shape_detection_3::Plane<Traits> Plane;
|
typedef CGAL::Shape_detection_3::Plane<Traits> Plane;
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,9 @@ typedef std::vector<Point_with_normal> Pwn_vector;
|
||||||
typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
||||||
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
||||||
|
|
||||||
// In Efficient_RANSAC_traits the basic types, i.e., Point and Vector types
|
// In Shape_detection_traits the basic types, i.e., Point and Vector types
|
||||||
// as well as iterator type and property maps, are defined.
|
// as well as iterator type and property maps, are defined.
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits
|
typedef CGAL::Shape_detection_3::Shape_detection_traits
|
||||||
<Kernel, Pwn_vector, Point_map, Normal_map> Traits;
|
<Kernel, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
typedef My_Plane<Traits> Plane;
|
typedef My_Plane<Traits> Plane;
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,9 @@ typedef std::vector<Point_with_normal> Pwn_vector;
|
||||||
typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
||||||
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
||||||
|
|
||||||
// In Efficient_RANSAC_traits the basic types, i.e., Point and Vector types
|
// In Shape_detection_traits the basic types, i.e., Point and Vector types
|
||||||
// as well as iterator type and property maps, are defined.
|
// as well as iterator type and property maps, are defined.
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits<Kernel,
|
typedef CGAL::Shape_detection_3::Shape_detection_traits<Kernel,
|
||||||
Pwn_vector, Point_map, Normal_map> Traits;
|
Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
typedef CGAL::Shape_detection_3::Cone<Traits> Cone;
|
typedef CGAL::Shape_detection_3::Cone<Traits> Cone;
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,9 @@ typedef std::vector<Point_with_normal> Pwn_vector;
|
||||||
typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
||||||
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
||||||
|
|
||||||
// In Efficient_RANSAC_traits the basic types, i.e., Point and Vector types
|
// In Shape_detection_traits the basic types, i.e., Point and Vector types
|
||||||
// as well as iterator type and property maps, are defined.
|
// as well as iterator type and property maps, are defined.
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits<Kernel,
|
typedef CGAL::Shape_detection_3::Shape_detection_traits<Kernel,
|
||||||
Pwn_vector, Point_map, Normal_map> Traits;
|
Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
typedef CGAL::Shape_detection_3::Plane<Traits> Plane;
|
typedef CGAL::Shape_detection_3::Plane<Traits> Plane;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ typedef std::vector<Point_with_normal> Pwn_vector;
|
||||||
typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
||||||
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits
|
typedef CGAL::Shape_detection_3::Shape_detection_traits
|
||||||
<Kernel, Pwn_vector, Point_map, Normal_map> Traits;
|
<Kernel, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
typedef CGAL::Shape_detection_3::Plane<Traits> Plane;
|
typedef CGAL::Shape_detection_3::Plane<Traits> Plane;
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
|
|
||||||
|
|
||||||
#include <CGAL/Shape_detection_3/Efficient_RANSAC.h>
|
#include <CGAL/Shape_detection_3/Efficient_RANSAC.h>
|
||||||
#include <CGAL/Shape_detection_3/Efficient_RANSAC_traits.h>
|
#include <CGAL/Shape_detection_3/Shape_detection_traits.h>
|
||||||
#include <CGAL/Shape_detection_3/Plane.h>
|
#include <CGAL/Shape_detection_3/Plane.h>
|
||||||
#include <CGAL/Shape_detection_3/Cylinder.h>
|
#include <CGAL/Shape_detection_3/Cylinder.h>
|
||||||
#include <CGAL/Shape_detection_3/Cone.h>
|
#include <CGAL/Shape_detection_3/Cone.h>
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,8 @@
|
||||||
// Author(s) : Sven Oesau, Yannick Verdie, Clément Jamin, Pierre Alliez
|
// Author(s) : Sven Oesau, Yannick Verdie, Clément Jamin, Pierre Alliez
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef CGAL_SHAPE_DETECTION_3_EFFICIENT_RANSAC_TRAITS_H
|
#ifndef CGAL_SHAPE_DETECTION_3_SHAPE_DETECTION_TRAITS_H
|
||||||
#define CGAL_SHAPE_DETECTION_3_EFFICIENT_RANSAC_TRAITS_H
|
#define CGAL_SHAPE_DETECTION_3_SHAPE_DETECTION_TRAITS_H
|
||||||
|
|
||||||
#include <CGAL/license/Point_set_shape_detection_3.h>
|
#include <CGAL/license/Point_set_shape_detection_3.h>
|
||||||
|
|
||||||
|
|
@ -32,7 +32,7 @@ namespace CGAL {
|
||||||
/*!
|
/*!
|
||||||
\ingroup PkgPointSetShapeDetection3
|
\ingroup PkgPointSetShapeDetection3
|
||||||
\brief %Default traits class to use the shape detection class `Efficient_RANSAC`.
|
\brief %Default traits class to use the shape detection class `Efficient_RANSAC`.
|
||||||
\cgalModels `EfficientRANSACTraits`
|
\cgalModels `Shape_detection_3::Traits`
|
||||||
|
|
||||||
\tparam Gt a model of the concept `#Kernel` with `Gt::FT` being `float` or `double`.
|
\tparam Gt a model of the concept `#Kernel` with `Gt::FT` being `float` or `double`.
|
||||||
|
|
||||||
|
|
@ -48,7 +48,7 @@ namespace CGAL {
|
||||||
class InputRange,
|
class InputRange,
|
||||||
class InputPointMap,
|
class InputPointMap,
|
||||||
class InputNormalMap>
|
class InputNormalMap>
|
||||||
struct Efficient_RANSAC_traits {
|
struct Shape_detection_traits {
|
||||||
///
|
///
|
||||||
typedef typename Gt::FT FT;
|
typedef typename Gt::FT FT;
|
||||||
///
|
///
|
||||||
|
|
@ -78,7 +78,7 @@ namespace CGAL {
|
||||||
///
|
///
|
||||||
typedef CGAL::Search_traits_3<Gt> Search_traits;
|
typedef CGAL::Search_traits_3<Gt> Search_traits;
|
||||||
///
|
///
|
||||||
Efficient_RANSAC_traits(const Gt& gt = Gt())
|
Shape_detection_traits(const Gt& gt = Gt())
|
||||||
: m_gt(gt) {}
|
: m_gt(gt) {}
|
||||||
|
|
||||||
typedef typename Gt::Construct_point_3 Construct_point_3;
|
typedef typename Gt::Construct_point_3 Construct_point_3;
|
||||||
|
|
@ -193,4 +193,4 @@ namespace CGAL {
|
||||||
|
|
||||||
} } // end of namespace CGAL::Shape_detection_3
|
} } // end of namespace CGAL::Shape_detection_3
|
||||||
|
|
||||||
#endif // CGAL_SHAPE_DETECTION_3_EFFICIENT_RANSAC_TRAITS_H
|
#endif // CGAL_SHAPE_DETECTION_3_SHAPE_DETECTION_TRAITS_H
|
||||||
|
|
@ -548,7 +548,7 @@ void subgraph_mutually_orthogonal_clusters (PlaneClusterContainer& clusters,
|
||||||
|
|
||||||
The implementation follows \cgalCite{cgal:vla-lod-15}.
|
The implementation follows \cgalCite{cgal:vla-lod-15}.
|
||||||
|
|
||||||
\tparam Traits a model of `EfficientRANSACTraits`
|
\tparam Traits a model of `ShapeDetectionTraits`
|
||||||
|
|
||||||
\param shape_detection Shape detection object used to detect
|
\param shape_detection Shape detection object used to detect
|
||||||
shapes from the input data. While the shape detection algorithm
|
shapes from the input data. While the shape detection algorithm
|
||||||
|
|
@ -583,34 +583,34 @@ void subgraph_mutually_orthogonal_clusters (PlaneClusterContainer& clusters,
|
||||||
regularization. Default value is the Z axis.
|
regularization. Default value is the Z axis.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
template <typename EfficientRANSACTraits>
|
template <typename ShapeDetectionTraits>
|
||||||
void regularize_planes (const Shape_detection_3::Efficient_RANSAC<EfficientRANSACTraits>& shape_detection,
|
void regularize_planes (const Shape_detection_3::Efficient_RANSAC<ShapeDetectionTraits>& shape_detection,
|
||||||
bool regularize_parallelism,
|
bool regularize_parallelism,
|
||||||
bool regularize_orthogonality,
|
bool regularize_orthogonality,
|
||||||
bool regularize_coplanarity,
|
bool regularize_coplanarity,
|
||||||
bool regularize_axis_symmetry,
|
bool regularize_axis_symmetry,
|
||||||
typename EfficientRANSACTraits::FT tolerance_angle
|
typename ShapeDetectionTraits::FT tolerance_angle
|
||||||
= (typename EfficientRANSACTraits::FT)25.0,
|
= (typename ShapeDetectionTraits::FT)25.0,
|
||||||
typename EfficientRANSACTraits::FT tolerance_coplanarity
|
typename ShapeDetectionTraits::FT tolerance_coplanarity
|
||||||
= (typename EfficientRANSACTraits::FT)0.01,
|
= (typename ShapeDetectionTraits::FT)0.01,
|
||||||
typename EfficientRANSACTraits::Vector_3 symmetry_direction
|
typename ShapeDetectionTraits::Vector_3 symmetry_direction
|
||||||
= typename EfficientRANSACTraits::Vector_3
|
= typename ShapeDetectionTraits::Vector_3
|
||||||
((typename EfficientRANSACTraits::FT)0.,
|
((typename ShapeDetectionTraits::FT)0.,
|
||||||
(typename EfficientRANSACTraits::FT)0.,
|
(typename ShapeDetectionTraits::FT)0.,
|
||||||
(typename EfficientRANSACTraits::FT)1.))
|
(typename ShapeDetectionTraits::FT)1.))
|
||||||
{
|
{
|
||||||
typedef typename EfficientRANSACTraits::FT FT;
|
typedef typename ShapeDetectionTraits::FT FT;
|
||||||
typedef typename EfficientRANSACTraits::Point_3 Point;
|
typedef typename ShapeDetectionTraits::Point_3 Point;
|
||||||
typedef typename EfficientRANSACTraits::Vector_3 Vector;
|
typedef typename ShapeDetectionTraits::Vector_3 Vector;
|
||||||
typedef typename EfficientRANSACTraits::Plane_3 Plane;
|
typedef typename ShapeDetectionTraits::Plane_3 Plane;
|
||||||
|
|
||||||
typedef Shape_detection_3::Shape_base<EfficientRANSACTraits> Shape;
|
typedef Shape_detection_3::Shape_base<ShapeDetectionTraits> Shape;
|
||||||
typedef Shape_detection_3::Plane<EfficientRANSACTraits> Plane_shape;
|
typedef Shape_detection_3::Plane<ShapeDetectionTraits> Plane_shape;
|
||||||
|
|
||||||
typedef typename internal::PlaneRegularization::Plane_cluster<EfficientRANSACTraits>
|
typedef typename internal::PlaneRegularization::Plane_cluster<ShapeDetectionTraits>
|
||||||
Plane_cluster;
|
Plane_cluster;
|
||||||
|
|
||||||
typename EfficientRANSACTraits::Input_range::iterator input_begin = shape_detection.input_iterator_first();
|
typename ShapeDetectionTraits::Input_range::iterator input_begin = shape_detection.input_iterator_first();
|
||||||
|
|
||||||
std::vector<boost::shared_ptr<Plane_shape> > planes;
|
std::vector<boost::shared_ptr<Plane_shape> > planes;
|
||||||
|
|
||||||
|
|
@ -631,7 +631,7 @@ void regularize_planes (const Shape_detection_3::Efficient_RANSAC<EfficientRANSA
|
||||||
*/
|
*/
|
||||||
std::vector<Point> centroids;
|
std::vector<Point> centroids;
|
||||||
std::vector<FT> areas;
|
std::vector<FT> areas;
|
||||||
internal::PlaneRegularization::compute_centroids_and_areas<EfficientRANSACTraits>
|
internal::PlaneRegularization::compute_centroids_and_areas<ShapeDetectionTraits>
|
||||||
(input_begin, planes, shape_detection.point_map(), centroids, areas);
|
(input_begin, planes, shape_detection.point_map(), centroids, areas);
|
||||||
|
|
||||||
tolerance_angle = tolerance_angle * (FT)CGAL_PI / (FT)(180);
|
tolerance_angle = tolerance_angle * (FT)CGAL_PI / (FT)(180);
|
||||||
|
|
@ -642,7 +642,7 @@ void regularize_planes (const Shape_detection_3::Efficient_RANSAC<EfficientRANSA
|
||||||
// & compute the normal, size and cos angle to the symmetry
|
// & compute the normal, size and cos angle to the symmetry
|
||||||
// direction of each cluster
|
// direction of each cluster
|
||||||
std::vector<Plane_cluster> clusters;
|
std::vector<Plane_cluster> clusters;
|
||||||
internal::PlaneRegularization::compute_parallel_clusters<EfficientRANSACTraits>
|
internal::PlaneRegularization::compute_parallel_clusters<ShapeDetectionTraits>
|
||||||
(planes, clusters, areas,
|
(planes, clusters, areas,
|
||||||
(regularize_parallelism ? tolerance_cosangle : (FT)0.0),
|
(regularize_parallelism ? tolerance_cosangle : (FT)0.0),
|
||||||
(regularize_axis_symmetry ? symmetry_direction : CGAL::NULL_VECTOR));
|
(regularize_axis_symmetry ? symmetry_direction : CGAL::NULL_VECTOR));
|
||||||
|
|
@ -668,7 +668,7 @@ void regularize_planes (const Shape_detection_3::Efficient_RANSAC<EfficientRANSA
|
||||||
//clustering the symmetry cosangle and store their centroids in
|
//clustering the symmetry cosangle and store their centroids in
|
||||||
//cosangle_centroids and the centroid index of each cluster in
|
//cosangle_centroids and the centroid index of each cluster in
|
||||||
//list_cluster_index
|
//list_cluster_index
|
||||||
internal::PlaneRegularization::cluster_symmetric_cosangles<EfficientRANSACTraits>
|
internal::PlaneRegularization::cluster_symmetric_cosangles<ShapeDetectionTraits>
|
||||||
(clusters, tolerance_cosangle, tolerance_cosangle_ortho);
|
(clusters, tolerance_cosangle, tolerance_cosangle_ortho);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -676,7 +676,7 @@ void regularize_planes (const Shape_detection_3::Efficient_RANSAC<EfficientRANSA
|
||||||
//clusters in subgraph_clusters), and select the cluster of
|
//clusters in subgraph_clusters), and select the cluster of
|
||||||
//largest area
|
//largest area
|
||||||
if (regularize_orthogonality || regularize_axis_symmetry)
|
if (regularize_orthogonality || regularize_axis_symmetry)
|
||||||
internal::PlaneRegularization::subgraph_mutually_orthogonal_clusters<EfficientRANSACTraits>
|
internal::PlaneRegularization::subgraph_mutually_orthogonal_clusters<ShapeDetectionTraits>
|
||||||
(clusters, (regularize_axis_symmetry ? symmetry_direction : CGAL::NULL_VECTOR));
|
(clusters, (regularize_axis_symmetry ? symmetry_direction : CGAL::NULL_VECTOR));
|
||||||
|
|
||||||
//recompute optimal plane for each primitive after normal regularization
|
//recompute optimal plane for each primitive after normal regularization
|
||||||
|
|
|
||||||
|
|
@ -45,9 +45,9 @@ namespace CGAL {
|
||||||
class InputRange,
|
class InputRange,
|
||||||
class InputPointMap,
|
class InputPointMap,
|
||||||
class InputNormalMap>
|
class InputNormalMap>
|
||||||
struct Efficient_RANSAC_traits {
|
struct Shape_detection_traits {
|
||||||
|
|
||||||
typedef Efficient_RANSAC_traits<
|
typedef Shape_detection_traits<
|
||||||
Gt, InputRange, InputPointMap, InputNormalMap> Self;
|
Gt, InputRange, InputPointMap, InputNormalMap> Self;
|
||||||
///
|
///
|
||||||
typedef double FT;
|
typedef double FT;
|
||||||
|
|
@ -305,7 +305,7 @@ namespace CGAL {
|
||||||
Compute_squared_distance_3 compute_squared_distance_3_object() const
|
Compute_squared_distance_3 compute_squared_distance_3_object() const
|
||||||
{ return Compute_squared_distance_3(); }*/
|
{ return Compute_squared_distance_3(); }*/
|
||||||
///
|
///
|
||||||
Efficient_RANSAC_traits(const Gt& gt = Gt())
|
Shape_detection_traits(const Gt& gt = Gt())
|
||||||
: m_gt(gt) {}
|
: m_gt(gt) {}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ bool test_cone_connected_component() {
|
||||||
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
||||||
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits<
|
typedef CGAL::Shape_detection_3::Shape_detection_traits<
|
||||||
K, Pwn_vector, Point_map, Normal_map> Traits;
|
K, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ bool test_cone_parameters() {
|
||||||
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
||||||
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits<
|
typedef CGAL::Shape_detection_3::Shape_detection_traits<
|
||||||
K, Pwn_vector, Point_map, Normal_map> Traits;
|
K, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ bool test_cylinder_connected_component() {
|
||||||
typedef typename CGAL::Identity_property_map<Pwn> Point_map;
|
typedef typename CGAL::Identity_property_map<Pwn> Point_map;
|
||||||
typedef typename CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
typedef typename CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits<
|
typedef CGAL::Shape_detection_3::Shape_detection_traits<
|
||||||
K, Pwn_vector, Point_map, Normal_map> Traits;
|
K, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ bool test_cylinder_parameters() {
|
||||||
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
||||||
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits<
|
typedef CGAL::Shape_detection_3::Shape_detection_traits<
|
||||||
K, Pwn_vector, Point_map, Normal_map> Traits;
|
K, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ bool test_plane_connected_component() {
|
||||||
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
||||||
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
||||||
|
|
||||||
typedef typename CGAL::Shape_detection_3::Efficient_RANSAC_traits<K,
|
typedef typename CGAL::Shape_detection_3::Shape_detection_traits<K,
|
||||||
Pwn_vector, Point_map, Normal_map> Traits;
|
Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
|
|
||||||
typedef typename CGAL::Shape_detection_3::Efficient_RANSAC<Traits>
|
typedef typename CGAL::Shape_detection_3::Efficient_RANSAC<Traits>
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ bool test_plane_parameters() {
|
||||||
typedef typename CGAL::Identity_property_map<Pwn> Point_map;
|
typedef typename CGAL::Identity_property_map<Pwn> Point_map;
|
||||||
typedef typename CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
typedef typename CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits<K,
|
typedef CGAL::Shape_detection_3::Shape_detection_traits<K,
|
||||||
Pwn_vector, Point_map, Normal_map> Traits;
|
Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ typedef std::vector<Point_with_normal> Pwn_vector;
|
||||||
typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
typedef CGAL::First_of_pair_property_map<Point_with_normal> Point_map;
|
||||||
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
typedef CGAL::Second_of_pair_property_map<Point_with_normal> Normal_map;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits
|
typedef CGAL::Shape_detection_3::Shape_detection_traits
|
||||||
<Kernel, Pwn_vector, Point_map, Normal_map> Traits;
|
<Kernel, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ bool test_scene() {
|
||||||
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
||||||
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits<
|
typedef CGAL::Shape_detection_3::Shape_detection_traits<
|
||||||
K, Pwn_vector, Point_map, Normal_map> Traits;
|
K, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits>
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits>
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ bool test_sphere_connected_component() {
|
||||||
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
||||||
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits<
|
typedef CGAL::Shape_detection_3::Shape_detection_traits<
|
||||||
K, Pwn_vector, Point_map, Normal_map> Traits;
|
K, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ bool test_sphere_parameters() {
|
||||||
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
||||||
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits<
|
typedef CGAL::Shape_detection_3::Shape_detection_traits<
|
||||||
K, Pwn_vector, Point_map, Normal_map> Traits;
|
K, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ bool test_torus_connected_component() {
|
||||||
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
||||||
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits<
|
typedef CGAL::Shape_detection_3::Shape_detection_traits<
|
||||||
K, Pwn_vector, Point_map, Normal_map> Traits;
|
K, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ bool test_torus_parameters() {
|
||||||
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
typedef CGAL::Identity_property_map<Pwn> Point_map;
|
||||||
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
typedef CGAL::Normal_of_point_with_normal_pmap<K> Normal_map;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits<
|
typedef CGAL::Shape_detection_3::Shape_detection_traits<
|
||||||
K, Pwn_vector, Point_map, Normal_map> Traits;
|
K, Pwn_vector, Point_map, Normal_map> Traits;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Efficient_ransac;
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ class Polyhedron_demo_point_set_shape_detection_plugin :
|
||||||
typedef Point_set_3<Kernel>::Point_map PointPMap;
|
typedef Point_set_3<Kernel>::Point_map PointPMap;
|
||||||
typedef Point_set_3<Kernel>::Vector_map NormalPMap;
|
typedef Point_set_3<Kernel>::Vector_map NormalPMap;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits<Epic_kernel, Point_set, PointPMap, NormalPMap> Traits;
|
typedef CGAL::Shape_detection_3::Shape_detection_traits<Epic_kernel, Point_set, PointPMap, NormalPMap> Traits;
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Shape_detection;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Shape_detection;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
@ -438,7 +438,7 @@ void Polyhedron_demo_point_set_shape_detection_plugin::on_actionDetect_triggered
|
||||||
typedef Point_set::Point_map PointPMap;
|
typedef Point_set::Point_map PointPMap;
|
||||||
typedef Point_set::Vector_map NormalPMap;
|
typedef Point_set::Vector_map NormalPMap;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits<Epic_kernel, Point_set, PointPMap, NormalPMap> Traits;
|
typedef CGAL::Shape_detection_3::Shape_detection_traits<Epic_kernel, Point_set, PointPMap, NormalPMap> Traits;
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Shape_detection;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Shape_detection;
|
||||||
|
|
||||||
Shape_detection shape_detection;
|
Shape_detection shape_detection;
|
||||||
|
|
|
||||||
|
|
@ -1322,7 +1322,7 @@ void Polyhedron_demo_surface_reconstruction_plugin::ransac_reconstruction
|
||||||
typedef Point_set::Point_map PointMap;
|
typedef Point_set::Point_map PointMap;
|
||||||
typedef Point_set::Vector_map NormalMap;
|
typedef Point_set::Vector_map NormalMap;
|
||||||
|
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC_traits<Kernel, Point_set, PointMap, NormalMap> Traits;
|
typedef CGAL::Shape_detection_3::Shape_detection_traits<Kernel, Point_set, PointMap, NormalMap> Traits;
|
||||||
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Shape_detection;
|
typedef CGAL::Shape_detection_3::Efficient_RANSAC<Traits> Shape_detection;
|
||||||
|
|
||||||
local_timer.start();
|
local_timer.start();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue