1 -- Created on: 1998-04-14
2 -- Created by: Stephanie HUMEAU
3 -- Copyright (c) 1998-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
6 -- This file is part of Open CASCADE Technology software library.
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
17 ----------------------------------------------------
18 -- Triedre de Frenet pour une surface de depouille
19 ----------------------------------------------------
21 class DraftTrihedron from GeomFill
22 inherits TrihedronLaw from GeomFill
26 Array1OfReal from TColStd,
30 OutOfRange, ConstructionError
33 Create (BiNormal : Vec from gp;
35 returns DraftTrihedron from GeomFill;
37 SetAngle(me : mutable; Angle : Real)
40 Copy(me) returns TrihedronLaw from GeomFill
46 Tangent : out Vec from gp;
47 Normal : out Vec from gp;
48 BiNormal : out Vec from gp)
49 returns Boolean is redefined;
51 ---Purpose: compute Triedrhon and derivative Trihedron on curve at
53 -- Warning : It used only for C1 or C2 aproximation
56 Tangent : out Vec from gp;
57 DTangent : out Vec from gp;
58 Normal : out Vec from gp;
59 DNormal : out Vec from gp;
60 BiNormal : out Vec from gp;
61 DBiNormal : out Vec from gp)
62 returns Boolean is redefined;
64 ---Purpose: compute Trihedron on curve
65 -- first and seconde derivatives.
66 -- Warning : It used only for C2 aproximation
69 Tangent : out Vec from gp;
70 DTangent : out Vec from gp;
71 D2Tangent : out Vec from gp;
72 Normal : out Vec from gp;
73 DNormal : out Vec from gp;
74 D2Normal : out Vec from gp;
75 BiNormal : out Vec from gp;
76 DBiNormal : out Vec from gp;
77 D2BiNormal : out Vec from gp)
78 returns Boolean is redefined;
81 -- =================== Management of continuity ===================
83 NbIntervals(me; S : Shape from GeomAbs)
84 ---Purpose: Returns the number of intervals for continuity
86 -- May be one if Continuity(me) >= <S>
87 returns Integer is redefined;
89 Intervals(me; T : in out Array1OfReal from TColStd;
90 S : Shape from GeomAbs)
91 ---Purpose: Stores in <T> the parameters bounding the intervals
94 -- The array must provide enough room to accomodate
95 -- for the parameters. i.e. T.Length() > NbIntervals()
97 OutOfRange from Standard
100 -- ===================== To help computation of Tolerance ============
101 GetAverageLaw(me : mutable;
102 ATangent : out Vec from gp;
103 ANormal : out Vec from gp;
104 ABiNormal : out Vec from gp)
105 ---Purpose: Get average value of Tangent(t) and Normal(t) it is usefull to
106 -- make fast approximation of rational surfaces.
110 -- =================== To help Particular case ===============
113 ---Purpose: Say if the law is Constant.
118 ---Purpose: Return True.
125 myAngle : Real from Standard;