0022627: Change OCCT memory management defaults
[occt.git] / src / TopTrans / TopTrans_CurveTransition.cdl
CommitLineData
7fd59977 1-- File: CurveTransition.cdl
2-- Created: Thu Jan 30 12:10:21 1992
3-- Author: Didier PIFFAULT
4-- <dpf@sdsun1>
5---Copyright: Matra Datavision 1992
6
7
8class CurveTransition from TopTrans
9
10 ---Purpose: This algorithm is used to compute the transition
11 -- of a Curve intersecting a curvilinear boundary.
12 --
13 -- The geometric elements are described locally at
14 -- the intersection point by a second order
15 -- development.
16 --
17 -- The curve is described by the intersection point,
18 -- the tangent vector and the curvature.
19 --
20 -- The boundary is described by a set of curve
21 -- elements, a curve element is either :
22 --
23 -- - A curve.
24 --
25 -- - A curve and an orientation called a half-curve,
26 -- the boundary of the curve is before or after the
27 -- intersection point depending on the orientation.
28 --
29
30uses
31
32 Boolean from Standard,
33 Real from Standard,
34
35 Pnt from gp,
36 Dir from gp,
37
38 State from TopAbs,
39 Orientation from TopAbs
40
41is
42
43 Create returns CurveTransition from TopTrans;
44 ---Purpose: Create an empty Curve Transition.
45
46
47 Reset( me : in out;
48 Tgt : in Dir from gp; -- Tangent at this point
49 Norm : in Dir from gp; -- Normal vector at this point
50 Curv : in Real from Standard);-- Curvature at this point
51 ---Purpose: Initialize a Transition with the local description
52 -- of a Curve.
53
54 Reset( me : in out;
55 Tgt : in Dir from gp); -- Tangent at this point
56 ---Purpose: Initialize a Transition with the local description
57 -- of a straigth line.
58
59 Compare(me : in out;
60 Tole : in Real from Standard; -- Cosine tolerance
61 Tang : in Dir from gp; -- Tangent on curve for this point
62 Norm : in Dir from gp; -- Normal vector at this point
63 Curv : in Real from Standard; -- Curvature at this point
64 S : in Orientation from TopAbs; -- transition locale
65 Or : in Orientation from TopAbs);-- orientation de la tangente
66 ---Purpose: Add a curve element to the boundary. If Or is
67 -- REVERSED the curve is before the intersection,
68 -- else if Or is FORWARD the curv is after the
69 -- intersection and if Or is INTERNAL the
70 -- intersection is in the middle of the curv.
71
72 StateBefore(me) returns State from TopAbs;
73 ---Purpose: returns the state of the curve before the
74 -- intersection, this is the position relative to the
75 -- boundary of a point very close to the intersection
76 -- on the negative side of the tangent.
77
78 StateAfter(me) returns State from TopAbs;
79 ---Purpose: returns the state of the curve after the
80 -- intersection, this is the position relative to the
81 -- boundary of a point very close to the intersection
82 -- on the positive side of the tangent.
83
84
85---Implementation functions :
86
87 IsBefore( me;
88 Tole : in Real from Standard;
89 Angl : in Real from Standard;
90 Nor1 : in Dir from gp;
91 Cur1 : in Real from Standard;
92 Nor2 : in Dir from gp;
93 Cur2 : in Real from Standard)
94 returns Boolean from Standard is private;
95 ---Purpose: Compare two curvature and return true if N1,C1 is
96 -- before N2,C2 in the edge orientation
97
98 Compare(me;
99 Ang1 : in Real from Standard;
100 Ang2 : in Real from Standard;
101 Tole : in Real from Standard)
102 returns Integer from Standard is private;
103 ---Purpose: Compare two angles at tolerance Tole
104
105
106fields
107
108 myTgt : Dir from gp; -- Tangent at this point
109 myNorm : Dir from gp; -- Normal vector at this point
110 myCurv : Real; -- Curvature at this point
111
112 Init : Boolean;
113
114 TgtFirst : Dir from gp; -- Elements to determine the state
115 NormFirst : Dir from gp; --
116 CurvFirst : Real; -- before the intersection
117 TranFirst : Orientation from TopAbs;
118
119 TgtLast : Dir from gp; -- Elements to determine the state
120 NormLast : Dir from gp; --
121 CurvLast : Real; -- After the intersection
122 TranLast : Orientation from TopAbs;
123
124end CurveTransition;