0023024: Update headers of OCCT files
[occt.git] / src / BRepLib / BRepLib_FuseEdges.cdl
CommitLineData
b311480e 1-- Created on: 2007-09-10
2-- Created by: Igor FEOKTISTOV
3-- Copyright (c) 2007-2012 OPEN CASCADE SAS
4--
5-- The content of this file is subject to the Open CASCADE Technology Public
6-- License Version 6.5 (the "License"). You may not use the content of this file
7-- except in compliance with the License. Please obtain a copy of the License
8-- at http://www.opencascade.org and read it completely before using this file.
9--
10-- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11-- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12--
13-- The Original Code and all software distributed under the License is
14-- distributed on an "AS IS" basis, without warranty of any kind, and the
15-- Initial Developer hereby disclaims all such warranties, including without
16-- limitation, any warranties of merchantability, fitness for a particular
17-- purpose or non-infringement. Please see the License for the specific terms
18-- and conditions governing the rights and limitations under the License.
19
7fd59977 20
21
22class FuseEdges from BRepLib
23
24 ---Purpose: This class can detect vertices in a face that can
25 -- be considered useless and then perform the fuse of
26 -- the edges and remove the useless vertices. By
27 -- useles vertices, we mean :
28 -- * vertices that have exactly two connex edges
29 -- * the edges connex to the vertex must have
30 -- exactly the same 2 connex faces .
31 -- * The edges connex to the vertex must have the
32 -- same geometric support.
33
34uses
35 Shape from TopoDS,
36 Vertex from TopoDS,
37 Edge from TopoDS,
38 ShapeEnum from TopAbs,
39 MapOfShape from TopTools,
40 ListOfShape from TopTools,
41 DataMapOfIntegerListOfShape from TopTools,
42 DataMapOfIntegerShape from TopTools,
43 DataMapOfShapeShape from TopTools,
44 IndexedDataMapOfShapeListOfShape from TopTools,
45 IndexedMapOfShape from TopTools
46
47raises
48 ConstructionError from Standard,
49 NullObject from Standard
50
51is
52 Create (theShape : Shape from TopoDS;
53 PerformNow : Boolean from Standard = Standard_False)
54 returns FuseEdges from BRepLib
55 raises NullObject from Standard;
56 ---Purpose: Initialise members and build construction of map
57 -- of ancestors.
58
59 AvoidEdges (me : in out; theMapEdg : IndexedMapOfShape from TopTools);
60 ---Purpose: set edges to avoid being fused
61
62 -- Modified by IFV 19.04.07
63 SetConcatBSpl(me : in out; theConcatBSpl : Boolean from Standard = Standard_True);
64 ---Purpose: set mode to enable concatenation G1 BSpline edges in one
65 -- End Modified by IFV 19.04.07
66
67 Edges (me : in out ; theMapLstEdg : in out DataMapOfIntegerListOfShape from TopTools);
68 ---Purpose: returns all the list of edges to be fused
69 -- each list of the map represent a set of connex edges
70 -- that can be fused.
71
72 ResultEdges (me : in out ; theMapEdg : in out DataMapOfIntegerShape from TopTools);
73 ---Purpose: returns all the fused edges. each integer entry in
74 -- the map corresponds to the integer in the
75 -- DataMapOfIntegerListOfShape we get in method
76 -- Edges. That is to say, to the list of edges in
77 -- theMapLstEdg(i) corresponds the resulting edge theMapEdge(i)
78 --
79
80
81 Faces (me: in out; theMapFac : in out DataMapOfShapeShape from TopTools);
82 ---Purpose: returns the map of modified faces.
83
84 Shape (me : in out)
85 returns Shape from TopoDS
86 raises NullObject from Standard;
87 ---Purpose: returns myShape modified with the list of internal
88 -- edges removed from it.
89 ---C++: return &
90
91 NbVertices (me : in out)
92 returns Integer from Standard
93 raises NullObject from Standard;
94 ---Purpose: returns the number of vertices candidate to be removed
95 ---C++: return const
96
97 Perform (me : in out);
98 ---Purpose: Using map of list of connex edges, fuse each list to
99 -- one edge and then update myShape
100
101
102 BuildAncestors (me; S: Shape from TopoDS; TS: ShapeEnum from TopAbs;
103 TA: ShapeEnum from TopAbs; M: in out IndexedDataMapOfShapeListOfShape from TopTools)
104 ---Purpose: build a map of shapes and ancestors, like
105 -- TopExp.MapShapesAndAncestors, but we remove duplicate
106 -- shapes in list of shapes.
107 is private;
108
109 BuildListEdges (me : in out)
110 ---Purpose: Build the all the lists of edges that are to be fused
111 is private;
112
113 BuildListResultEdges (me : in out)
114 ---Purpose: Build result fused edges according to the list
115 -- builtin BuildLisEdges
116 is private;
117
118 BuildListConnexEdge (me : in out; theEdge : Shape from TopoDS; theMapUniq : in out MapOfShape from TopTools;
119 theLstEdg : in out ListOfShape from TopTools)
120 is private;
121
122 NextConnexEdge (me; theVertex : Vertex from TopoDS; theEdge : Shape from TopoDS;
123 theEdgeConnex : in out Shape from TopoDS)
124 returns Boolean from Standard
125 is private;
126
127 SameSupport (me; E1 : Edge from TopoDS; E2 :Edge from TopoDS)
128 returns Boolean from Standard
129 is private;
130
131 UpdatePCurve (me; theOldEdge : Edge from TopoDS;
132 theNewEdge : in out Edge from TopoDS;
133 theLstEdg : ListOfShape from TopTools)
134 returns Boolean from Standard
135 is private;
136
137
138fields
139 myShape : Shape from TopoDS;
140 myShapeDone : Boolean from Standard;
141 myEdgesDone : Boolean from Standard;
142 myResultEdgesDone : Boolean from Standard;
143 myMapVerLstEdg : IndexedDataMapOfShapeListOfShape from TopTools;
144 myMapEdgLstFac : IndexedDataMapOfShapeListOfShape from TopTools;
145 myMapLstEdg : DataMapOfIntegerListOfShape from TopTools;
146 myMapEdg : DataMapOfIntegerShape from TopTools;
147 myMapFaces : DataMapOfShapeShape from TopTools;
148 myNbConnexEdge : Integer from Standard;
149 myAvoidEdg : IndexedMapOfShape from TopTools;
150 -- Modified by IFV 19.04.07
151 myConcatBSpl : Boolean from Standard; -- to enable concatenation of G1 BSpline
152 -- edges
153
154end FuseEdges;