848fa7e3 |
1 | // Copyright (c) 1999-2014 OPEN CASCADE SAS |
2 | // |
3 | // This file is part of Open CASCADE Technology software library. |
4 | // |
5 | // This library is free software; you can redistribute it and/or modify it under |
6 | // the terms of the GNU Lesser General Public License version 2.1 as published |
7 | // by the Free Software Foundation, with special exception defined in the file |
8 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
9 | // distribution for complete text of the license and disclaimer of any warranty. |
10 | // |
11 | // Alternatively, this file may be used under the terms of Open CASCADE |
12 | // commercial license or contractual agreement. |
13 | |
14 | #ifndef _BRepMesh_HeaderFile |
15 | #define _BRepMesh_HeaderFile |
16 | |
17 | #include <gp_Pnt.hxx> |
18 | #include <gp_XYZ.hxx> |
19 | #include <gp_XY.hxx> |
20 | #include <Bnd_B2d.hxx> |
21 | #include <Bnd_Box2d.hxx> |
22 | #include <Standard.hxx> |
23 | #include <NCollection_List.hxx> |
24 | #include <NCollection_Map.hxx> |
25 | #include <NCollection_Vector.hxx> |
26 | #include <NCollection_Handle.hxx> |
27 | #include <NCollection_DataMap.hxx> |
28 | #include <NCollection_IndexedMap.hxx> |
29 | #include <NCollection_IndexedDataMap.hxx> |
30 | #include <NCollection_Array1.hxx> |
31 | #include <NCollection_Sequence.hxx> |
32 | #include <NCollection_CellFilter.hxx> |
33 | #include <NCollection_IncAllocator.hxx> |
34 | #include <NCollection_EBTree.hxx> |
35 | #include <NCollection_UBTreeFiller.hxx> |
36 | #include <BRepMesh_Edge.hxx> |
37 | #include <BRepMesh_Triangle.hxx> |
38 | #include <BRepMesh_PairOfPolygon.hxx> |
39 | #include <BRepMesh_PairOfIndex.hxx> |
40 | #include <BRepMesh_Circle.hxx> |
41 | #include <TopTools_ShapeMapHasher.hxx> |
42 | #include <Handle_Poly_Triangulation.hxx> |
43 | #include <TopoDS_Face.hxx> |
44 | #include <TopoDS_Shape.hxx> |
45 | |
46 | #include <vector> |
47 | |
48 | class BRepMesh_Vertex; |
49 | class TopoDS_Edge; |
50 | class TopoDS_Vertex; |
51 | class Handle_BRepMesh_FaceAttribute; |
52 | class BRepMesh_VertexInspector; |
53 | class BRepMesh_CircleInspector; |
54 | class BRepMesh_Classifier; |
55 | class Poly_Triangulation; |
56 | |
57 | namespace BRepMesh |
58 | { |
59 | //! Structure keeping parameters of segment. |
60 | struct Segment |
61 | { |
62 | gp_XY StartPnt; |
63 | gp_XY EndPnt; |
64 | }; |
65 | |
66 | //! Sequences |
67 | typedef NCollection_Sequence<Bnd_B2d> SequenceOfBndB2d; |
68 | typedef NCollection_Sequence<Standard_Integer> SequenceOfInteger; |
69 | typedef NCollection_Sequence<Standard_Real> SequenceOfReal; |
70 | |
71 | //! Vectors |
72 | typedef NCollection_Vector<BRepMesh_Vertex> VectorOfVertex; |
73 | typedef NCollection_Vector<Standard_Integer> VectorOfInteger; |
74 | typedef NCollection_Vector<BRepMesh_Circle> VectorOfCircle; |
75 | |
76 | //! Trees |
77 | typedef NCollection_EBTree<Standard_Integer, Bnd_Box2d> BndBox2dTree; |
78 | typedef NCollection_UBTreeFiller<Standard_Integer, Bnd_Box2d> BndBox2dTreeFiller; |
79 | |
80 | //! Arrays |
81 | typedef NCollection_Array1<BRepMesh_Vertex> Array1OfVertexOfDelaun; |
82 | typedef NCollection_Array1<Standard_Integer> Array1OfInteger; |
83 | typedef NCollection_Array1<Standard_Real> Array1OfReal; |
84 | typedef NCollection_Array1<Segment> Array1OfSegments; |
85 | |
86 | //! Lists |
87 | typedef NCollection_List<gp_XY> ListOfXY; |
88 | typedef NCollection_List<BRepMesh_Vertex> ListOfVertex; |
89 | typedef NCollection_List<Standard_Integer> ListOfInteger; |
90 | |
91 | //! Maps |
92 | typedef NCollection_Map<Standard_Integer> MapOfInteger; |
93 | typedef NCollection_Map<Handle(Poly_Triangulation)> MapOfTriangulation; |
94 | typedef NCollection_Map<TopoDS_Shape, TopTools_ShapeMapHasher> MapOfShape; |
95 | |
96 | typedef NCollection_DataMap<Standard_Integer, Standard_Integer> MapOfIntegerInteger; |
97 | typedef NCollection_DataMap<TopoDS_Vertex, Standard_Integer, TopTools_ShapeMapHasher> DMapOfVertexInteger; |
98 | typedef NCollection_DataMap<TopoDS_Face, Handle_BRepMesh_FaceAttribute, TopTools_ShapeMapHasher> DMapOfFaceAttribute; |
99 | typedef NCollection_DataMap<TopoDS_Shape, BRepMesh_PairOfPolygon, TopTools_ShapeMapHasher> DMapOfShapePairOfPolygon; |
100 | typedef NCollection_DataMap<Standard_Integer, gp_Pnt> DMapOfIntegerPnt; |
101 | typedef NCollection_DataMap<Standard_Integer, ListOfXY> DMapOfIntegerListOfXY; |
102 | typedef NCollection_DataMap<Standard_Integer, ListOfInteger> DMapOfIntegerListOfInteger; |
103 | typedef NCollection_DataMap<TopoDS_Edge, MapOfTriangulation, TopTools_ShapeMapHasher> DMapOfEdgeListOfTriangulation; |
104 | |
105 | typedef NCollection_IndexedMap<Standard_Integer> IMapOfInteger; |
106 | typedef NCollection_IndexedMap<Standard_Real> IMapOfReal; |
107 | typedef NCollection_IndexedMap<BRepMesh_Triangle> IMapOfElement; |
108 | typedef NCollection_IndexedDataMap<BRepMesh_Edge, BRepMesh_PairOfIndex> IDMapOfLink; |
109 | |
110 | //! CellFilters |
111 | typedef NCollection_CellFilter<BRepMesh_CircleInspector> CircleCellFilter; |
112 | typedef NCollection_CellFilter<BRepMesh_VertexInspector> VertexCellFilter; |
113 | |
114 | //! Handles |
115 | typedef NCollection_Handle<MapOfInteger> HMapOfInteger; |
116 | typedef NCollection_Handle<IMapOfInteger> HIMapOfInteger; |
117 | typedef NCollection_Handle<DMapOfShapePairOfPolygon> HDMapOfShapePairOfPolygon; |
118 | typedef NCollection_Handle<DMapOfIntegerPnt> HDMapOfIntegerPnt; |
119 | typedef NCollection_Handle<BRepMesh_Classifier> HClassifier; |
120 | typedef NCollection_Handle<BndBox2dTree> HBndBox2dTree; |
121 | typedef NCollection_Handle<Array1OfSegments> HArray1OfSegments; |
122 | typedef NCollection_Handle<DMapOfVertexInteger> HDMapOfVertexInteger; |
123 | |
124 | //! Other data structures |
125 | typedef std::pair<HArray1OfSegments, HBndBox2dTree> SegmentsTree; |
126 | typedef NCollection_Array1<SegmentsTree> Array1OfSegmentsTree; |
127 | }; |
128 | |
129 | #endif |