0022627: Change OCCT memory management defaults
[occt.git] / src / IGESToBRep / IGESToBRep_IGESBoundary.cdl
1 -- File:        IGESToBRep_IGESBoundary.cdl
2 -- Created:     Wed Dec 16 16:27:16 1998
3 -- Author:      Roman LYGIN
4 --              <rln@kinox.nnov.matra-dtv.fr>
5 ---Copyright:    Matra Datavision 1998
6
7
8 class IGESBoundary from IGESToBRep inherits TShared from MMgt
9
10     ---Purpose: This class is intended to translate IGES boundary entity
11     --          (142-CurveOnSurface, 141-Boundary or 508-Loop) into the wire.
12     --          Methods Transfer are virtual and are redefined in Advanced
13     --          Data Exchange to optimize the translation and take into
14     --          account advanced parameters.
15
16 uses
17
18     Trsf2d              from gp,
19     Face                from TopoDS,
20     IGESEntity          from IGESData,
21     HArray1OfIGESEntity from IGESData,
22     CurveAndSurface     from IGESToBRep,
23     WireData            from ShapeExtend
24
25 is
26
27     Create returns mutable IGESBoundary from IGESToBRep;
28         ---Purpose: Empty constructor
29
30     Create (CS: CurveAndSurface from IGESToBRep) returns mutable IGESBoundary from IGESToBRep;
31         ---Purpose: Empty constructor
32         
33     Init (me: mutable; CS            : CurveAndSurface from IGESToBRep;
34                        entity        : IGESEntity from IGESData;
35                        face          : Face   from TopoDS;
36                        trans         : Trsf2d from gp;
37                        uFact         : Real;
38                        filepreference: Integer);
39         ---Purpose: Inits the object with parameters common for all
40         --          types of IGES boundaries.
41         --          <CS>: object to be used for retrieving translation parameters
42         --                and sending messages,
43         --          <entity>: boundary entity to be processed,
44         --          <face>, <trans>, <uFact>: as for IGESToBRep_TopoCurve
45         --          <filepreference>: preferred representation (2 or 3) given
46         --                            in the IGES file
47         
48     WireData (me) returns WireData from ShapeExtend;
49         ---Purpose: Returns the resulting wire
50         ---C++: inline
51         
52     WireData3d (me) returns WireData from ShapeExtend;
53         ---Purpose: Returns the wire from 3D curves (edges contain 3D curves
54         --          and may contain pcurves)
55         ---C++: inline
56
57     WireData2d (me) returns WireData from ShapeExtend;
58         ---Purpose: Returns the the wire from 2D curves (edges contain pcurves
59         --          only)
60         ---C++: inline
61         
62     Transfer (me: mutable; okCurve    : in out Boolean;
63                            okCurve3d  : in out Boolean;
64                            okCurve2d  : in out Boolean;
65                            curve3d    : IGESEntity from IGESData;
66                            toreverse3d: Boolean;
67                            curves2d   : HArray1OfIGESEntity from IGESData;
68                            number     : Integer)
69     returns Boolean;
70         ---Purpose: Translates 141 and 142 entities.
71         --          Returns True if the curve has been successfully translated,
72         --          otherwise returns False.
73         --          <okCurve..>: flags that indicate whether corresponding
74         --                       representation has been successfully translated
75         --                       (must be set to True before first call),
76         --          <curve3d>: model space curve for 142 and current model space
77         --                     curve for 141,
78         --          <toreverse3d>: False for 142 and current orientation flag
79         --                         for 141,
80         --          <curves2d>: 1 parameter space curve for 142 or list of
81         --                      them for current model space curves for 141,
82         --          <number>: 1 for 142 and rank number of model space curve for 141.
83                            
84     Transfer (me: mutable; okCurve    : in out Boolean;
85                            okCurve3d  : in out Boolean;
86                            okCurve2d  : in out Boolean;
87                            curve3d    : WireData from ShapeExtend;
88                            curves2d   : HArray1OfIGESEntity from IGESData;
89                            toreverse2d: Boolean;
90                            number     : Integer;
91                            lsewd      : out WireData from ShapeExtend)
92     returns Boolean;
93         ---Purpose: Translates 508 entity.
94         --          Returns True if the curve has been successfully translated,
95         --          otherwise returns False.
96         --          Input object IGESBoundary must be created and initialized
97         --          before.
98         --          <okCurve..>: flags that indicate whether corresponding
99         --                       representation has been successfully translated
100         --                       (must be set to True before first call),
101         --          <curve3d>: result of translation of current edge,
102         --          <curves2d>: list of parameter space curves for edge,
103         --          <toreverse2d>: orientation flag of current edge in respect
104         --                         to its model space curve,
105         --          <number>: rank number of edge,
106         --          <lsewd>: returns the result of translation of current edge.
107         
108     Check (me: mutable; result, checkclosure, okCurve3d, okCurve2d: Boolean) is virtual;
109         ---Purpose: Checks result of translation of IGES boundary entities
110         --          (types 141, 142 or 508).
111         --          Checks consistency of 2D and 3D representations and keeps
112         --          only one if they are inconsistent.
113         --          <result>: result of translation (returned by Transfer),
114         --          <checkclosure>: False for 142 without parent 144 entity,
115         --                          otherwise True,
116         --          <okCurve3d>, <okCurve2d>: those returned by Transfer.
117         ---Remark : Empty method for Open CASCADE and implemented for Advanced
118         --          Data Exchange.
119     ---Level: Internal
120                     
121     Transfer (me: mutable; okCurve    : in out Boolean;
122                            okCurve3d  : in out Boolean;
123                            okCurve2d  : in out Boolean;
124                            icurve3d   : IGESEntity from IGESData;
125                            scurve3d   : WireData from ShapeExtend;
126                            usescurve  : Boolean;
127                            toreverse3d: Boolean;
128                            curves2d   : HArray1OfIGESEntity from IGESData;
129                            toreverse2d: Boolean;
130                            number     : Integer;
131                            lsewd      : out WireData from ShapeExtend)
132     returns Boolean is virtual protected;
133         ---Purpose: Methods called by both Transfer methods.
134         
135     ReverseCurves3d (myclass; sewd: WireData from ShapeExtend) is protected;
136     ReverseCurves2d (myclass; sewd: WireData from ShapeExtend;
137                               face: Face from TopoDS) is protected;
138
139 fields
140
141     myCS            : CurveAndSurface from IGESToBRep is protected;
142     myentity        : IGESEntity from IGESData is protected;
143     mysewd          : WireData from ShapeExtend is protected; -- resulting wire
144     mysewd3d        : WireData from ShapeExtend is protected; -- wire from 3D curves (edges contain 3D curves and may contain pcurves)
145     mysewd2d        : WireData from ShapeExtend is protected; -- wire from 2D curves (edges contain pcurves only)
146     myface          : Face     from TopoDS is protected;
147     mytrsf          : Trsf2d   from gp is protected;
148     myuFact         : Real is protected;
149     myfilepreference: Integer is protected;
150
151 end IGESBoundary;