Integration of OCCT 6.5.0 from SVN
[occt.git] / src / IGESConvGeom / IGESConvGeom_GeomBuilder.cdl
1 -- File:        IGESConvGeom_GeomBuilder.cdl
2 -- Created:     Wed Nov 16 14:16:50 1994
3 -- Author:      Christian CAILLET
4 --              <cky@stylox>
5 ---Copyright:    Matra Datavision 1994
6
7
8 class GeomBuilder  from IGESConvGeom
9
10     ---Purpose : This class provides some useful basic tools to build IGESGeom
11     --           curves, especially :
12     --           define a curve in a plane in 3D space (ex. Circular or Conic
13     --             arc, or Copious Data defined in 2D)
14     --           make a CopiousData from a list of points/vectors
15
16 uses XY from gp, XYZ from gp, Trsf, Ax1, Ax2, Ax3,
17      HSequenceOfXYZ, HArray1OfXY, HArray1OfXYZ,
18      TransformationMatrix, CopiousData
19
20 raises DomainError
21
22 is
23
24     Create returns GeomBuilder;
25     ---Purpose : Creates a GeomBuilder at initial state.
26
27     Clear (me : in out) is static;
28     ---Purpose : Clears list of Points/Vectors and data about Transformation
29
30     AddXY  (me : in out; val : XY  from gp) is static;
31     ---Purpose : Adds a XY (Z=0) to the list of points
32
33     AddXYZ (me : in out; val : XYZ from gp) is static;
34     ---Purpose : Adds a XYZ to the list of points
35
36     AddVec (me : in out; val : XYZ from gp) is static;
37     ---Purpose : Adds a Vector part to the list of points. It will be used
38     --           for CopiousData, datatype=3, only.
39     --           AddXY and AddXYZ consider a null vector part (0,0,0)
40     --           AddVec adds to the last added XY or XYZ
41
42     NbPoints (me) returns Integer  is static;
43     ---Purpose : Returns the count of already recorded points
44
45     Point (me; num : Integer) returns XYZ  is static;
46     ---Purpose : Returns a point given its rank (if added as XY, Z will be 0)
47
48     MakeCopiousData (me; datatype : Integer; polyline : Boolean = Standard_False)
49         returns mutable CopiousData
50     ---Purpose : Makes a CopiousData with the list of recorded Points/Vectors
51     --           according to <datatype>, which must be 1,2 or 3
52     --           If <polyline> is given True, the CopiousData is coded as a
53     --           Polyline, but <datatype> must not be 3
54     --           <datatype> = 1 : Common Z is computed as average of all Z
55     --           <datatype> = 1 or 2 : Vectors are ignored
56         raises DomainError;
57     --           Error if : <datatype> is not 1,2 or 3; or NbPoints is 0
58
59     MakeXY  (me) returns mutable HArray1OfXY  is static;
60     ---Purpose : Returns the list of points as a HArray1OfXY. Z are ignored.
61
62     MakeXYZ (me) returns mutable HArray1OfXYZ  is static;
63     ---Purpose : Returns the list of points as a HArray1OfXYZ
64
65
66     Position (me) returns Trsf from gp  is static;
67     ---Purpose : Returns the Position in which the method EvalXYZ will
68     --           evaluate a XYZ. It can be regarded as defining a local system.
69     --           It is initially set to Identity
70
71     SetPosition (me : in out; pos : Trsf from gp)  is static;
72     ---Purpose : Sets final position from an already defined Trsf
73
74     SetPosition (me : in out; pos : Ax3  from gp)  is static;
75     ---Purpose : Sets final position from an Ax3
76
77     SetPosition (me : in out; pos : Ax2  from gp)  is static;
78     ---Purpose : Sets final position from an Ax2
79
80     SetPosition (me : in out; pos : Ax1  from gp)  is static;
81     ---Purpose : Sets final position from an Ax1
82     --           (this means that origin point and Z-axis are defined, the
83     --           other axes are defined arbitrarily)
84
85     IsIdentity (me) returns Boolean  is static;
86     ---Purpose : Returns True if the Position is Identity
87
88     IsTranslation (me) returns Boolean  is static;
89     ---Purpose : Returns True if the Position is a Translation only
90     --           Remark : Identity and ZOnly will answer True
91
92     IsZOnly (me) returns Boolean  is static;
93     ---Purpose : Returns True if the Position corresponds to a Z-Displacement,
94     --           i.e. is a Translation only, and only on Z
95     --           Remark : Identity will answer True
96
97     EvalXYZ (me; val : XYZ from gp; X,Y,Z : out Real)  is static;
98     ---Purpose : Evaluates a XYZ value in the Position already defined.
99     --           Returns the transformed coordinates.
100     --           For a 2D definition, X,Y will then be used to define a XY and
101     --           Z will be regarded as a Z Displacement (can be ignored)
102
103     MakeTransformation (me; unit : Real = 1)
104         returns mutable TransformationMatrix  is static;
105     ---Purpose : Returns the IGES Transformation which corresponds to the
106     --           Position. Even if it is an Identity : IsIdentity should be
107     --           tested first.
108     --           <unit> is the unit value in which the model is created :
109     --             it is used to convert translation part
110
111 fields
112
113     theXYZ : HSequenceOfXYZ;
114     theVec : HSequenceOfXYZ;
115     thepos : Trsf from gp;
116
117 end GeomBuilder;