replacing Point_set_3.h include with forward declaration

This commit is contained in:
Sven Oesau 2025-04-02 08:44:33 +02:00
parent 4682171fcc
commit ae1a157c64
3 changed files with 18 additions and 9 deletions

View File

@ -18,8 +18,6 @@
#include <CGAL/Random.h> #include <CGAL/Random.h>
#include <CGAL/Point_set_3.h>
#include <CGAL/Shape_detection/Efficient_RANSAC/Octree.h> #include <CGAL/Shape_detection/Efficient_RANSAC/Octree.h>
#include <CGAL/Shape_detection/Efficient_RANSAC/Shape_base.h> #include <CGAL/Shape_detection/Efficient_RANSAC/Shape_base.h>
#include <CGAL/Shape_detection/Efficient_RANSAC/Plane.h> #include <CGAL/Shape_detection/Efficient_RANSAC/Plane.h>
@ -44,6 +42,11 @@
//--------------------- //---------------------
namespace CGAL { namespace CGAL {
// Forward declaration for normal check
template<typename Point_3, typename Vector_3>
class Point_set_3;
namespace Shape_detection { namespace Shape_detection {
/*! /*!
@ -285,7 +288,7 @@ public:
///< Property map to access the normal of an input point. ///< Property map to access the normal of an input point.
) { ) {
if constexpr (std::is_convertible_v<Input_range, Point_set_3<Point>>) if constexpr (std::is_convertible_v<Input_range, Point_set_3<Point>>)
CGAL_assertion(input_range.has_normal_map()); CGAL_precondition(input_range.has_normal_map());
m_point_pmap = point_map; m_point_pmap = point_map;
m_normal_pmap = normal_map; m_normal_pmap = normal_map;

View File

@ -16,13 +16,16 @@
#include <CGAL/license/Shape_detection.h> #include <CGAL/license/Shape_detection.h>
#include <CGAL/Point_set_3.h>
// Internal includes. // Internal includes.
#include <CGAL/Shape_detection/Region_growing/internal/property_map.h> #include <CGAL/Shape_detection/Region_growing/internal/property_map.h>
#include <CGAL/Shape_detection/Region_growing/internal/utils.h> #include <CGAL/Shape_detection/Region_growing/internal/utils.h>
namespace CGAL { namespace CGAL {
// Forward declaration for normal check
template<typename Point_3, typename Vector_3>
class Point_set_3;
namespace Shape_detection { namespace Shape_detection {
namespace Point_set { namespace Point_set {
@ -138,7 +141,7 @@ namespace Point_set {
CGAL_precondition(input_range.size() > 0); CGAL_precondition(input_range.size() > 0);
if constexpr (std::is_convertible_v<InputRange, Point_set_3<typename Traits::Point_3>>) if constexpr (std::is_convertible_v<InputRange, Point_set_3<typename Traits::Point_3>>)
CGAL_assertion(input_range.has_normal_map()); CGAL_precondition(input_range.has_normal_map());
using NP_helper = internal::Default_property_map_helper<CGAL_NP_CLASS, Item, typename InputRange::const_iterator, internal_np::item_map_t>; using NP_helper = internal::Default_property_map_helper<CGAL_NP_CLASS, Item, typename InputRange::const_iterator, internal_np::item_map_t>;
using Item_map = typename NP_helper::type; using Item_map = typename NP_helper::type;

View File

@ -16,13 +16,16 @@
#include <CGAL/license/Shape_detection.h> #include <CGAL/license/Shape_detection.h>
#include <CGAL/Point_set_3.h>
// Internal includes. // Internal includes.
#include <CGAL/Shape_detection/Region_growing/internal/property_map.h> #include <CGAL/Shape_detection/Region_growing/internal/property_map.h>
#include <CGAL/Shape_detection/Region_growing/internal/utils.h> #include <CGAL/Shape_detection/Region_growing/internal/utils.h>
namespace CGAL { namespace CGAL {
// Forward declaration for normal check
template<typename Point_3, typename Vector_3>
class Point_set_3;
namespace Shape_detection { namespace Shape_detection {
namespace Point_set { namespace Point_set {
@ -140,7 +143,7 @@ namespace Point_set {
{ {
CGAL_precondition(input_range.size() > 0); CGAL_precondition(input_range.size() > 0);
if constexpr (std::is_convertible_v<InputRange, Point_set_3<typename Traits::Point_3>>) if constexpr (std::is_convertible_v<InputRange, Point_set_3<typename Traits::Point_3>>)
CGAL_assertion(input_range.has_normal_map()); CGAL_precondition(input_range.has_normal_map());
using NP_helper = internal::Default_property_map_helper<CGAL_NP_CLASS, Item, typename InputRange::const_iterator, internal_np::item_map_t>; using NP_helper = internal::Default_property_map_helper<CGAL_NP_CLASS, Item, typename InputRange::const_iterator, internal_np::item_map_t>;
using Item_map = typename NP_helper::type; using Item_map = typename NP_helper::type;