mirror of https://github.com/CGAL/cgal
Make it clear that the functor is not part of the Kernel concept
This commit is contained in:
parent
0dcff365d0
commit
d5a5b20ce8
|
|
@ -874,7 +874,7 @@ struct Lazy_construction_bbox
|
|||
|
||||
|
||||
template <typename LK, typename AC, typename EC>
|
||||
struct Lazy_construction_optional
|
||||
struct Lazy_construction_optional_for_polygonal_envelope
|
||||
{
|
||||
static const bool Protection = true;
|
||||
typedef typename LK::Approximate_kernel AK;
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@ private:
|
|||
// The case distinction goes as follows:
|
||||
// result_type == FT => NT
|
||||
// result_type == Object => Object
|
||||
// result_type == boost::optional => OPTIONAL_
|
||||
// result_type == boost::optional => OPTIONAL_ Only for Intersect_point_3_for_polyhedral_envelope which returns a handle for a singleton
|
||||
// result_type == Bbox_2 || result_type == Bbox_3 => BBOX
|
||||
// default => NONE
|
||||
// no result_type => NONE
|
||||
|
|
@ -214,7 +214,7 @@ private:
|
|||
|
||||
CGAL_WRAPPER_TRAIT(Intersect_2, VARIANT)
|
||||
CGAL_WRAPPER_TRAIT(Intersect_3, VARIANT)
|
||||
CGAL_WRAPPER_TRAIT(Intersect_point_3, OPTIONAL_)
|
||||
CGAL_WRAPPER_TRAIT(Intersect_point_3_for_polyhedral_envelope, OPTIONAL_)
|
||||
CGAL_WRAPPER_TRAIT(Compute_squared_radius_2, NT)
|
||||
CGAL_WRAPPER_TRAIT(Compute_x_3, NT)
|
||||
CGAL_WRAPPER_TRAIT(Compute_y_3, NT)
|
||||
|
|
@ -258,7 +258,7 @@ private:
|
|||
template <typename Construction>
|
||||
struct Select_wrapper_impl<Construction, OPTIONAL_> {
|
||||
template<typename Kernel, typename AKC, typename EKC>
|
||||
struct apply { typedef Lazy_construction_optional<Kernel, AKC, EKC> type; };
|
||||
struct apply { typedef Lazy_construction_optional_for_polygonal_envelope<Kernel, AKC, EKC> type; };
|
||||
};
|
||||
|
||||
template <typename Construction>
|
||||
|
|
|
|||
|
|
@ -26,17 +26,17 @@ CGAL_DO_INTERSECT_FUNCTION(Plane_3, Line_3, 3)
|
|||
template < class K >
|
||||
inline
|
||||
boost::optional<typename K::Point_3>
|
||||
intersection_point(const Plane_3<K>& plane, const Line_3<K>& line)
|
||||
intersection_point_for_polyhedral_envelope(const Plane_3<K>& plane, const Line_3<K>& line)
|
||||
{
|
||||
return K().intersect_point_3_object()(plane, line);
|
||||
return K().intersect_point_3_for_polyhedral_envelope_object()(plane, line);
|
||||
}
|
||||
|
||||
template < class K >
|
||||
inline
|
||||
boost::optional<typename K::Point_3>
|
||||
intersection_point(const Line_3<K>& line, const Plane_3<K>& plane)
|
||||
intersection_point_for_polyhedral_envelope(const Line_3<K>& line, const Plane_3<K>& plane)
|
||||
{
|
||||
return K().intersect_point_3_object()(plane, line);
|
||||
return K().intersect_point_3_for_polyhedral_envelope_object()(plane, line);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,9 +26,9 @@ CGAL_DO_INTERSECT_FUNCTION_SELF(Plane_3, 3)
|
|||
template < class K >
|
||||
inline
|
||||
boost::optional<typename K::Point_3>
|
||||
intersection_point(const Plane_3<K>& p0, const Plane_3<K>& p1, const Plane_3<K>& p2)
|
||||
intersection_point_for_polyhedral_envelope(const Plane_3<K>& p0, const Plane_3<K>& p1, const Plane_3<K>& p2)
|
||||
{
|
||||
return K().intersect_point_3_object()(p0, p1, p2);
|
||||
return K().intersect_point_3_for_polyhedral_envelope_object()(p0, p1, p2);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3568,8 +3568,12 @@ namespace CommonKernelFunctors {
|
|||
};
|
||||
|
||||
|
||||
// This functor is not part of the documented Kernel API, but an implementation detail
|
||||
// of Polygon_mesh_processing::Polyhedral_envelope
|
||||
// When used with the Lazy_kernel (that is Epeck) the returned point
|
||||
// is a singleton (so its coordinates will be changed by another call).
|
||||
template <typename K>
|
||||
class Intersect_point_3
|
||||
class Intersect_point_3_for_polyhedral_envelope
|
||||
{
|
||||
public:
|
||||
typedef typename K::Point_3 Point_3;
|
||||
|
|
|
|||
|
|
@ -542,8 +542,8 @@ CGAL_Kernel_cons(Intersect_2,
|
|||
intersect_2_object)
|
||||
CGAL_Kernel_cons(Intersect_3,
|
||||
intersect_3_object)
|
||||
CGAL_Kernel_cons(Intersect_point_3,
|
||||
intersect_point_3_object)
|
||||
CGAL_Kernel_cons(Intersect_point_3_for_polyhedral_envelope,
|
||||
intersect_point_3_for_polyhedral_envelope_object)
|
||||
CGAL_Kernel_pred(Is_degenerate_2,
|
||||
is_degenerate_2_object)
|
||||
CGAL_Kernel_pred_RT(Is_degenerate_3,
|
||||
|
|
|
|||
|
|
@ -729,7 +729,7 @@ private:
|
|||
for (unsigned int i = 0; i < cutp.size(); i++){
|
||||
const Plane& plane_i = prism[cutp[i]];
|
||||
|
||||
boost::optional<ePoint_3> op = intersection_point(line, plane_i.eplane);
|
||||
boost::optional<ePoint_3> op = intersection_point_for_polyhedral_envelope(line, plane_i.eplane);
|
||||
if(! op){
|
||||
std::cout << "there must be an intersection 2" << std::endl;
|
||||
}
|
||||
|
|
@ -850,8 +850,8 @@ private:
|
|||
}
|
||||
|
||||
for (unsigned int j = 0; j < cidl.size(); j++) {
|
||||
boost::optional<ePoint_3> op = intersection_point(line,
|
||||
halfspace[prismindex[queue[i]]][cidl[j]].eplane);
|
||||
boost::optional<ePoint_3> op = intersection_point_for_polyhedral_envelope(line,
|
||||
halfspace[prismindex[queue[i]]][cidl[j]].eplane);
|
||||
const ePoint_3& ip = *op;
|
||||
inter = Implicit_Seg_Facet_interpoint_Out_Prism_return_local_id
|
||||
(ip, idlist, jump1, check_id);
|
||||
|
|
@ -1034,7 +1034,7 @@ private:
|
|||
const Plane& plane_i = prism[cutp[i]];
|
||||
const eLine_3& eline = *(seg[k]);
|
||||
|
||||
boost::optional<ePoint_3> op = intersection_point(eline, plane_i.eplane);
|
||||
boost::optional<ePoint_3> op = intersection_point_for_polyhedral_envelope(eline, plane_i.eplane);
|
||||
if(! op){
|
||||
#ifdef CGAL_ENVELOPE_DEBUG
|
||||
std::cout << "there must be an intersection 6" << std::endl;
|
||||
|
|
@ -1088,7 +1088,7 @@ private:
|
|||
|
||||
int inter = 0;
|
||||
|
||||
boost::optional<ePoint_3> ipp = intersection_point(tri_eplane, prism[cutp[i]].eplane, prism[cutp[j]].eplane);
|
||||
boost::optional<ePoint_3> ipp = intersection_point_for_polyhedral_envelope(tri_eplane, prism[cutp[i]].eplane, prism[cutp[j]].eplane);
|
||||
if(ipp){
|
||||
inter = is_3_triangle_cut_float_fast(tri0, tri1, tri2,
|
||||
n,
|
||||
|
|
@ -1528,8 +1528,8 @@ private:
|
|||
if (!cut) continue;
|
||||
|
||||
for (unsigned int j = 0; j < cidl.size(); j++) {
|
||||
boost::optional<ePoint_3> op = intersection_point(eline,
|
||||
halfspace[prismindex[queue[i]]][cidl[j]].eplane);
|
||||
boost::optional<ePoint_3> op = intersection_point_for_polyhedral_envelope(eline,
|
||||
halfspace[prismindex[queue[i]]][cidl[j]].eplane);
|
||||
const ePoint_3& ip = *op;
|
||||
inter = Implicit_Seg_Facet_interpoint_Out_Prism_return_local_id(ip, idlist, jump1, check_id);
|
||||
|
||||
|
|
@ -1612,8 +1612,8 @@ private:
|
|||
}
|
||||
// now we know that there exists an intesection point
|
||||
|
||||
boost::optional<ePoint_3> op = intersection_point(eline,
|
||||
halfspace[filtered_intersection[queue[i]]][intersect_face[queue[i]][j]].eplane);
|
||||
boost::optional<ePoint_3> op = intersection_point_for_polyhedral_envelope(eline,
|
||||
halfspace[filtered_intersection[queue[i]]][intersect_face[queue[i]][j]].eplane);
|
||||
const ePoint_3& ip = *op;
|
||||
|
||||
inter = Implicit_Seg_Facet_interpoint_Out_Prism_return_local_id_with_face_order(ip, idlist, idlistorder, jump1, check_id);
|
||||
|
|
@ -1696,9 +1696,9 @@ private:
|
|||
// We moved the intersection here
|
||||
// In case there is no intersection point we continue
|
||||
boost::optional<ePoint_3>
|
||||
op = intersection_point(etriangle_eplane,
|
||||
halfspace[jump1][intersect_face[queue[i]][k]].eplane,
|
||||
halfspace[jump2][intersect_face[queue[j]][h]].eplane);
|
||||
op = intersection_point_for_polyhedral_envelope(etriangle_eplane,
|
||||
halfspace[jump1][intersect_face[queue[i]][k]].eplane,
|
||||
halfspace[jump2][intersect_face[queue[j]][h]].eplane);
|
||||
if(! op){
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue