MEPP2 Project
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
FEVV::Geometry_traits_for_cgal< MeshT, KernelT > Class Template Reference

Many mesh representations of CGLA, e.g. CGAL::Exact_predicate_inexact_construction_kernel and CGAL::Cartesian<double> have compatible kernels (i.e. kernels exposing the same geometry related traits). Hence their respective Geometry_traits template specializations will define exactly the same code. In order to avoid code replication this Geometry_traits_for_cgal class "factorizes" the code that will be shared by CGAL meshes sharing such a common kernel structure. The various CGAL meshes needing simply inherit from this class like. More...

#include <Geometry_traits_cgal_common.h>

Inheritance diagram for FEVV::Geometry_traits_for_cgal< MeshT, KernelT >:
Inheritance graph
Collaboration diagram for FEVV::Geometry_traits_for_cgal< MeshT, KernelT >:
Collaboration graph

Public Types

typedef Geometry_traits_for_cgal Self
 
typedef MeshT Mesh
 
typedef KernelT Kernel
 
typedef Kernel::Point_3 Point
 
typedef Kernel::Vector_3 Vector
 
typedef Kernel::FT Scalar
 

Public Member Functions

 Geometry_traits_for_cgal (const Mesh &m)
 

Static Public Member Functions

static Scalar get_x (const Point &p)
 
static Scalar get_y (const Point &p)
 
static Scalar get_z (const Point &p)
 
static Vector unit_normal (const Point &p1, const Point &p2, const Point &p3)
 
static Vector normal (const Point &p1, const Point &p2, const Point &p3)
 
static Scalar dot_product (const Vector &v1, const Vector &v2)
 
static Vector cross_product (const Vector &v1, const Vector &v2)
 
static Scalar length2 (const Vector &v)
 
static Scalar length (const Vector &v)
 
static Scalar length (const Point &p1, const Point &p2)
 
static Vector normalize (const Vector &v)
 
static Vector add_v (const Vector &v1, const Vector &v2)
 
static Point add_pv (const Point &p, const Vector &v)
 
static Point sub_pv (const Point &p, const Vector &v)
 
static Vector sub_p (const Point &p1, const Point &p2)
 
static Vector sub_v (const Vector &v1, const Vector &v2)
 
static Vector scalar_mult (const Vector &v, Scalar s)
 

Static Public Attributes

static const Vector NULL_VECTOR = CGAL::NULL_VECTOR
 Initialisation of static member NULL_VECTOR of Geometry_traits_for_cgal class. More...
 
static const Point ORIGIN = CGAL::ORIGIN
 Initialisation of static member ORIGIN of Geometry_traits_for_cgal class. More...
 

Protected Attributes

MeshTm_mesh
 

Detailed Description

template<typename MeshT, typename KernelT>
class FEVV::Geometry_traits_for_cgal< MeshT, KernelT >

Many mesh representations of CGLA, e.g. CGAL::Exact_predicate_inexact_construction_kernel and CGAL::Cartesian<double> have compatible kernels (i.e. kernels exposing the same geometry related traits). Hence their respective Geometry_traits template specializations will define exactly the same code. In order to avoid code replication this Geometry_traits_for_cgal class "factorizes" the code that will be shared by CGAL meshes sharing such a common kernel structure. The various CGAL meshes needing simply inherit from this class like.

Definition at line 44 of file Geometry_traits_cgal_common.h.

Member Typedef Documentation

◆ Kernel

template<typename MeshT , typename KernelT >
typedef KernelT FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::Kernel

Definition at line 49 of file Geometry_traits_cgal_common.h.

◆ Mesh

template<typename MeshT , typename KernelT >
typedef MeshT FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::Mesh

Definition at line 48 of file Geometry_traits_cgal_common.h.

◆ Point

template<typename MeshT , typename KernelT >
typedef Kernel::Point_3 FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::Point

Definition at line 50 of file Geometry_traits_cgal_common.h.

◆ Scalar

template<typename MeshT , typename KernelT >
typedef Kernel::FT FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::Scalar

Definition at line 52 of file Geometry_traits_cgal_common.h.

◆ Self

template<typename MeshT , typename KernelT >
typedef Geometry_traits_for_cgal FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::Self

Definition at line 47 of file Geometry_traits_cgal_common.h.

◆ Vector

template<typename MeshT , typename KernelT >
typedef Kernel::Vector_3 FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::Vector

Definition at line 51 of file Geometry_traits_cgal_common.h.

Constructor & Destructor Documentation

◆ Geometry_traits_for_cgal()

template<typename MeshT , typename KernelT >
FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::Geometry_traits_for_cgal ( const Mesh m)
inline

Definition at line 54 of file Geometry_traits_cgal_common.h.

Member Function Documentation

◆ add_pv()

template<typename MeshT , typename KernelT >
static Point FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::add_pv ( const Point p,
const Vector v 
)
inlinestatic

Definition at line 107 of file Geometry_traits_cgal_common.h.

◆ add_v()

template<typename MeshT , typename KernelT >
static Vector FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::add_v ( const Vector v1,
const Vector v2 
)
inlinestatic

Definition at line 105 of file Geometry_traits_cgal_common.h.

◆ cross_product()

template<typename MeshT , typename KernelT >
static Vector FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::cross_product ( const Vector v1,
const Vector v2 
)
inlinestatic

Definition at line 77 of file Geometry_traits_cgal_common.h.

◆ dot_product()

template<typename MeshT , typename KernelT >
static Scalar FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::dot_product ( const Vector v1,
const Vector v2 
)
inlinestatic

Definition at line 72 of file Geometry_traits_cgal_common.h.

◆ get_x()

template<typename MeshT , typename KernelT >
static Scalar FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::get_x ( const Point p)
inlinestatic

Definition at line 56 of file Geometry_traits_cgal_common.h.

◆ get_y()

template<typename MeshT , typename KernelT >
static Scalar FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::get_y ( const Point p)
inlinestatic

Definition at line 58 of file Geometry_traits_cgal_common.h.

◆ get_z()

template<typename MeshT , typename KernelT >
static Scalar FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::get_z ( const Point p)
inlinestatic

Definition at line 60 of file Geometry_traits_cgal_common.h.

◆ length() [1/2]

template<typename MeshT , typename KernelT >
static Scalar FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::length ( const Point p1,
const Point p2 
)
inlinestatic

Definition at line 86 of file Geometry_traits_cgal_common.h.

◆ length() [2/2]

template<typename MeshT , typename KernelT >
static Scalar FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::length ( const Vector v)
inlinestatic

Definition at line 84 of file Geometry_traits_cgal_common.h.

Here is the caller graph for this function:

◆ length2()

template<typename MeshT , typename KernelT >
static Scalar FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::length2 ( const Vector v)
inlinestatic

Definition at line 82 of file Geometry_traits_cgal_common.h.

Here is the caller graph for this function:

◆ normal()

template<typename MeshT , typename KernelT >
static Vector FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::normal ( const Point p1,
const Point p2,
const Point p3 
)
inlinestatic

Definition at line 67 of file Geometry_traits_cgal_common.h.

◆ normalize()

template<typename MeshT , typename KernelT >
static Vector FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::normalize ( const Vector v)
inlinestatic

Definition at line 92 of file Geometry_traits_cgal_common.h.

◆ scalar_mult()

template<typename MeshT , typename KernelT >
static Vector FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::scalar_mult ( const Vector v,
Scalar  s 
)
inlinestatic

Definition at line 137 of file Geometry_traits_cgal_common.h.

◆ sub_p()

template<typename MeshT , typename KernelT >
static Vector FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::sub_p ( const Point p1,
const Point p2 
)
inlinestatic

Definition at line 133 of file Geometry_traits_cgal_common.h.

◆ sub_pv()

template<typename MeshT , typename KernelT >
static Point FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::sub_pv ( const Point p,
const Vector v 
)
inlinestatic

Definition at line 121 of file Geometry_traits_cgal_common.h.

◆ sub_v()

template<typename MeshT , typename KernelT >
static Vector FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::sub_v ( const Vector v1,
const Vector v2 
)
inlinestatic

Definition at line 135 of file Geometry_traits_cgal_common.h.

◆ unit_normal()

template<typename MeshT , typename KernelT >
static Vector FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::unit_normal ( const Point p1,
const Point p2,
const Point p3 
)
inlinestatic

Definition at line 62 of file Geometry_traits_cgal_common.h.

Member Data Documentation

◆ m_mesh

template<typename MeshT , typename KernelT >
MeshT& FEVV::Geometry_traits_for_cgal< MeshT, KernelT >::m_mesh
protected

Definition at line 143 of file Geometry_traits_cgal_common.h.


The documentation for this class was generated from the following file: