1 -- File: ShapeFix_Shell.cdl
2 -- Created: Wed Aug 12 10:26:46 1998
3 -- Author: Galina KULIKOVA
4 -- <gka@nnov.matra-dtv.fr>
5 ---Copyright: Matra Datavision 1998
8 class Shell from ShapeFix inherits Root from ShapeFix
10 ---Purpose: Fixing orientation of faces in shell
17 Status from ShapeExtend,
18 BasicMsgRegistrator from ShapeExtend,
20 ProgressIndicator from Message
24 Create returns Shell from ShapeFix;
25 ---Purpose: Empty constructor
27 Create (shape: Shell from TopoDS)
28 returns Shell from ShapeFix;
29 ---Purpose: Initializes by shell.
31 Init (me: mutable; shell: Shell from TopoDS);
32 ---Purpose: Initializes by shell.
35 theProgress : ProgressIndicator from Message = 0) returns Boolean;
36 ---Purpose: Iterates on subshapes and performs fixes
37 -- (for each face calls ShapeFix_Face::Perform and
38 -- then calls FixFaceOrientation). The passed progress
39 -- indicator allows user to consult the current progress
40 -- stage and abort algorithm if needed.
42 FixFaceOrientation (me : mutable; shell : Shell from TopoDS;
43 isAccountMultiConex : Boolean = Standard_True;
44 NonManifold : Boolean = Standard_False ) returns Boolean;
45 ---Purpose: Fixes orientation of faces in shell.
46 -- Changes orientation of face in the shell, if it is oriented opposite
47 -- to neigbouring faces. If it is not possible to orient all faces in the
48 -- shell (like in case of mebious band), this method orients only subset
49 -- of faces. Other faces are stored in Error compound.
51 -- isAccountMultiConex - mode for account cases of multiconnexity.
52 -- If this mode is equal to Standard_True, separate shells will be created
53 -- in the cases of multiconnexity. If this mode is equal to Standard_False,
54 -- one shell will be created without account of multiconnexity.By defautt - Standard_True;
55 -- NonManifold - mode for creation of non-manifold shells.
56 -- If this mode is equal to Standard_True one non-manifold will be created from shell
57 -- contains multishared edges. Else if this mode is equal to Standard_False only
58 -- manifold shells will be created. By default - Standard_False.
60 ---Returns: If resulting shell is ok returns TRUE, else returns FALSE.
61 ---Status : OK - faces in shall were oriented correcty.
62 -- DONE - faces in shell oriented succesfully
63 -- FAIL - faces orientation process has been failed
65 Shell(me : mutable) returns Shell from TopoDS;
66 ---Purpose: Returns fixed shell (or subset of oriented faces).
68 Shape(me : mutable) returns Shape from TopoDS;
69 ---Purpose: In case of multiconnexity returns compound of fixed shells
70 -- else returns one shell..
71 NbShells(me) returns Integer;
72 ---Purpose: Returns Number of obtainrd shells;
74 ErrorFaces(me) returns Compound from TopoDS;
75 ---Purpose: Returns not oriented subset of faces.
77 Status (me; status : Status from ShapeExtend) returns Boolean;
78 ---Purpose: Returns the status of the last Fix.
80 FixFaceTool (me:mutable) returns Face from ShapeFix;
81 ---Purpose: Returns tool for fixing faces.
84 SetMsgRegistrator (me: mutable; msgreg: BasicMsgRegistrator from ShapeExtend) is redefined;
85 ---Purpose: Sets message registrator
87 SetPrecision (me: mutable; preci: Real) is redefined;
88 ---Purpose: Sets basic precision value (also to FixWireTool)
90 SetMinTolerance (me: mutable; mintol: Real) is redefined;
91 ---Purpose: Sets minimal allowed tolerance (also to FixWireTool)
93 SetMaxTolerance (me: mutable; maxtol: Real) is redefined;
94 ---Purpose: Sets maximal allowed tolerance (also to FixWireTool)
96 FixFaceMode (me: mutable) returns Integer;
99 ---Purpose: Returns (modifiable) the mode for applying fixes of
100 -- ShapeFix_Face, by default True.
102 FixOrientationMode (me: mutable) returns Integer;
105 ---Purpose: Returns (modifiable) the mode for applying
106 -- FixFaceOrientation, by default True.
110 myShell : Shell from TopoDS is protected;
111 myErrFaces : Compound from TopoDS is protected;
112 myStatus : Integer is protected;
113 myFixFace : Face from ShapeFix is protected;
114 myFixFaceMode : Integer is protected;
115 myFixOrientationMode : Integer is protected;
116 myNbShells : Integer is protected;