From dd7d2e980f7ce8e467d78ae43fb4a00d2d944280 Mon Sep 17 00:00:00 2001 From: Eric Berberich Date: Wed, 9 Jan 2008 23:19:00 +0000 Subject: [PATCH] added missing operators to Construct_arc_2l --- .../CGAL/Curved_kernel_via_analysis_2l.h | 65 ++++++++++++++++++- .../Surface_arc_2l.h | 1 + .../include/CGAL/TODO | 10 --- 3 files changed, 64 insertions(+), 12 deletions(-) diff --git a/Curved_kernel_via_analysis_2/include/CGAL/Curved_kernel_via_analysis_2l.h b/Curved_kernel_via_analysis_2/include/CGAL/Curved_kernel_via_analysis_2l.h index c2b9aa1a94e..1d3a20bf1a8 100644 --- a/Curved_kernel_via_analysis_2/include/CGAL/Curved_kernel_via_analysis_2l.h +++ b/Curved_kernel_via_analysis_2/include/CGAL/Curved_kernel_via_analysis_2l.h @@ -141,7 +141,9 @@ public: CGAL_assertion(kernel != NULL); } - + //!\name Constructing non-vertical arcs + //!@{ + /*!\brief * Standard constructor for an bounded arc on xy-monotone part * of the surface. @@ -161,7 +163,66 @@ public: return surface_arc; } - // TODO missing operators + /*!\brief + * Standard constructor for a ray on xy-monotone part + * of the surface. + * It represents the arc on \c surface covertical to \c arc which + * lies on \c sheet of the xy-monotone subsurface. + * + * \pre arc.curve_end(MIN) = p || arc.curve_end(MAX) == p + */ + Surface_arc_2l operator()(const Projected_arc_2& arc, + const Surface_point_2l& p, + const Surface_3& surface, + int sheet, int sheet_p) { + Surface_arc_2l surface_arc(_m_curved_kernel, + arc, p, surface, sheet, sheet_p); + return surface_arc; + } + + + /*!\brief + * Standard constructor for a branch on xy-monotone part + * of the surface. + * It represents the arc on \c surface covertical to \c arc which + * lies on \c sheet of the xy-monotone subsurface. + * + * \pre arc.curve_end(MIN) = p || arc.curve_end(MAX) == p + */ + Surface_arc_2l operator()(const Projected_arc_2& arc, + const Surface_3& surface, + int sheet) { + Surface_arc_2l surface_arc(_m_curved_kernel, arc, surface, sheet); + return surface_arc; + } + + //!@} + + //!\name Constructing vertical arcs + //!@{ + + //! represents a bounded vertical arc + Surface_arc_2l operator()(const Surface_point_2l& p, + const Surface_point_2l& q, + const Surface_3& surface) { + Surface_arc_2l surface_arc(_m_curved_kernel, p, q, surface); + return surface_arc; + } + + //! represents a vertical ray + Surface_arc_2l operator()(const Surface_point_2l p, + CGAL::Arr_curve_end inf_end, + const Surface_3& surface) { + Surface_arc_2l surface_arc(_m_curved_kernel, p, inf_end, surface); + return surface_arc; + } + + //! represents a vertical branch + Surface_arc_2l operator()(const Projected_point_2& p, + const Surface_3& surface) { + Surface_arc_2l surface_arc(_m_curved_kernel, p, surface); + return surface_arc; + } private: //! pointer to \c CurvedKernel_2 ? diff --git a/Curved_kernel_via_analysis_2/include/CGAL/Curved_kernel_via_analysis_2l/Surface_arc_2l.h b/Curved_kernel_via_analysis_2/include/CGAL/Curved_kernel_via_analysis_2l/Surface_arc_2l.h index b8b287ca3e2..3789c305aa0 100644 --- a/Curved_kernel_via_analysis_2/include/CGAL/Curved_kernel_via_analysis_2l/Surface_arc_2l.h +++ b/Curved_kernel_via_analysis_2/include/CGAL/Curved_kernel_via_analysis_2l/Surface_arc_2l.h @@ -358,6 +358,7 @@ public: // Surface_point_2l } + //! represents a vertical branch Surface_arc_2l(Curved_kernel_via_analysis_2l *kernel, const Projected_point_2& p, const Surface_3& surface) : diff --git a/Curved_kernel_via_analysis_2/include/CGAL/TODO b/Curved_kernel_via_analysis_2/include/CGAL/TODO index fe9ddef1ba6..e8fa7a935ff 100644 --- a/Curved_kernel_via_analysis_2/include/CGAL/TODO +++ b/Curved_kernel_via_analysis_2/include/CGAL/TODO @@ -1,15 +1,5 @@ Tuesday (Arc-Day) -============================================================================== -// TODO add Construct_(planar_)arc_2 to CKvA_2, make - constructors protected and add pointers to constructing - CKva_2-instance in Arc_2 - - -(2) -* Introduce Construct_arc_2l -- missing operator()s - ============================================================================== // TODO put all functionality into functors and make the other private members static and functors friend