0023948: Wrong intersection between a surface of revolution and a plane.
[occt.git] / src / GeomFill / GeomFill_DiscreteTrihedron.cdl
CommitLineData
a31abc03 1-- Created on: 2013-02-05
2-- Created by: Julia GERASIMOVA
3-- Copyright (c) 2001-2013 OPEN CASCADE SAS
4--
973c2be1 5-- This file is part of Open CASCADE Technology software library.
a31abc03 6--
d5f74e42 7-- This library is free software; you can redistribute it and/or modify it under
8-- the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 9-- by the Free Software Foundation, with special exception defined in the file
10-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11-- distribution for complete text of the license and disclaimer of any warranty.
a31abc03 12--
973c2be1 13-- Alternatively, this file may be used under the terms of Open CASCADE
14-- commercial license or contractual agreement.
a31abc03 15
16class DiscreteTrihedron from GeomFill
17 inherits TrihedronLaw from GeomFill
18
19 ---Purpose: Defined Discrete Trihedron Law.
20 -- The requirement for path curve is only G1.
21 -- The result is C0-continuous surface
22 -- that can be later approximated to C1.
23
24uses
25 HCurve from Adaptor3d,
26 Shape from GeomAbs,
27 Pnt from gp,
28 Vec from gp,
29 Array1OfReal from TColStd,
30 Frenet from GeomFill,
31 HSequenceOfAx2 from GeomFill,
32 HSequenceOfReal from TColStd
33
34raises
35 OutOfRange, ConstructionError
36is
37
38 Create
39 returns DiscreteTrihedron from GeomFill
40 raises ConstructionError;
41
42 Copy(me)
43 returns TrihedronLaw from GeomFill
44 is redefined;
45
46 Init(me: mutable)
47 is static;
48
49 SetCurve(me : mutable; C : HCurve from Adaptor3d)
50 is redefined;
51
52--
53--
54--========== To compute Location and derivatives Location
55--
56 D0(me : mutable;
57 Param: Real;
58 Tangent : out Vec from gp;
59 Normal : out Vec from gp;
60 BiNormal : out Vec from gp)
61 ---Purpose: compute Trihedron on curve at parameter <Param>
62 returns Boolean is redefined;
63
64 D1(me : mutable;
65 Param: Real;
66 Tangent : out Vec from gp;
67 DTangent : out Vec from gp;
68 Normal : out Vec from gp;
69 DNormal : out Vec from gp;
70 BiNormal : out Vec from gp;
71 DBiNormal : out Vec from gp)
72 ---Purpose: compute Trihedron and derivative Trihedron on curve
73 -- at parameter <Param>
74 -- Warning : It used only for C1 or C2 aproximation
75 -- For the moment it returns null values for DTangent, DNormal
76 -- and DBiNormal.
77 returns Boolean
78 is redefined;
79
80 D2(me : mutable;
81 Param: Real;
82 Tangent : out Vec from gp;
83 DTangent : out Vec from gp;
84 D2Tangent : out Vec from gp;
85 Normal : out Vec from gp;
86 DNormal : out Vec from gp;
87 D2Normal : out Vec from gp;
88 BiNormal : out Vec from gp;
89 DBiNormal : out Vec from gp;
90 D2BiNormal : out Vec from gp)
91 ---Purpose: compute Trihedron on curve
92 -- first and seconde derivatives.
93 -- Warning : It used only for C2 aproximation
94 -- For the moment it returns null values for DTangent, DNormal
95 -- DBiNormal, D2Tangent, D2Normal, D2BiNormal.
96 returns Boolean
97 is redefined;
98--
99-- =================== Management of continuity ===================
100--
101 NbIntervals(me; S : Shape from GeomAbs)
102 ---Purpose: Returns the number of intervals for continuity
103 -- <S>.
104 -- May be one if Continuity(me) >= <S>
105 returns Integer is redefined;
106
107 Intervals(me; T : in out Array1OfReal from TColStd;
108 S : Shape from GeomAbs)
109 ---Purpose: Stores in <T> the parameters bounding the intervals
110 -- of continuity <S>.
111 --
112 -- The array must provide enough room to accomodate
113 -- for the parameters. i.e. T.Length() > NbIntervals()
114 raises
115 OutOfRange from Standard
116 is redefined;
117
118
119-- =================== To help computation of Tolerance ===============
120 GetAverageLaw(me : mutable;
121 ATangent : out Vec from gp;
122 ANormal : out Vec from gp;
123 ABiNormal : out Vec from gp)
124 ---Purpose: Get average value of Tangent(t) and Normal(t) it is usful to
125 -- make fast approximation of rational surfaces.
126 is redefined;
127
128-- =================== To help Particular case ===============
129
130 IsConstant(me)
131 ---Purpose: Say if the law is Constant.
132 returns Boolean
133 is redefined;
134
135 IsOnlyBy3dCurve(me)
136 ---Purpose: Return True.
137 returns Boolean
138 is redefined;
139
140
141fields
142
143 myPoint : Pnt from gp;
144 myTrihedrons : HSequenceOfAx2 from GeomFill;
145 myKnots : HSequenceOfReal from TColStd;
146 myFrenet : Frenet from GeomFill;
147 myUseFrenet : Boolean from Standard;
148
149end DiscreteTrihedron;