1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
-- File: LocOpe_SplitShape.cdl
-- Created: Tue Jul 11 16:58:44 1995
-- Author: Jacques GOUSSARD
-- <jag@bravox>
---Copyright: Matra Datavision 1995
class SplitShape from LocOpe
---Purpose: Provides a tool to cut :
-- - edges with a vertices,
-- - faces with wires,
-- and rebuilds the shape containing the edges and
-- the faces.
uses Vertex from TopoDS,
Edge from TopoDS,
Wire from TopoDS,
Face from TopoDS,
Shape from TopoDS,
ListOfShape from TopTools,
MapOfShape from TopTools,
DataMapOfShapeListOfShape from TopTools
raises NotDone from StdFail,
ConstructionError from Standard,
NoSuchObject from Standard
is
Create
---Purpose: Empty constructor.
returns SplitShape from LocOpe;
---C++: inline
Create(S: Shape from TopoDS)
---Purpose: Creates the process with the shape <S>.
returns SplitShape from LocOpe;
---C++: inline
Init(me: in out; S: Shape from TopoDS)
---Purpose: Initializes the process on the shape <S>.
is static;
CanSplit(me; E: Edge from TopoDS)
---Purpose: Tests if it is possible to split the edge <E>.
returns Boolean from Standard
is static;
Add(me: in out; V: Vertex from TopoDS;
P: Real from Standard;
E: Edge from TopoDS)
---Purpose: Adds the vertex <V> on the edge <E>, at parameter <P>.
raises ConstructionError from Standard
-- The exception ConstructionError is raised if CanSplit
-- returns Standard_False, or if P is not inside the
-- parametric bounds <E>.
is static;
Add(me: in out; W: Wire from TopoDS;
F: Face from TopoDS)
---Purpose: Adds the wire <W> on the face <F>.
raises NoSuchObject from Standard,
-- if <F> does not belong to the original shape.
ConstructionError from Standard
-- for a closed wire, if it is not included in a
-- sub-face of <F>
-- for an open wire, if it does not begin and end on
-- wire(s) of a sub-face of <F>
is static;
Shape(me)
---Purpose: Returns the "original" shape.
returns Shape from TopoDS
---C++: return const&
---C++: inline
is static;
DescendantShapes(me: in out; S: Shape from TopoDS)
---Purpose: Returns the list of descendant shapes of <S>.
returns ListOfShape from TopTools
---C++: return const&
raises NoSuchObject from Standard
is static;
LeftOf(me: in out; W: Wire from TopoDS; F: Face from TopoDS)
---Purpose: Returns the "left" part defined by the wire <W> on
-- the face <F>. The returned list of shape is in
-- fact a list of faces. The face <F> is considered
-- with its topological orientation in the original
-- shape. <W> is considered with its orientation.
returns ListOfShape from TopTools
---C++: return const&
raises NoSuchObject from Standard
-- The exception is raised if the shape is null or does not
-- contain the face.
is static;
--
--
-- -- Private implementation methods
AddOpenWire(me: in out; W: Wire from TopoDS; F: Face from TopoDS)
is static private;
AddClosedWire(me: in out; W: Wire from TopoDS; F: Face from TopoDS)
is static private;
Put(me: in out; S: Shape from TopoDS)
is static private;
Rebuild(me: in out; S: Shape from TopoDS)
returns Boolean from Standard
is static private;
fields
myDone : Boolean from Standard;
myShape : Shape from TopoDS;
myMap : DataMapOfShapeListOfShape from TopTools;
myDblE : MapOfShape from TopTools;
myLeft : ListOfShape from TopTools;
end SplitShape;
|