1 -- File: ShapeAnalysis_Shell.cdl
2 -- Created: Wed Jun 3 12:06:44 1998
3 -- Author: data exchange team
4 -- <det@nnov.matra-dtv.fr>
5 ---Copyright: Matra Datavision 1998
8 class Shell from ShapeAnalysis
10 ---Purpose: This class provides operators to analyze edges orientation
16 IndexedMapOfShape from TopTools
21 ---Purpose: Clears data about loaded shells and performed checks
23 LoadShells (me : in out; shape : Shape from TopoDS);
24 ---Purpose: Adds shells contained in the <shape> to the list of loaded shells
26 CheckOrientedShells (me : in out; shape : Shape from TopoDS;
27 alsofree: Boolean = Standard_False;
28 checkinternaledges: Boolean = Standard_False)
30 ---Purpose: Checks if shells fulfill orientation condition, i.e. if each
31 -- edge is, either present once (free edge) or twice (connected
32 -- edge) but with different orientations (FORWARD/REVERSED)
33 -- Edges which do not fulfill these conditions are bad
35 -- If <alsofree> is True free edges are considered.
36 -- Free edges can be queried but are not bad
38 IsLoaded (me; shape : Shape from TopoDS) returns Boolean;
39 ---Purpose: Tells if a shape is loaded (only shells are checked)
41 NbLoaded (me) returns Integer;
42 ---Purpose: Returns the actual number of loaded shapes (i.e. shells)
44 Loaded (me; num : Integer) returns Shape from TopoDS;
45 ---Purpose: Returns a loaded shape specified by its rank number.
46 -- Returns null shape if <num> is out of range
48 HasBadEdges (me) returns Boolean;
49 ---Purpose: Tells if at least one edge is recorded as bad
51 BadEdges (me) returns Compound from TopoDS;
52 ---Purpose: Returns the list of bad edges as a Compound
53 -- It is empty (not null) if no edge are recorded as bad
55 HasFreeEdges (me) returns Boolean;
56 ---Purpose: Tells if at least one edge is recorded as free (not connected)
58 FreeEdges (me) returns Compound from TopoDS;
59 ---Purpose: Returns the list of free (not connected) edges as a Compound
60 -- It is empty (not null) if no edge are recorded as free
62 HasConnectedEdges (me) returns Boolean;
63 ---Purpose: Tells if at least one edge is connected (shared twice or more)
67 myShells: IndexedMapOfShape from TopTools;
68 myBad : IndexedMapOfShape from TopTools;
69 myFree : IndexedMapOfShape from TopTools;
70 myConex : Boolean; -- are there or not