085dcfce7fa5ac3a89042a442f0c75bd529d8edc
[occt.git] / src / BRepMesh / BRepMesh_FastDiscretFace.cdl
1 -- File:        BRepMesh_FastDiscretFace.cdl
2 -- Created:     Tue Oct 28 14:10:54 2008
3 -- Author:      
4 --              <epa@TOSTEX>
5 ---Copyright:    Matra Datavision 2008
6
7 private class FastDiscretFace from BRepMesh inherits TShared from MMgt
8
9         ---Purpose: Algorithm  to mesh  a face  with  respect of  the
10         --          frontier the deflection  and by option the  shared
11         --          components.
12
13
14 uses    Boolean                   from Standard,
15         Integer                   from Standard,
16         Real                      from Standard,
17         Face                      from TopoDS,
18         Edge                      from TopoDS,
19         Vertex                    from TopoDS,
20         Pnt                       from gp,
21         Pnt2d                     from gp,
22         XY                        from gp,
23         HSurface                  from BRepAdaptor,
24         Delaun                    from BRepMesh,
25         DataStructureOfDelaun     from BRepMesh,
26         DataMapOfVertexInteger    from BRepMesh,
27         DataMapOfIntegerListOfXY  from BRepMesh,
28         DataMapOfShapeReal        from TopTools,
29         ListOfVertex              from BRepMesh,
30         ClassifierPtr             from BRepMesh,
31         Triangle                  from BRepMesh,
32         Edge                      from BRepMesh,
33         Vertex                    from BRepMesh,
34         FaceAttribute             from BRepMesh,
35         ListOfInteger             from TColStd,
36         BaseAllocator             from MeshDS,
37         DataMapOfIntegerPnt       from BRepMesh,
38         IndexedMapOfInteger       from TColStd,
39         IndexedMapOfReal          from TColStd,
40         DataMapOfShapePairOfPolygon from  BRepMesh,
41         Triangulation             from Poly,
42         Location                  from TopLoc
43
44
45 is 
46
47         Create (theAngle      : Real    from Standard;
48                 theWithShare  : Boolean from Standard=Standard_True)
49           returns mutable FastDiscretFace from BRepMesh;
50
51
52
53
54         Add  (me       : mutable;
55               theFace     : Face from TopoDS;
56               theAttrib   : FaceAttribute from BRepMesh;
57               theMapDefle : DataMapOfShapeReal from TopTools)
58           is static;
59
60       
61         Add  (me     : mutable;
62               theVert       : Vertex   from TopoDS;
63               theFace       : Face     from TopoDS;
64               theSFace  : HSurface from BRepAdaptor) is private;
65             
66         RestoreStructureFromTriangulation
67                (me: mutable; 
68                 theEdge    : Edge          from TopoDS;
69                 theFace    : Face          from TopoDS;
70                 theSurf    : HSurface      from BRepAdaptor;
71                 theTrigu   : Triangulation from Poly;
72                 theDefEdge : Real          from Standard;
73                 theLoc     : Location      from TopLoc)
74           returns Boolean from Standard is protected;
75         
76  
77         InternalVertices  (me            : mutable;
78                            theCaro       : HSurface            from BRepAdaptor;
79                            theInternalV  : in out ListOfVertex from BRepMesh;
80                            theDefFace    : Real                from Standard;
81                            theClassifier : ClassifierPtr       from BRepMesh)
82           is static private;
83
84
85         Control  (me      : mutable;
86                   theCaro         : HSurface                from BRepAdaptor;
87                   theDefFace      : Real                    from Standard;
88                   theInternalV    : in out ListOfVertex     from BRepMesh;
89                   theBadTriangles : in out ListOfInteger    from TColStd;
90                   theNulTriangles : in out ListOfInteger    from TColStd;
91                   theTrigu        : in out Delaun           from BRepMesh;
92                   theIsFirst      : Boolean                 from Standard)
93           returns Real from Standard is static;
94
95         FindUV (myclass; 
96                 theV            : Vertex                            from TopoDS; 
97                 theXY           : Pnt2d                             from gp;
98                 theIp           : Integer                           from Standard; 
99                 theSFace        : HSurface                          from BRepAdaptor; 
100                 theMinDist      : Real                              from  Standard;
101                 theLocation2dMap: in out DataMapOfIntegerListOfXY   from BRepMesh)
102           returns XY from gp;
103
104         AddInShape (me: mutable;
105                     theFace   : Face     from TopoDS;
106                     theDefFace: Real     from Standard)
107           is static private;
108
109
110 -- Output :
111
112         Triangle   (me;
113                     theIndex : Integer from Standard)
114         ---Purpose: Gives the triangle of <Index>.
115         ---C++: return const &
116           returns Triangle from BRepMesh
117           is static;
118
119         Edge       (me;
120                     theIndex : Integer from Standard)
121         ---Purpose: Gives the edge of index <Index>.
122         ---C++: return const &
123           returns Edge from BRepMesh
124           is static;
125
126
127         Vertex     (me;
128                     theIndex : Integer from Standard)
129           ---Purpose: Gives the vertex of <Index>.
130           ---C++: return const &
131           returns Vertex from BRepMesh
132           is static;
133
134         Pnt        (me;
135                     theIndex : Integer from Standard)
136           ---Purpose: Gives the location3d of the vertex of <Index>.
137           ---C++: return const &
138           returns Pnt from gp
139           is static;
140
141 fields  
142         myAngle         : Real                          from Standard;
143         myWithShare     : Boolean                       from Standard;
144         myVertices      : DataMapOfVertexInteger        from BRepMesh;
145         myInternaledges : DataMapOfShapePairOfPolygon   from BRepMesh;
146         myNbLocat       : Integer                       from Standard;
147         myLocation3d    : DataMapOfIntegerPnt           from BRepMesh;
148         myStructure     : DataStructureOfDelaun         from BRepMesh;
149         myListver       : ListOfVertex                  from BRepMesh;
150         myVemap         : IndexedMapOfInteger           from TColStd;
151         myLocation2d    : DataMapOfIntegerListOfXY      from BRepMesh;
152         myAttrib        : FaceAttribute                 from BRepMesh;
153         myInternalVerticesMode : Boolean                from Standard; --mode to accounting internal vertices 
154         myUParam        : IndexedMapOfReal              from TColStd;
155         myVParam        : IndexedMapOfReal              from TColStd;
156         myAllocator     : BaseAllocator                 from MeshDS;
157  
158 end FastDiscretFace;