3 -- Created : Sat 9 Jan 1993
4 -- Author : CKY / Contract Toubro-Larsen ( SIVA )
6 ---Copyright : MATRA-DATAVISION 1993
9 class Loop from IGESSolid inherits IGESEntity
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.
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)
22 HArray1OfIGESEntity from IGESData,
23 HArray1OfInteger from TColStd,
24 HArray1OfHArray1OfInteger from IGESBasic,
25 HArray1OfHArray1OfIGESEntity from IGESBasic
27 raises DimensionMismatch, OutOfRange
31 Create returns mutable Loop;
33 -- Specific Methods pertaining to the class
36 types : HArray1OfInteger;
37 edges : HArray1OfIGESEntity;
38 index : HArray1OfInteger;
39 orient : HArray1OfInteger;
40 nbParameterCurves : HArray1OfInteger;
41 isoparametricFlags : HArray1OfHArray1OfInteger;
42 curves : HArray1OfHArray1OfIGESEntity from
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
50 -- - orient : Orientation flag of the edge
51 -- - nbParameterCurves : the number of parameter space curves
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
60 IsBound (me) returns Boolean;
61 ---Purpose : Tells if a Loop is a Bound (FN 1) else it is free (FN 0)
63 SetBound (me : mutable; bound : Boolean);
64 ---Purpose : Sets or Unset the Bound Status (from Form Number)
67 NbEdges (me) returns Integer;
68 ---Purpose : returns the number of edge tuples
70 EdgeType (me; Index : Integer) returns Integer
72 ---Purpose : returns the type of Index'th edge (0 = Edge, 1 = Vertex)
73 -- raises exception if Index <= 0 or Index > NbEdges()
75 Edge (me; Index : Integer) returns IGESEntity
77 ---Purpose : return the EdgeList or VertexList corresponding to the Index
78 -- raises exception if Index <= 0 or Index > NbEdges()
80 Orientation (me; Index : Integer) returns Boolean
82 ---Purpose : returns the orientation flag corresponding to Index'th edge
83 -- raises exception if Index <= 0 or Index > NbEdges()
85 NbParameterCurves (me; Index : Integer) returns Integer
87 ---Purpose : return the number of parameter space curves associated with
89 -- raises exception if Index <= 0 or Index > NbEdges()
91 IsIsoparametric (me; EdgeIndex, CurveIndex : Integer)
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)
98 ParametricCurve (me; EdgeIndex, CurveIndex : Integer) returns IGESEntity
100 ---Purpose : returns the CurveIndex'th parameter space curve associated with
102 -- raises exception if EdgeIndex <= 0 or EdgeIndex > NbEdges() or
103 -- if CurveIndex <= 0 or CurveIndex > NbParameterCurves(EdgeIndex)
105 ListIndex (me; num : Integer) returns Integer
107 ---Purpose : raises exception If num <= 0 or num > NbEdges()
112 -- Class : IGESSolid_Loop
114 -- Purpose : Declaration of variables specific to the definition
115 -- of the Class Loop.
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.
123 theTypes : HArray1OfInteger;
124 -- array containing the type of the edge
126 theEdges : HArray1OfIGESEntity;
127 -- array of Vertex List or Edge List entity
129 theIndex : HArray1OfInteger;
130 -- array of list index into Vertex or Edge List entity
132 theOrientationFlags : HArray1OfInteger;
133 -- array of orientation flags
135 theNbParameterCurves : HArray1OfInteger;
136 -- no. of underlying parameter space curves
138 theIsoparametricFlags : HArray1OfHArray1OfInteger;
139 -- Isoparametric flags of the space curves
141 theCurves : HArray1OfHArray1OfIGESEntity
143 -- parameter space curves corresponding to the edges