CGALIndexedPolyhedron.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Typedefs
25  IndexedPolyhedron
26 
27 Description
28  CGAL data structures used for triSurface handling
29 
30  Define CGAL_INEXACT to use Exact_predicates_inexact_constructions kernel
31  otherwise the more robust but much less efficient
32  Exact_predicates_exact_constructions will be used.
33 
34 \*---------------------------------------------------------------------------*/
35 
36 #ifndef IndexedPolyhedron_H
37 #define IndexedPolyhedron_H
38 
39 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
40 
41 // Include uint.H before CGAL headers to define __STDC_LIMIT_MACROS
42 #include "uint.H"
43 
44 #include "CGAL3DKernel.H"
45 #include <CGAL/Polyhedron_3.h>
46 #include <CGAL/Nef_polyhedron_3.h>
47 
48 #include "label.H"
49 
50 
51 typedef CGAL::Point_3<K> Point;
52 typedef CGAL::Segment_3<K> Segment;
53 typedef CGAL::Direction_3<K> Direction;
54 typedef CGAL::Plane_3<K> Plane;
55 typedef CGAL::Triangle_3<K> Triangle;
56 
57 // Define new class with color and define the polyhedron types
58 template<class Refs>
60 :
61  public CGAL::HalfedgeDS_face_base<Refs>
62 {
65 };
66 struct My_items
67 :
68  public CGAL::Polyhedron_items_3
69 {
70  template<class Refs, class Traits>
71  struct Face_wrapper
72  {
74  };
75 };
76 
77 
78 //typedef CGAL::Polyhedron_3<K> Polyhedron;
79 typedef CGAL::Polyhedron_3<K, My_items> Polyhedron;
80 
88 typedef Polyhedron::Halfedge_around_facet_const_circulator HFCC;
89 typedef Polyhedron::Vertex_const_iterator VCI;
90 
91 typedef CGAL::Nef_polyhedron_3<K> Nef_polyhedron;
92 
93 
94 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
95 
96 #endif
97 
98 // ************************************************************************* //
HalfedgeDS
Polyhedron::HalfedgeDS HalfedgeDS
Definition: CGALIndexedPolyhedron.H:81
VCI
Polyhedron::Vertex_const_iterator VCI
Definition: CGALIndexedPolyhedron.H:89
Triangle
CGAL::Triangle_3< K > Triangle
Definition: CGALIndexedPolyhedron.H:55
IndexedFace
Definition: CGALIndexedPolyhedron.H:59
My_items::Face_wrapper::Face
IndexedFace< Refs > Face
Definition: CGALIndexedPolyhedron.H:73
Segment
CGAL::Segment_3< K > Segment
Definition: CGALIndexedPolyhedron.H:52
Plane
CGAL::Plane_3< K > Plane
Definition: CGALIndexedPolyhedron.H:54
IndexedFace::index
Foam::label index
Definition: CGALIndexedPolyhedron.H:63
My_items
Definition: CGALIndexedPolyhedron.H:66
CGAL3DKernel.H
HFCC
Polyhedron::Halfedge_around_facet_const_circulator HFCC
Definition: CGALIndexedPolyhedron.H:88
Foam::label
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
Vertex_iterator
Polyhedron::Vertex_iterator Vertex_iterator
Definition: CGALIndexedPolyhedron.H:84
Halfedge_handle
Polyhedron::Halfedge_handle Halfedge_handle
Definition: CGALIndexedPolyhedron.H:85
Vertex
Polyhedron::Vertex Vertex
Definition: CGALIndexedPolyhedron.H:83
uint.H
System uinteger.
label.H
Polyhedron
CGAL::Polyhedron_3< K, My_items > Polyhedron
Definition: CGALIndexedPolyhedron.H:79
Point
CGAL::Point_3< K > Point
Definition: CGALIndexedPolyhedron.H:51
IndexedFace::region
Foam::label region
Definition: CGALIndexedPolyhedron.H:64
Direction
CGAL::Direction_3< K > Direction
Definition: CGALIndexedPolyhedron.H:53
Nef_polyhedron
CGAL::Nef_polyhedron_3< K > Nef_polyhedron
Definition: CGALIndexedPolyhedron.H:91
Edge_iterator
Polyhedron::Edge_iterator Edge_iterator
Definition: CGALIndexedPolyhedron.H:82
Facet_iterator
Polyhedron::Facet_iterator Facet_iterator
Definition: CGALIndexedPolyhedron.H:87
My_items::Face_wrapper
Definition: CGALIndexedPolyhedron.H:71