0022627: Change OCCT memory management defaults
[occt.git] / src / IGESSolid / IGESSolid_Loop.cdl
1 --
2 -- File      :  Loop.cdl
3 -- Created   :  Sat 9 Jan 1993
4 -- Author    : CKY / Contract Toubro-Larsen ( SIVA )
5 --
6 ---Copyright : MATRA-DATAVISION  1993
7 --
8
9 class Loop from IGESSolid  inherits IGESEntity
10
11         ---Purpose: defines Loop, Type <508> Form Number <1>
12         --          in package IGESSolid
13         --          A Loop entity specifies a bound of a face. It represents
14         --          a connected collection of face boundaries, seams, and
15         --          poles of a single face.
16         --          
17         --          From IGES-5.3, a Loop can be free with Form Number 0,
18         --          else it is a bound of a face (it is the default)
19
20 uses
21
22         HArray1OfIGESEntity          from IGESData,
23         HArray1OfInteger             from TColStd,
24         HArray1OfHArray1OfInteger    from IGESBasic,
25         HArray1OfHArray1OfIGESEntity from IGESBasic
26
27 raises DimensionMismatch, OutOfRange
28
29 is
30
31         Create returns mutable Loop;
32
33         -- Specific Methods pertaining to the class
34
35         Init (me                 : mutable;
36               types              : HArray1OfInteger;
37               edges              : HArray1OfIGESEntity;
38               index              : HArray1OfInteger;
39               orient             : HArray1OfInteger;
40               nbParameterCurves  : HArray1OfInteger;
41               isoparametricFlags : HArray1OfHArray1OfInteger;
42               curves             : HArray1OfHArray1OfIGESEntity from
43                                    IGESBasic)
44         raises DimensionMismatch;
45         ---Purpose : This method is used to set the fields of the class Loop
46         --       - types              : 0 = Edge; 1 = Vertex
47         --       - edges              : Pointer to the EdgeList or VertexList
48         --       - index              : Index of the edge into the EdgeList
49         --                              VertexList entity
50         --       - orient             : Orientation flag of the edge
51         --       - nbParameterCurves  : the number of parameter space curves
52         --                              for each edge
53         --       - isoparametricFlags : the isoparametric flag of the
54         --                              parameter space curve
55         --       - curves             : the parameter space curves
56         -- raises exception if length of types, edges, index, orient and
57         -- nbParameterCurves do not match or the length of
58         -- isoparametricFlags and curves do not match
59
60         IsBound (me) returns Boolean;
61         ---Purpose : Tells if a Loop is a Bound (FN 1) else it is free (FN 0)
62
63         SetBound (me : mutable; bound : Boolean);
64         ---Purpose : Sets or Unset the Bound Status (from Form Number)
65         --           Default is True
66
67         NbEdges (me) returns Integer;
68         ---Purpose : returns the number of edge tuples
69
70         EdgeType (me; Index : Integer) returns Integer
71         raises OutOfRange;
72         ---Purpose : returns the type of Index'th edge (0 = Edge, 1 = Vertex)
73         -- raises exception if Index <= 0 or Index > NbEdges()
74
75         Edge (me; Index : Integer) returns IGESEntity
76         raises OutOfRange;
77         ---Purpose : return the EdgeList or VertexList corresponding to the Index
78         -- raises exception if Index <= 0 or Index > NbEdges()
79
80         Orientation (me; Index : Integer) returns Boolean
81         raises OutOfRange;
82         ---Purpose : returns the orientation flag corresponding to Index'th edge
83         -- raises exception if Index <= 0 or Index > NbEdges()
84
85         NbParameterCurves (me; Index : Integer) returns Integer
86         raises OutOfRange;
87         ---Purpose : return the number of parameter space curves associated with
88         -- Index'th Edge
89         -- raises exception if Index <= 0 or Index > NbEdges()
90
91         IsIsoparametric (me; EdgeIndex, CurveIndex : Integer)
92             returns Boolean
93         raises OutOfRange;
94         -- returns the EdgeIndex'th edge's CurveIndex'th isoparametric flag
95         -- raises exception if EdgeIndex <= 0 or EdgeIndex > NbEdges() or
96         -- if CurveIndex <= 0 or CurveIndex > NbParameterCurves(EdgeIndex)
97
98         ParametricCurve (me; EdgeIndex, CurveIndex : Integer) returns IGESEntity
99         raises OutOfRange;
100         ---Purpose : returns the CurveIndex'th parameter space curve associated with
101         -- EdgeIndex'th edge
102         -- raises exception if EdgeIndex <= 0 or EdgeIndex > NbEdges() or
103         -- if CurveIndex <= 0 or CurveIndex > NbParameterCurves(EdgeIndex)
104
105         ListIndex (me; num : Integer) returns Integer
106         raises OutOfRange;
107         ---Purpose : raises exception If num <= 0 or num > NbEdges()
108
109 fields
110
111 --
112 -- Class    : IGESSolid_Loop
113 --
114 -- Purpose  : Declaration of variables specific to the definition
115 --            of the Class Loop.
116 --
117 -- Reminder : A Loop instance is defined by :
118 --            either an edge, an orientation, and optional parameter
119 --            curves or (in case of a pole) a vertex and an optional
120 --            parameter space curve.
121 --
122
123         theTypes              : HArray1OfInteger;
124             -- array containing the type of the edge
125
126         theEdges              : HArray1OfIGESEntity;
127             -- array of Vertex List or Edge List entity
128
129         theIndex              : HArray1OfInteger;
130             -- array of list index into Vertex or Edge List entity
131
132         theOrientationFlags   : HArray1OfInteger;
133             -- array of orientation flags
134
135         theNbParameterCurves  : HArray1OfInteger;
136             -- no. of underlying parameter space curves
137
138         theIsoparametricFlags : HArray1OfHArray1OfInteger;
139             -- Isoparametric flags of the space curves
140
141         theCurves             : HArray1OfHArray1OfIGESEntity 
142                                 from IGESBasic;
143             -- parameter space curves corresponding to the edges
144
145 end Loop;