Go to the documentation of this file.
14 #ifndef _SCL_SECURE_NO_WARNINGS
15 #define _SCL_SECURE_NO_WARNINGS
19 #include <OpenMesh/Core/Mesh/PolyMesh_ArrayKernelT.hh>
20 #if !defined(CGAL_USE_OM_POINTS)
21 #include <CGAL/boost/graph/properties_PolyMesh_ArrayKernelT.h>
34 template<
typename T >
50 template<
typename T >
54 typedef OpenMesh::PolyMesh_ArrayKernelT< T >
Mesh;
56 typedef typename Mesh::AttribKernel
Kernel;
57 typedef typename Kernel::Normal
Vector;
58 typedef typename Kernel::Scalar
Scalar;
68 #if defined(CGAL_USE_OM_POINTS)
71 typedef CGAL::Exact_predicates_inexact_constructions_kernel
CGALKernel;
72 typedef CGALKernel::Point_3
Point;
82 return static_cast< Scalar >(p[D]);
93 #if defined(CGAL_USE_OM_POINTS)
94 return m_mesh.calc_face_normal(p1, p2, p3).normalize();
96 CGALVector cga_lresult = CGAL::unit_normal(p1, p2, p3);
97 return Vector(cga_lresult[0], cga_lresult[1], cga_lresult[2]);
103 #if defined(CGAL_USE_OM_POINTS)
104 return m_mesh.calc_face_normal(p1, p2, p3);
106 CGALVector cga_lresult = CGALKernel::Construct_normal_3()(p1, p2, p3);
107 return Vector(cga_lresult[0], cga_lresult[1], cga_lresult[2]);
130 #if defined(CGAL_USE_OM_POINTS)
134 for(
int i = 0; i < v.dimension(); ++i)
135 dotprodloc += v[i] * v[i];
136 return sqrt(dotprodloc);
161 #if defined(CGAL_USE_OM_POINTS)
164 return GeometryTraits::add_pv< Self >(p, v);
173 #if defined(CGAL_USE_OM_POINTS)
176 return GeometryTraits::sub_pv< Self >(p, v);
184 #if defined(CGAL_USE_OM_POINTS)
187 return GeometryTraits::sub_p< Self >(p1, p2);
203 template<
typename T >
211 template<
typename T >
static Vector sub_p(const Point &p1, const Point &p2)
Mesh::AttribKernel Kernel
static Vector scalar_mult(const Vector &v, Scalar s)
static Scalar length(const Vector &v)
static Vector normalize(const Vector &v)
static Vector sub_v(const Vector &v1, const Vector &v2)
Geometry_traits(const Mesh &m)
Vector unit_normal(const Point &p1, const Point &p2, const Point &p3) const
static Scalar get_x(const Point &p)
CGALKernel::Vector_3 CGALVector
Refer to Geometry_traits_documentation_dummy for further documentation on provided types and algorith...
static Vector add_v(const Vector &v1, const Vector &v2)
OpenMesh::PolyMesh_ArrayKernelT< T > Mesh
static const Vector NULL_VECTOR
Initialisation of static member NULL_VECTOR of above OpenMesh specialisation.
CGAL::Exact_predicates_inexact_constructions_kernel CGALKernel
static Scalar dot_product(const Vector &v1, const Vector &v2)
static Point sub_pv(const Point &p, const Vector &v)
A generic definition, that is template specialized for every supported native implementation,...
Interfaces for plugins These interfaces will be used for different plugins.
CGALKernel::Point_3 Point
static Vector cross_product(const Vector &v1, const Vector &v2)
static Scalar length2(const Vector &v)
static Point add_pv(const Point &p, const Vector &v)
Geometry_traits< Mesh, T > Self
static Scalar get(const Point &p)
Deprecated syntax for coordinate access. Use the get_[x|y|z] versions.
static const Point ORIGIN
Initialisation of static member ORIGIN of above OpenMesh specialisation.
Vector normal(const Point &p1, const Point &p2, const Point &p3) const
static Scalar length(const Point &p1, const Point &p2)
static Scalar get_z(const Point &p)
static Scalar get_y(const Point &p)