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; |
2caff0b3 |
56 | class BRepMesh_VertexTool; |
848fa7e3 |
57 | |
58 | namespace BRepMesh |
59 | { |
2caff0b3 |
60 | //! Default size for memory block allocated by IncAllocator. |
61 | const size_t MEMORY_BLOCK_SIZE_HUGE = 512 * 1024; |
62 | |
848fa7e3 |
63 | //! Structure keeping parameters of segment. |
64 | struct Segment |
65 | { |
66 | gp_XY StartPnt; |
67 | gp_XY EndPnt; |
68 | }; |
69 | |
70 | //! Sequences |
71 | typedef NCollection_Sequence<Bnd_B2d> SequenceOfBndB2d; |
72 | typedef NCollection_Sequence<Standard_Integer> SequenceOfInteger; |
73 | typedef NCollection_Sequence<Standard_Real> SequenceOfReal; |
74 | |
75 | //! Vectors |
76 | typedef NCollection_Vector<BRepMesh_Vertex> VectorOfVertex; |
77 | typedef NCollection_Vector<Standard_Integer> VectorOfInteger; |
78 | typedef NCollection_Vector<BRepMesh_Circle> VectorOfCircle; |
79 | |
80 | //! Trees |
81 | typedef NCollection_EBTree<Standard_Integer, Bnd_Box2d> BndBox2dTree; |
82 | typedef NCollection_UBTreeFiller<Standard_Integer, Bnd_Box2d> BndBox2dTreeFiller; |
83 | |
84 | //! Arrays |
85 | typedef NCollection_Array1<BRepMesh_Vertex> Array1OfVertexOfDelaun; |
86 | typedef NCollection_Array1<Standard_Integer> Array1OfInteger; |
87 | typedef NCollection_Array1<Standard_Real> Array1OfReal; |
88 | typedef NCollection_Array1<Segment> Array1OfSegments; |
89 | |
90 | //! Lists |
91 | typedef NCollection_List<gp_XY> ListOfXY; |
92 | typedef NCollection_List<BRepMesh_Vertex> ListOfVertex; |
93 | typedef NCollection_List<Standard_Integer> ListOfInteger; |
94 | |
95 | //! Maps |
96 | typedef NCollection_Map<Standard_Integer> MapOfInteger; |
4a913f21 |
97 | typedef NCollection_DataMap<Handle(Poly_Triangulation), Standard_Boolean> DMapOfTriangulationBool; |
848fa7e3 |
98 | typedef NCollection_Map<TopoDS_Shape, TopTools_ShapeMapHasher> MapOfShape; |
99 | |
100 | typedef NCollection_DataMap<Standard_Integer, Standard_Integer> MapOfIntegerInteger; |
101 | typedef NCollection_DataMap<TopoDS_Vertex, Standard_Integer, TopTools_ShapeMapHasher> DMapOfVertexInteger; |
102 | typedef NCollection_DataMap<TopoDS_Face, Handle_BRepMesh_FaceAttribute, TopTools_ShapeMapHasher> DMapOfFaceAttribute; |
103 | typedef NCollection_DataMap<TopoDS_Shape, BRepMesh_PairOfPolygon, TopTools_ShapeMapHasher> DMapOfShapePairOfPolygon; |
104 | typedef NCollection_DataMap<Standard_Integer, gp_Pnt> DMapOfIntegerPnt; |
105 | typedef NCollection_DataMap<Standard_Integer, ListOfXY> DMapOfIntegerListOfXY; |
106 | typedef NCollection_DataMap<Standard_Integer, ListOfInteger> DMapOfIntegerListOfInteger; |
4a913f21 |
107 | typedef NCollection_DataMap<TopoDS_Edge, DMapOfTriangulationBool, TopTools_ShapeMapHasher> DMapOfEdgeListOfTriangulationBool; |
848fa7e3 |
108 | |
109 | typedef NCollection_IndexedMap<Standard_Integer> IMapOfInteger; |
110 | typedef NCollection_IndexedMap<Standard_Real> IMapOfReal; |
111 | typedef NCollection_IndexedMap<BRepMesh_Triangle> IMapOfElement; |
112 | typedef NCollection_IndexedDataMap<BRepMesh_Edge, BRepMesh_PairOfIndex> IDMapOfLink; |
113 | |
114 | //! CellFilters |
115 | typedef NCollection_CellFilter<BRepMesh_CircleInspector> CircleCellFilter; |
116 | typedef NCollection_CellFilter<BRepMesh_VertexInspector> VertexCellFilter; |
117 | |
118 | //! Handles |
2caff0b3 |
119 | typedef NCollection_Handle<VectorOfVertex> HVectorOfVertex; |
848fa7e3 |
120 | typedef NCollection_Handle<MapOfInteger> HMapOfInteger; |
121 | typedef NCollection_Handle<IMapOfInteger> HIMapOfInteger; |
122 | typedef NCollection_Handle<DMapOfShapePairOfPolygon> HDMapOfShapePairOfPolygon; |
123 | typedef NCollection_Handle<DMapOfIntegerPnt> HDMapOfIntegerPnt; |
124 | typedef NCollection_Handle<BRepMesh_Classifier> HClassifier; |
125 | typedef NCollection_Handle<BndBox2dTree> HBndBox2dTree; |
126 | typedef NCollection_Handle<Array1OfSegments> HArray1OfSegments; |
127 | typedef NCollection_Handle<DMapOfVertexInteger> HDMapOfVertexInteger; |
2caff0b3 |
128 | typedef NCollection_Handle<DMapOfIntegerListOfXY> HDMapOfIntegerListOfXY; |
129 | typedef NCollection_Handle<BRepMesh_VertexTool> HVertexTool; |
848fa7e3 |
130 | |
131 | //! Other data structures |
132 | typedef std::pair<HArray1OfSegments, HBndBox2dTree> SegmentsTree; |
133 | typedef NCollection_Array1<SegmentsTree> Array1OfSegmentsTree; |
134 | }; |
135 | |
136 | #endif |