mirror of https://github.com/CGAL/cgal
Merge pull request #5407 from maxGimeno/T2-Document_projection_traits_3-maxGimeno
Triangulation_2 : Document the `Triangulation_2_projection_traits_3` class
This commit is contained in:
commit
6e4f55e1e5
|
|
@ -1,4 +1,5 @@
|
||||||
#include <CGAL/Installation/internal/disable_deprecation_warnings_and_errors.h>
|
#include <CGAL/Installation/internal/disable_deprecation_warnings_and_errors.h>
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <CGAL/Surface_mesh.h>
|
#include <CGAL/Surface_mesh.h>
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
#include <CGAL/license/GraphicsView.h>
|
#include <CGAL/license/GraphicsView.h>
|
||||||
|
|
||||||
#include <CGAL/Triangulation_2_projection_traits_3.h>
|
#include <CGAL/Projection_traits_3.h>
|
||||||
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
||||||
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
||||||
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
||||||
|
|
@ -887,7 +887,7 @@ protected:
|
||||||
bool is_process;
|
bool is_process;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef CGAL::Triangulation_2_projection_traits_3<CGAL::Exact_predicates_inexact_constructions_kernel> P_traits;
|
typedef CGAL::Projection_traits_3<CGAL::Exact_predicates_inexact_constructions_kernel> P_traits;
|
||||||
typedef CGAL::Triangulation_vertex_base_with_info_2<Vertex_info, P_traits> Vb;
|
typedef CGAL::Triangulation_vertex_base_with_info_2<Vertex_info, P_traits> Vb;
|
||||||
typedef CGAL::Triangulation_face_base_with_info_2<Face_info, P_traits> Fb1;
|
typedef CGAL::Triangulation_face_base_with_info_2<Face_info, P_traits> Fb1;
|
||||||
typedef CGAL::Constrained_triangulation_face_base_2<P_traits, Fb1> Fb;
|
typedef CGAL::Constrained_triangulation_face_base_2<P_traits, Fb1> Fb;
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,8 @@ Release date: December 2021
|
||||||
- Added `construct_centroid_2_object()` and `compute_determinant_2_object()` in `Projection_traits_xy_3`, `Projection_traits_xz_3`,
|
- Added `construct_centroid_2_object()` and `compute_determinant_2_object()` in `Projection_traits_xy_3`, `Projection_traits_xz_3`,
|
||||||
and`Projection_traits_yz_3` classes.
|
and`Projection_traits_yz_3` classes.
|
||||||
|
|
||||||
|
- Added documentation for the class `Projection_traits_3`, which enables the use of 2D algorithms on the projections of 3D data onto an arbitrary plane.
|
||||||
|
|
||||||
### [Polygon Mesh Processing](https://doc.cgal.org/5.4/Manual/packages.html#PkgPolygonMeshProcessing)
|
### [Polygon Mesh Processing](https://doc.cgal.org/5.4/Manual/packages.html#PkgPolygonMeshProcessing)
|
||||||
|
|
||||||
- Added the function `CGAL::Polygon_mesh_processing::match_faces()`, which, given two polygon meshes,
|
- Added the function `CGAL::Polygon_mesh_processing::match_faces()`, which, given two polygon meshes,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
namespace CGAL{
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\ingroup kernel_classes
|
||||||
|
|
||||||
|
The class `Projection_traits_3` works similarly to the `Projection_traits_xy_3`,
|
||||||
|
`Projection_traits_xz_3`, and `Projection_traits_yz_3` traits classes, enabling
|
||||||
|
the use of 2D algorithms on the projections of 3D data onto an arbitrary plane.
|
||||||
|
|
||||||
|
\tparam K must be a model of `Kernel`
|
||||||
|
|
||||||
|
\note Internal constructions (projections) are used in the predicate and
|
||||||
|
construction functors of this class. If `K` is a model of `Kernel` providing exact
|
||||||
|
constructions or if `K` is a `CGAL::Filtered_kernel` (such as for
|
||||||
|
`CGAL::Exact_predicates_inexact_constructions_kernel`), this class automatically
|
||||||
|
provides exact predicates.
|
||||||
|
|
||||||
|
\cgalModels `TriangulationTraits_2`
|
||||||
|
\cgalModels `DelaunayTriangulationTraits_2`
|
||||||
|
\cgalModels `ConstrainedTriangulationTraits_2`
|
||||||
|
\cgalModels `PolygonTraits_2`
|
||||||
|
|
||||||
|
\sa `CGAL::Projection_traits_xy_3`
|
||||||
|
\sa `CGAL::Projection_traits_xz_3`
|
||||||
|
\sa `CGAL::Projection_traits_yz_3`
|
||||||
|
*/
|
||||||
|
template <class K>
|
||||||
|
class Projection_traits_3
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/// \name Functors
|
||||||
|
/// The functors provided by this class are those listed in the
|
||||||
|
/// concepts. The functors operate on the 2D projections of their
|
||||||
|
/// arguments. They come with preconditions that projections of the
|
||||||
|
/// arguments are non-degenerate, e.g. a line segment does not project
|
||||||
|
/// on a single point, two points do not project onto the same point, etc.
|
||||||
|
|
||||||
|
/// \name Creation
|
||||||
|
///@{
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Constructor
|
||||||
|
*
|
||||||
|
* \param normal a vector orthogonal to the projection plane.
|
||||||
|
*/
|
||||||
|
Projection_traits_3(const typename K::Vector_3& normal);
|
||||||
|
|
||||||
|
///@}
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace CGAL
|
||||||
|
|
@ -13,12 +13,13 @@ deal with projections on the
|
||||||
`zx`- and the `zy`-plane,
|
`zx`- and the `zy`-plane,
|
||||||
respectively.
|
respectively.
|
||||||
|
|
||||||
\cgalHeading{Parameters}
|
\tparam K must be a model of `Kernel`.
|
||||||
|
|
||||||
The template parameter `K` has to
|
\note Internal constructions (projections) are used in the predicate and
|
||||||
be instantiated by a model of the `Kernel` concept.
|
construction functors of this class. If `K` is a model of `Kernel` providing exact
|
||||||
`Projection_traits_xy_3` uses types
|
constructions or if `K` is a `CGAL::Filtered_kernel` (such as for
|
||||||
and predicates defined in `K`.
|
`CGAL::Exact_predicates_inexact_constructions_kernel`), this class automatically
|
||||||
|
provides exact predicates.
|
||||||
|
|
||||||
\cgalModels The class is a model of several 2D triangulation traits class concepts,
|
\cgalModels The class is a model of several 2D triangulation traits class concepts,
|
||||||
except that it does not provide the type and constructors
|
except that it does not provide the type and constructors
|
||||||
|
|
@ -33,6 +34,7 @@ and predicates defined in `K`.
|
||||||
\cgalModels `AnalyticWeightTraits_2`
|
\cgalModels `AnalyticWeightTraits_2`
|
||||||
\cgalModels `BarycentricTraits_2`
|
\cgalModels `BarycentricTraits_2`
|
||||||
|
|
||||||
|
\sa `CGAL::Projection_traits_3`
|
||||||
*/
|
*/
|
||||||
template< typename K >
|
template< typename K >
|
||||||
class Projection_traits_xy_3 {
|
class Projection_traits_xy_3 {
|
||||||
|
|
|
||||||
|
|
@ -8898,7 +8898,7 @@ public:
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
returns true iff the \f$ x\f$-coordinate of `p` is smaller than the
|
returns true iff the \f$ x\f$-coordinate of `p` is smaller than the
|
||||||
\f$ x\f$-coordinate of `q` or if the are the same and
|
\f$ x\f$-coordinate of `q` or if they are the same and
|
||||||
the \f$ y\f$-coordinate of `p` is smaller than the \f$ y\f$-coordinate of `q`, or,
|
the \f$ y\f$-coordinate of `p` is smaller than the \f$ y\f$-coordinate of `q`, or,
|
||||||
if both \f$ x\f$- and \f$ y\f$- coordinate are identical and
|
if both \f$ x\f$- and \f$ y\f$- coordinate are identical and
|
||||||
the \f$ z\f$-coordinate of `p` is smaller than the \f$ z\f$-coordinate of `q`.
|
the \f$ z\f$-coordinate of `p` is smaller than the \f$ z\f$-coordinate of `q`.
|
||||||
|
|
@ -8928,7 +8928,7 @@ public:
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
returns true iff the \f$ x\f$-coordinate of `p` is smaller than the
|
returns true iff the \f$ x\f$-coordinate of `p` is smaller than the
|
||||||
\f$ x\f$-coordinate of `q` or if the are the same and
|
\f$ x\f$-coordinate of `q` or if they are the same and
|
||||||
the \f$ y\f$-coordinate of `p` is smaller than the \f$ y\f$-coordinate of `q`.
|
the \f$ y\f$-coordinate of `p` is smaller than the \f$ y\f$-coordinate of `q`.
|
||||||
*/
|
*/
|
||||||
bool operator()(const Kernel::Point_2&p,
|
bool operator()(const Kernel::Point_2&p,
|
||||||
|
|
@ -8957,7 +8957,7 @@ public:
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
returns true iff the \f$ x\f$-coordinate of `p` is smaller than the
|
returns true iff the \f$ x\f$-coordinate of `p` is smaller than the
|
||||||
\f$ x\f$-coordinate of `q` or if the are the same and
|
\f$ x\f$-coordinate of `q` or if they are the same and
|
||||||
the \f$ y\f$-coordinate of `p` is smaller than the \f$ y\f$-coordinate of `q`.
|
the \f$ y\f$-coordinate of `p` is smaller than the \f$ y\f$-coordinate of `q`.
|
||||||
*/
|
*/
|
||||||
bool operator()(const Kernel::Point_3&p,
|
bool operator()(const Kernel::Point_3&p,
|
||||||
|
|
@ -9040,7 +9040,7 @@ public:
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
returns true iff the \f$ y\f$-coordinate of `p` is smaller than the
|
returns true iff the \f$ y\f$-coordinate of `p` is smaller than the
|
||||||
\f$ y\f$-coordinate of `q` or if the are the same and
|
\f$ y\f$-coordinate of `q` or if they are the same and
|
||||||
the \f$ x\f$-coordinate of `p` is smaller than the \f$ x\f$-coordinate of `q`.
|
the \f$ x\f$-coordinate of `p` is smaller than the \f$ x\f$-coordinate of `q`.
|
||||||
*/
|
*/
|
||||||
bool operator()(const Kernel::Point_2&p,
|
bool operator()(const Kernel::Point_2&p,
|
||||||
|
|
|
||||||
|
|
@ -2,3 +2,4 @@
|
||||||
|
|
||||||
PROJECT_NAME = "CGAL ${CGAL_DOC_VERSION} - 2D and 3D Linear Geometry Kernel"
|
PROJECT_NAME = "CGAL ${CGAL_DOC_VERSION} - 2D and 3D Linear Geometry Kernel"
|
||||||
EXAMPLE_PATH += ${CGAL_Filtered_kernel_EXAMPLE_DIR}
|
EXAMPLE_PATH += ${CGAL_Filtered_kernel_EXAMPLE_DIR}
|
||||||
|
EXAMPLE_PATH += ${CGAL_Triangulation_2_EXAMPLE_DIR}
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,7 @@
|
||||||
- `CGAL::Simple_cartesian<FieldNumberType>`
|
- `CGAL::Simple_cartesian<FieldNumberType>`
|
||||||
- `CGAL::Simple_homogeneous<RingNumberType>`
|
- `CGAL::Simple_homogeneous<RingNumberType>`
|
||||||
- `CGAL::Projection_traits_xy_3<K>`
|
- `CGAL::Projection_traits_xy_3<K>`
|
||||||
|
- `CGAL::Projection_traits_3<K>`
|
||||||
|
|
||||||
\cgalCRPSection{Predefined Kernels}
|
\cgalCRPSection{Predefined Kernels}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,4 +13,5 @@
|
||||||
\example Kernel_23/points_and_segment.cpp
|
\example Kernel_23/points_and_segment.cpp
|
||||||
\example Kernel_23/surprising.cpp
|
\example Kernel_23/surprising.cpp
|
||||||
\example Kernel_23/exact.cpp
|
\example Kernel_23/exact.cpp
|
||||||
|
\example Triangulation_2/triangulation_projection_traits.cpp
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -5,30 +5,27 @@
|
||||||
//
|
//
|
||||||
// $URL$
|
// $URL$
|
||||||
// $Id$
|
// $Id$
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial
|
// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// Author(s) : Laurent Rineau
|
// Author(s) : Laurent Rineau
|
||||||
|
|
||||||
|
|
||||||
#ifndef CGAL_INTERNAL_TRIANGULATION_2_FILTERED_PROJECTION_TRAITS_3_H
|
#ifndef CGAL_INTERNAL_FILTERED_PROJECTION_TRAITS_3_H
|
||||||
#define CGAL_INTERNAL_TRIANGULATION_2_FILTERED_PROJECTION_TRAITS_3_H
|
#define CGAL_INTERNAL_FILTERED_PROJECTION_TRAITS_3_H
|
||||||
|
|
||||||
#include <CGAL/license/Triangulation_2.h>
|
#include <CGAL/Kernel_23/internal/Projection_traits_base_3.h>
|
||||||
|
|
||||||
|
|
||||||
#include <CGAL/Triangulation_2/internal/Triangulation_2_projection_traits_base_3.h>
|
|
||||||
#include <CGAL/Filtered_predicate_with_state.h>
|
#include <CGAL/Filtered_predicate_with_state.h>
|
||||||
|
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
template < class Filtered_kernel >
|
template < class Filtered_kernel >
|
||||||
class Triangulation_2_filtered_projection_traits_3
|
class Filtered_projection_traits_3
|
||||||
: public Triangulation_2_projection_traits_base_3<Filtered_kernel>
|
: public Projection_traits_base_3<Filtered_kernel>
|
||||||
{
|
{
|
||||||
typedef Filtered_kernel K;
|
typedef Filtered_kernel K;
|
||||||
typedef Triangulation_2_filtered_projection_traits_3<K> Self;
|
typedef Filtered_projection_traits_3<K> Self;
|
||||||
typedef Triangulation_2_projection_traits_base_3<K> Base;
|
typedef Projection_traits_base_3<K> Base;
|
||||||
|
|
||||||
typedef typename K::Exact_kernel Exact_kernel;
|
typedef typename K::Exact_kernel Exact_kernel;
|
||||||
typedef typename K::Approximate_kernel Approximate_kernel;
|
typedef typename K::Approximate_kernel Approximate_kernel;
|
||||||
|
|
@ -36,11 +33,11 @@ class Triangulation_2_filtered_projection_traits_3
|
||||||
typedef typename K::C2F C2F;
|
typedef typename K::C2F C2F;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
typedef Triangulation_2_projection_traits_base_3<Exact_kernel> Exact_traits;
|
typedef Projection_traits_base_3<Exact_kernel> Exact_traits;
|
||||||
typedef Triangulation_2_projection_traits_base_3<Approximate_kernel> Filtering_traits;
|
typedef Projection_traits_base_3<Approximate_kernel> Filtering_traits;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit Triangulation_2_filtered_projection_traits_3(const typename K::Vector_3& n)
|
explicit Filtered_projection_traits_3(const typename K::Vector_3& n)
|
||||||
: Base(n)
|
: Base(n)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -73,9 +70,9 @@ public:
|
||||||
CGAL_TRIANGULATION_2_PROJ_TRAITS_FILTER_PRED(Compare_y_2,
|
CGAL_TRIANGULATION_2_PROJ_TRAITS_FILTER_PRED(Compare_y_2,
|
||||||
compare_y_2_object,
|
compare_y_2_object,
|
||||||
base2)
|
base2)
|
||||||
}; // end class Triangulation_2_projection_traits_base_3<Filtered_kernel>
|
}; // end class Projection_traits_base_3<Filtered_kernel>
|
||||||
|
|
||||||
} // end namespace CGAL
|
} // end namespace CGAL
|
||||||
|
|
||||||
|
|
||||||
#endif // CGAL_INTERNAL_TRIANGULATION_2_FILTERED_PROJECTION_TRAITS_3_H
|
#endif // CGAL_INTERNAL_FILTERED_PROJECTION_TRAITS_3_H
|
||||||
|
|
@ -833,6 +833,8 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// This is for projection traits along a specific canonical plane (xy, yz, xz)
|
||||||
|
// The generic class for an arbitrary normal is CGAL::Projection_traits_3<K> (not in `internal`)
|
||||||
template < class R, int dim >
|
template < class R, int dim >
|
||||||
class Projection_traits_3 {
|
class Projection_traits_3 {
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -5,17 +5,14 @@
|
||||||
//
|
//
|
||||||
// $URL$
|
// $URL$
|
||||||
// $Id$
|
// $Id$
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial
|
// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// Author(s) : Laurent Rineau
|
// Author(s) : Laurent Rineau
|
||||||
|
|
||||||
|
|
||||||
#ifndef CGAL_INTERNAL_TRIANGULATION_2_PROJECTION_TRAITS_BASE_3_H
|
#ifndef CGAL_INTERNAL_PROJECTION_TRAITS_BASE_3_H
|
||||||
#define CGAL_INTERNAL_TRIANGULATION_2_PROJECTION_TRAITS_BASE_3_H
|
#define CGAL_INTERNAL_PROJECTION_TRAITS_BASE_3_H
|
||||||
|
|
||||||
#include <CGAL/license/Triangulation_2.h>
|
|
||||||
|
|
||||||
|
|
||||||
#include <CGAL/Profile_timer.h>
|
#include <CGAL/Profile_timer.h>
|
||||||
#include <CGAL/intersections.h>
|
#include <CGAL/intersections.h>
|
||||||
|
|
@ -379,9 +376,9 @@ public:
|
||||||
|
|
||||||
|
|
||||||
template < class Kernel >
|
template < class Kernel >
|
||||||
class Triangulation_2_projection_traits_base_3
|
class Projection_traits_base_3
|
||||||
{
|
{
|
||||||
typedef Triangulation_2_projection_traits_base_3<Kernel> Self;
|
typedef Projection_traits_base_3<Kernel> Self;
|
||||||
|
|
||||||
typename Kernel::Vector_3 n, b1, b2;
|
typename Kernel::Vector_3 n, b1, b2;
|
||||||
|
|
||||||
|
|
@ -389,7 +386,7 @@ public:
|
||||||
typedef typename Kernel::Vector_3 Vector_3;
|
typedef typename Kernel::Vector_3 Vector_3;
|
||||||
|
|
||||||
|
|
||||||
explicit Triangulation_2_projection_traits_base_3(const Vector_3& n_)
|
explicit Projection_traits_base_3(const Vector_3& n_)
|
||||||
: n(n_)
|
: n(n_)
|
||||||
{
|
{
|
||||||
typedef typename Kernel::FT FT;
|
typedef typename Kernel::FT FT;
|
||||||
|
|
@ -589,8 +586,8 @@ public:
|
||||||
return Projection_to_plan(plane_point, *this);
|
return Projection_to_plan(plane_point, *this);
|
||||||
}
|
}
|
||||||
|
|
||||||
}; // end class Triangulation_2_projection_traits_base_3<Kernel>
|
}; // end class Projection_traits_base_3<Kernel>
|
||||||
|
|
||||||
} // end namespace CGAL
|
} // end namespace CGAL
|
||||||
|
|
||||||
#endif // CGAL_INTERNAL_TRIANGULATION_2_PROJECTION_TRAITS_BASE_3_H
|
#endif // CGAL_INTERNAL_PROJECTION_TRAITS_BASE_3_H
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
// Copyright (c) 2009 GeometryFactory (France)
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// This file is part of CGAL (www.cgal.org).
|
||||||
|
//
|
||||||
|
// $URL$
|
||||||
|
// $Id$
|
||||||
|
// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Author(s) : Laurent Rineau
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef CGAL_PROJECTION_TRAITS_3_H
|
||||||
|
#define CGAL_PROJECTION_TRAITS_3_H
|
||||||
|
|
||||||
|
#include <CGAL/Kernel_23/internal/Filtered_projection_traits_3.h>
|
||||||
|
|
||||||
|
namespace CGAL {
|
||||||
|
|
||||||
|
// This declaration is needed to break the cyclic dependency.
|
||||||
|
template < class Filtered_kernel >
|
||||||
|
class Filtered_projection_traits_3;
|
||||||
|
|
||||||
|
template <class Kernel, bool Has_filtered_predicates=Kernel::Has_filtered_predicates>
|
||||||
|
class Projection_traits_3
|
||||||
|
: public Projection_traits_base_3<Kernel>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit Projection_traits_3(const typename Kernel::Vector_3& n_)
|
||||||
|
: Projection_traits_base_3<Kernel>(n_)
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class Kernel>
|
||||||
|
class Projection_traits_3<Kernel, true>
|
||||||
|
: public Filtered_projection_traits_3<Kernel>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit Projection_traits_3(const typename Kernel::Vector_3& n_)
|
||||||
|
: Filtered_projection_traits_3<Kernel>(n_)
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace CGAL
|
||||||
|
|
||||||
|
#endif // CGAL_PROJECTION_TRAITS_3_H
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||||
|
|
||||||
#include <CGAL/Triangulation_2_projection_traits_3.h>
|
#include <CGAL/Projection_traits_3.h>
|
||||||
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
||||||
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
||||||
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
||||||
|
|
@ -178,7 +178,7 @@ struct Face_info {
|
||||||
bool is_process;
|
bool is_process;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef CGAL::Triangulation_2_projection_traits_3<CGAL::Exact_predicates_inexact_constructions_kernel> P_traits;
|
typedef CGAL::Projection_traits_3<CGAL::Exact_predicates_inexact_constructions_kernel> P_traits;
|
||||||
typedef CGAL::Triangulation_vertex_base_with_info_2<Vertex_info, P_traits> Vb;
|
typedef CGAL::Triangulation_vertex_base_with_info_2<Vertex_info, P_traits> Vb;
|
||||||
|
|
||||||
typedef CGAL::Triangulation_face_base_with_info_2<Face_info,P_traits> Fb1;
|
typedef CGAL::Triangulation_face_base_with_info_2<Face_info,P_traits> Fb1;
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
#include <QGLBuffer>
|
#include <QGLBuffer>
|
||||||
#include <QOpenGLShaderProgram>
|
#include <QOpenGLShaderProgram>
|
||||||
|
|
||||||
#include <CGAL/Triangulation_2_projection_traits_3.h>
|
#include <CGAL/Projection_traits_3.h>
|
||||||
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
||||||
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
||||||
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
||||||
|
|
@ -211,7 +211,7 @@ class Basic_viewer : public CGAL::QGLViewer, public QOpenGLFunctions
|
||||||
bool is_process;
|
bool is_process;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef CGAL::Triangulation_2_projection_traits_3<CGAL::Exact_predicates_inexact_constructions_kernel> P_traits;
|
typedef CGAL::Projection_traits_3<CGAL::Exact_predicates_inexact_constructions_kernel> P_traits;
|
||||||
typedef CGAL::Triangulation_vertex_base_with_info_2<Vertex_info, P_traits> Vb;
|
typedef CGAL::Triangulation_vertex_base_with_info_2<Vertex_info, P_traits> Vb;
|
||||||
|
|
||||||
typedef CGAL::Triangulation_face_base_with_info_2<Face_info, P_traits> Fb1;
|
typedef CGAL::Triangulation_face_base_with_info_2<Face_info, P_traits> Fb1;
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,12 @@
|
||||||
#include <CGAL/Delaunay_mesher_2.h>
|
#include <CGAL/Delaunay_mesher_2.h>
|
||||||
#include <CGAL/Delaunay_mesh_face_base_2.h>
|
#include <CGAL/Delaunay_mesh_face_base_2.h>
|
||||||
#include <CGAL/Delaunay_mesh_size_criteria_2.h>
|
#include <CGAL/Delaunay_mesh_size_criteria_2.h>
|
||||||
#include <CGAL/Triangulation_2_projection_traits_3.h>
|
#include <CGAL/Projection_traits_3.h>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
typedef CGAL::Exact_predicates_inexact_constructions_kernel K1;
|
typedef CGAL::Exact_predicates_inexact_constructions_kernel K1;
|
||||||
typedef CGAL::Triangulation_2_projection_traits_3<K1> K;
|
typedef CGAL::Projection_traits_3<K1> K;
|
||||||
typedef CGAL::Triangulation_vertex_base_2<K> Vb;
|
typedef CGAL::Triangulation_vertex_base_2<K> Vb;
|
||||||
typedef CGAL::Delaunay_mesh_face_base_2<K> Fb;
|
typedef CGAL::Delaunay_mesh_face_base_2<K> Fb;
|
||||||
typedef CGAL::Triangulation_data_structure_2<Vb, Fb> Tds;
|
typedef CGAL::Triangulation_data_structure_2<Vb, Fb> Tds;
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
#include <CGAL/Cartesian_converter.h>
|
#include <CGAL/Cartesian_converter.h>
|
||||||
#include <boost/unordered_map.hpp>
|
#include <boost/unordered_map.hpp>
|
||||||
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
||||||
#include <CGAL/Triangulation_2_projection_traits_3.h>
|
#include <CGAL/Projection_traits_3.h>
|
||||||
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
||||||
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
||||||
#include <CGAL/Kernel/global_functions_3.h>
|
#include <CGAL/Kernel/global_functions_3.h>
|
||||||
|
|
@ -210,8 +210,8 @@ struct Shell_polygons_visitor
|
||||||
}
|
}
|
||||||
|
|
||||||
// cases where a cdt is needed
|
// cases where a cdt is needed
|
||||||
typedef typename Nef_polyhedron::Kernel Kernel;
|
typedef typename Nef_polyhedron::Kernel Kernel;
|
||||||
typedef Triangulation_2_projection_traits_3<Kernel> P_traits;
|
typedef Projection_traits_3<Kernel> P_traits;
|
||||||
typedef Triangulation_vertex_base_with_info_2<std::size_t, P_traits> Vb;
|
typedef Triangulation_vertex_base_with_info_2<std::size_t, P_traits> Vb;
|
||||||
typedef Triangulation_face_base_with_info_2<FaceInfo2,P_traits> Fbb;
|
typedef Triangulation_face_base_with_info_2<FaceInfo2,P_traits> Fbb;
|
||||||
typedef Constrained_triangulation_face_base_2<P_traits,Fbb> Fb;
|
typedef Constrained_triangulation_face_base_2<P_traits,Fbb> Fb;
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
#include <CGAL/Default.h>
|
#include <CGAL/Default.h>
|
||||||
#include <CGAL/boost/graph/Euler_operations.h>
|
#include <CGAL/boost/graph/Euler_operations.h>
|
||||||
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
||||||
#include <CGAL/Triangulation_2_projection_traits_3.h>
|
#include <CGAL/Projection_traits_3.h>
|
||||||
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
||||||
|
|
||||||
#include <boost/container/flat_map.hpp>
|
#include <boost/container/flat_map.hpp>
|
||||||
|
|
@ -387,9 +387,9 @@ private:
|
||||||
typedef Non_manifold_feature_map<TriangleMesh> NM_features_map;
|
typedef Non_manifold_feature_map<TriangleMesh> NM_features_map;
|
||||||
// typedef for the CDT
|
// typedef for the CDT
|
||||||
typedef Intersection_nodes<TriangleMesh, VertexPointMap1, VertexPointMap2,
|
typedef Intersection_nodes<TriangleMesh, VertexPointMap1, VertexPointMap2,
|
||||||
Predicates_on_constructions_needed> INodes;
|
Predicates_on_constructions_needed> INodes;
|
||||||
typedef typename INodes::Exact_kernel EK;
|
typedef typename INodes::Exact_kernel EK;
|
||||||
typedef Triangulation_2_projection_traits_3<EK> CDT_traits;
|
typedef Projection_traits_3<EK> CDT_traits;
|
||||||
typedef Triangulation_vertex_base_with_info_2<Node_id,CDT_traits> Vb;
|
typedef Triangulation_vertex_base_with_info_2<Node_id,CDT_traits> Vb;
|
||||||
typedef Constrained_triangulation_face_base_2<CDT_traits> Fb;
|
typedef Constrained_triangulation_face_base_2<CDT_traits> Fb;
|
||||||
typedef Triangulation_data_structure_2<Vb,Fb> TDS_2;
|
typedef Triangulation_data_structure_2<Vb,Fb> TDS_2;
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
||||||
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
||||||
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
||||||
#include <CGAL/Triangulation_2_projection_traits_3.h>
|
#include <CGAL/Projection_traits_3.h>
|
||||||
#include <queue>
|
#include <queue>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -1374,7 +1374,7 @@ triangulate_hole_polyline_with_cdt(const PointRange& points,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Checking the hole simplicity.
|
// Checking the hole simplicity.
|
||||||
typedef Triangulation_2_projection_traits_3<Traits> P_traits;
|
typedef CGAL::Projection_traits_3<Traits> P_traits;
|
||||||
const P_traits p_traits(avg_normal);
|
const P_traits p_traits(avg_normal);
|
||||||
if (!is_simple_2(P.begin(), P.end() - 1, p_traits)) {
|
if (!is_simple_2(P.begin(), P.end() - 1, p_traits)) {
|
||||||
// std::cerr << "WARNING: simplicity, cdt 2 falls back to the original solution!" << std::endl;
|
// std::cerr << "WARNING: simplicity, cdt 2 falls back to the original solution!" << std::endl;
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
||||||
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
||||||
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
||||||
#include <CGAL/Triangulation_2_projection_traits_3.h>
|
#include <CGAL/Projection_traits_3.h>
|
||||||
#else
|
#else
|
||||||
#include <CGAL/use.h>
|
#include <CGAL/use.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -152,7 +152,7 @@ public:
|
||||||
#ifndef CGAL_TRIANGULATE_FACES_DO_NOT_USE_CDT2
|
#ifndef CGAL_TRIANGULATE_FACES_DO_NOT_USE_CDT2
|
||||||
if (use_cdt)
|
if (use_cdt)
|
||||||
{
|
{
|
||||||
typedef CGAL::Triangulation_2_projection_traits_3<Traits> P_traits;
|
typedef CGAL::Projection_traits_3<Traits> P_traits;
|
||||||
typedef CGAL::Triangulation_vertex_base_with_info_2<halfedge_descriptor,
|
typedef CGAL::Triangulation_vertex_base_with_info_2<halfedge_descriptor,
|
||||||
P_traits> Vb;
|
P_traits> Vb;
|
||||||
typedef CGAL::Triangulation_face_base_with_info_2<Face_info,
|
typedef CGAL::Triangulation_face_base_with_info_2<Face_info,
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,7 @@ struct lcc_priv{
|
||||||
bool is_process;
|
bool is_process;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef CGAL::Triangulation_2_projection_traits_3<CGAL::Exact_predicates_inexact_constructions_kernel> P_traits;
|
typedef CGAL::Projection_traits_3<CGAL::Exact_predicates_inexact_constructions_kernel> P_traits;
|
||||||
typedef CGAL::Triangulation_vertex_base_with_info_2<Vertex_info, P_traits> Vb;
|
typedef CGAL::Triangulation_vertex_base_with_info_2<Vertex_info, P_traits> Vb;
|
||||||
typedef CGAL::Triangulation_face_base_with_info_2<Face_info, P_traits> Fb1;
|
typedef CGAL::Triangulation_face_base_with_info_2<Face_info, P_traits> Fb1;
|
||||||
typedef CGAL::Constrained_triangulation_face_base_2<P_traits, Fb1> Fb;
|
typedef CGAL::Constrained_triangulation_face_base_2<P_traits, Fb1> Fb;
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
#include <CGAL/minkowski_sum_3.h>
|
#include <CGAL/minkowski_sum_3.h>
|
||||||
#include <CGAL/convex_decomposition_3.h>
|
#include <CGAL/convex_decomposition_3.h>
|
||||||
|
|
||||||
#include <CGAL/Triangulation_2_projection_traits_3.h>
|
#include <CGAL/Projection_traits_3.h>
|
||||||
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
||||||
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
||||||
#include <CGAL/boost/graph/convert_nef_polyhedron_to_polygon_mesh.h>
|
#include <CGAL/boost/graph/convert_nef_polyhedron_to_polygon_mesh.h>
|
||||||
|
|
@ -33,7 +33,7 @@ typedef Point_container Pc;
|
||||||
|
|
||||||
typedef Nef_polyhedron::Traits Traits;
|
typedef Nef_polyhedron::Traits Traits;
|
||||||
typedef Nef_polyhedron::Halffacet Facet;
|
typedef Nef_polyhedron::Halffacet Facet;
|
||||||
typedef CGAL::Triangulation_2_projection_traits_3<Traits> P_traits;
|
typedef CGAL::Projection_traits_3<Traits> P_traits;
|
||||||
typedef Nef_polyhedron::Halfedge_const_handle Halfedge_handle;
|
typedef Nef_polyhedron::Halfedge_const_handle Halfedge_handle;
|
||||||
struct Face_info {
|
struct Face_info {
|
||||||
Nef_polyhedron::Halfedge_const_handle e[3];
|
Nef_polyhedron::Halfedge_const_handle e[3];
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
|
||||||
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
#include <CGAL/Triangulation_face_base_with_info_2.h>
|
||||||
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
||||||
#include <CGAL/Triangulation_2_projection_traits_3.h>
|
#include <CGAL/Projection_traits_3.h>
|
||||||
#include <CGAL/Three/Scene_item.h>
|
#include <CGAL/Three/Scene_item.h>
|
||||||
#include <queue>
|
#include <queue>
|
||||||
|
|
||||||
|
|
@ -20,7 +20,7 @@ class FacetTriangulator
|
||||||
typedef typename Kernel::Vector_3 Vector;
|
typedef typename Kernel::Vector_3 Vector;
|
||||||
|
|
||||||
|
|
||||||
typedef CGAL::Triangulation_2_projection_traits_3<Traits> P_traits;
|
typedef CGAL::Projection_traits_3<Traits> P_traits;
|
||||||
|
|
||||||
typedef CGAL::Triangulation_vertex_base_with_info_2<halfedge_descriptor,
|
typedef CGAL::Triangulation_vertex_base_with_info_2<halfedge_descriptor,
|
||||||
P_traits> Vb;
|
P_traits> Vb;
|
||||||
|
|
|
||||||
|
|
@ -487,7 +487,9 @@ See Section \ref Section_2D_Triangulations_Delaunay for an example.
|
||||||
`Projection_traits_xz_3<R>` to
|
`Projection_traits_xz_3<R>` to
|
||||||
deal with projections on the
|
deal with projections on the
|
||||||
`yz` plane and `xz`-plane,
|
`yz` plane and `xz`-plane,
|
||||||
respectively.
|
respectively, as well as the geometric traits class
|
||||||
|
`Projection_traits_3<R>` that deals with projections onto an
|
||||||
|
arbitrary plane defined by its orthogonal vector.
|
||||||
|
|
||||||
\subsection Subsection_2D_Triangulations_Basic_Example Example of a Basic Triangulation
|
\subsection Subsection_2D_Triangulations_Basic_Example Example of a Basic Triangulation
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||||
|
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
||||||
|
#include <CGAL/Projection_traits_3.h>
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
|
||||||
|
typedef CGAL::Projection_traits_3<K> GT;
|
||||||
|
|
||||||
|
typedef CGAL::Exact_predicates_tag Itag;
|
||||||
|
typedef CGAL::Constrained_Delaunay_triangulation_2<GT, CGAL::Default, Itag> CDT;
|
||||||
|
typedef CDT::Point Point;
|
||||||
|
typedef CDT::Edge Edge;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
//4 points on the diagonal plane of a cube
|
||||||
|
std::vector<Point> ps(4);
|
||||||
|
ps[0] = Point(0,0,0);
|
||||||
|
ps[1] = Point(3,1,-1);
|
||||||
|
ps[2] = Point(-1, 3, -3);
|
||||||
|
ps[3] = Point(1,0.5,-0.5);
|
||||||
|
|
||||||
|
GT gt{ { 0, 1, 1} };
|
||||||
|
CDT cdt(gt);
|
||||||
|
for(int i = 0; i< 4; ++i)
|
||||||
|
cdt.insert(ps[i]);
|
||||||
|
|
||||||
|
for(int i = 1; i < 3; ++i)
|
||||||
|
cdt.insert_constraint(ps[i], ps[i+1]);
|
||||||
|
|
||||||
|
for(CDT::Face_handle f : cdt.all_face_handles())
|
||||||
|
{
|
||||||
|
for(int i=0; i<3; ++i)
|
||||||
|
std::cout << f->vertex(i)->point() << " ";
|
||||||
|
std::cout << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -10,43 +10,46 @@
|
||||||
//
|
//
|
||||||
// Author(s) : Laurent Rineau
|
// Author(s) : Laurent Rineau
|
||||||
|
|
||||||
|
|
||||||
#ifndef CGAL_TRIANGULATION_2_PROJECTION_TRAITS_3_H
|
#ifndef CGAL_TRIANGULATION_2_PROJECTION_TRAITS_3_H
|
||||||
#define CGAL_TRIANGULATION_2_PROJECTION_TRAITS_3_H
|
#define CGAL_TRIANGULATION_2_PROJECTION_TRAITS_3_H
|
||||||
|
|
||||||
#include <CGAL/license/Triangulation_2.h>
|
#include <CGAL/license/Triangulation_2.h>
|
||||||
|
|
||||||
|
#define CGAL_DEPRECATED_HEADER "<CGAL/Triangulation_2_projection_traits_3.h>"
|
||||||
|
#define CGAL_REPLACEMENT_HEADER "<CGAL/Projection_traits_3.h>"
|
||||||
|
#include <CGAL/Installation/internal/deprecation_warning.h>
|
||||||
|
|
||||||
#include <CGAL/Triangulation_2/internal/Triangulation_2_filtered_projection_traits_3.h>
|
#ifndef CGAL_NO_DEPRECATED_CODE
|
||||||
|
|
||||||
namespace CGAL{
|
#include <CGAL/Kernel_23/internal/Filtered_projection_traits_3.h>
|
||||||
|
|
||||||
|
namespace CGAL {
|
||||||
|
|
||||||
// This declaration is needed to break the cyclic dependency.
|
|
||||||
template < class Filtered_kernel >
|
template < class Filtered_kernel >
|
||||||
class Triangulation_2_filtered_projection_traits_3;
|
class Filtered_projection_traits_3;
|
||||||
|
|
||||||
template <class Kernel, bool Has_filtered_predicates=Kernel::Has_filtered_predicates>
|
template <class Kernel, bool Has_filtered_predicates = Kernel::Has_filtered_predicates>
|
||||||
class Triangulation_2_projection_traits_3
|
class Triangulation_2_projection_traits_3
|
||||||
: public Triangulation_2_projection_traits_base_3<Kernel>
|
: public Projection_traits_base_3<Kernel>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit
|
explicit Triangulation_2_projection_traits_3(const typename Kernel::Vector_3& n_)
|
||||||
Triangulation_2_projection_traits_3(const typename Kernel::Vector_3& n_)
|
: Projection_traits_base_3<Kernel>(n_)
|
||||||
: Triangulation_2_projection_traits_base_3<Kernel>(n_)
|
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class Kernel>
|
template <class Kernel>
|
||||||
class Triangulation_2_projection_traits_3<Kernel, true>
|
class Triangulation_2_projection_traits_3<Kernel, true>
|
||||||
: public Triangulation_2_filtered_projection_traits_3<Kernel>
|
: public Filtered_projection_traits_3<Kernel>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit
|
explicit Triangulation_2_projection_traits_3(const typename Kernel::Vector_3& n_)
|
||||||
Triangulation_2_projection_traits_3(const typename Kernel::Vector_3& n_)
|
: Filtered_projection_traits_3<Kernel>(n_)
|
||||||
: Triangulation_2_filtered_projection_traits_3<Kernel>(n_)
|
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end namespace CGAL
|
} // end namespace CGAL
|
||||||
|
|
||||||
|
#endif //CGAL_NO_DEPRECATED_CODE
|
||||||
|
|
||||||
#endif // CGAL_TRIANGULATION_2_PROJECTION_TRAITS_3_H
|
#endif // CGAL_TRIANGULATION_2_PROJECTION_TRAITS_3_H
|
||||||
|
|
|
||||||
|
|
@ -29,5 +29,6 @@ if(BUILD_TESTING)
|
||||||
execution___of__test_regular_triangulation_2
|
execution___of__test_regular_triangulation_2
|
||||||
execution___of__test_const_del_triangulation_2
|
execution___of__test_const_del_triangulation_2
|
||||||
execution___of__test_regular_hierarchy_2
|
execution___of__test_regular_hierarchy_2
|
||||||
|
execution___of__test_deprecated_projection_traits
|
||||||
PROPERTIES RESOURCE_LOCK Triangulation_2_Tests_IO)
|
PROPERTIES RESOURCE_LOCK Triangulation_2_Tests_IO)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,15 @@
|
||||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||||
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
|
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
|
||||||
|
|
||||||
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
||||||
#include <CGAL/Triangulation_2_projection_traits_3.h>
|
#include <CGAL/Projection_traits_3.h>
|
||||||
|
|
||||||
|
#include <CGAL/Installation/internal/disable_deprecation_warnings_and_errors.h>
|
||||||
#include <CGAL/Triangulation_2_projection_traits_3.h>
|
#include <CGAL/Triangulation_2_projection_traits_3.h>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
|
|
||||||
typedef const double vec[3];
|
typedef const double vec[3];
|
||||||
const vec input[10] =
|
const vec input[10] =
|
||||||
{ { -0.37503900000000001, 0.5, 0.47710999999999998 },
|
{ { -0.37503900000000001, 0.5, 0.47710999999999998 },
|
||||||
|
|
@ -128,20 +130,10 @@ int main()
|
||||||
typedef CGAL::Exact_predicates_inexact_constructions_kernel Epick;
|
typedef CGAL::Exact_predicates_inexact_constructions_kernel Epick;
|
||||||
|
|
||||||
bool ok = true;
|
bool ok = true;
|
||||||
ok = ok &&
|
ok = ok && test<CGAL::Epick, CGAL::Projection_traits_3<Epick> >("CDT_2 in a 3D plane, with Epick");
|
||||||
test<CGAL::Epick,
|
ok = ok && test<CGAL::Epeck, CGAL::Projection_traits_3<Epeck> >("CDT_2 in a 3D plane, with Epeck");
|
||||||
CGAL::Triangulation_2_projection_traits_3<Epick> >
|
ok = ok && test_segment_intersections<CGAL::Epick, CGAL::Triangulation_2_projection_traits_3<Epick> >("CDT_2 traits intersection with Epick");
|
||||||
("CDT_2 in a 3D plane, with Epick");
|
ok = ok && test_segment_intersections<CGAL::Epeck, CGAL::Triangulation_2_projection_traits_3<Epeck> >("CDT_2 traits intersection with Epeck");
|
||||||
ok = ok &&
|
|
||||||
test<CGAL::Epeck,
|
|
||||||
CGAL::Triangulation_2_projection_traits_3<Epeck> >
|
|
||||||
("CDT_2 in a 3D plane, with Epeck");
|
|
||||||
ok = ok && test_segment_intersections<CGAL::Epick,
|
|
||||||
CGAL::Triangulation_2_projection_traits_3<Epick> >
|
|
||||||
("CDT_2 traits intersection with Epick");
|
|
||||||
ok = ok && test_segment_intersections<CGAL::Epeck,
|
|
||||||
CGAL::Triangulation_2_projection_traits_3<Epeck> >
|
|
||||||
("CDT_2 traits intersection with Epeck");
|
|
||||||
|
|
||||||
return ok ? 0 : 1;
|
return ok ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
#include <CGAL/Installation/internal/disable_deprecation_warnings_and_errors.h>
|
||||||
|
|
||||||
|
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||||
|
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
|
||||||
|
#include <CGAL/Triangulation_2_projection_traits_3.h>
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
|
||||||
|
typedef CGAL::Triangulation_2_projection_traits_3<K> GT;
|
||||||
|
|
||||||
|
typedef CGAL::Exact_predicates_tag Itag;
|
||||||
|
typedef CGAL::Constrained_Delaunay_triangulation_2<GT, CGAL::Default, Itag> CDT;
|
||||||
|
typedef CDT::Point Point;
|
||||||
|
typedef CDT::Edge Edge;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
//4 points on the diagonal plane of a cube
|
||||||
|
std::vector<Point> ps(4);
|
||||||
|
ps[0] = Point(0,0,0);
|
||||||
|
ps[1] = Point(3,1,-1);
|
||||||
|
ps[2] = Point(-1, 3, -3);
|
||||||
|
ps[3] = Point(1,0.5,-0.5);
|
||||||
|
|
||||||
|
GT gt{ { 0, 1, 1} };
|
||||||
|
CDT cdt(gt);
|
||||||
|
for(int i = 0; i< 4; ++i)
|
||||||
|
cdt.insert(ps[i]);
|
||||||
|
|
||||||
|
for(int i = 1; i < 3; ++i)
|
||||||
|
cdt.insert_constraint(ps[i], ps[i+1]);
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue