OCC22324 Mistakes with parenthesis position in abs calls
[occt.git] / src / GeomFill / GeomFill_PlanFunc.cxx
CommitLineData
7fd59977 1// File: GeomFill_PlanFunc.cxx
2// Created: Thu Oct 29 12:00:47 1998
3// Author: Philippe MANGIN
4// <pmn@sgi29>
5
6
7#include <GeomFill_PlanFunc.ixx>
8
9
10 GeomFill_PlanFunc::GeomFill_PlanFunc(const gp_Pnt& P,
11 const gp_Vec& V,
12 const Handle(Adaptor3d_HCurve)& C) :
13 myCurve(C)
14{
15 myPnt = P.XYZ();
16 myVec = V.XYZ();
17}
18
19
20 Standard_Boolean GeomFill_PlanFunc::Value(const Standard_Real X,
21 Standard_Real& F)
22{
23 myCurve->D0(X, G);
24 V.SetLinearForm(-1, myPnt, G.XYZ());
25 F = myVec.Dot(V);
26 return Standard_True;
27}
28
29 Standard_Boolean GeomFill_PlanFunc::Derivative(const Standard_Real X,
30 Standard_Real& D)
31{
32 gp_Vec dg;
33 myCurve->D1(X, G, dg);
34 D = myVec.Dot(dg.XYZ());
35
36 return Standard_True;
37}
38
39 Standard_Boolean GeomFill_PlanFunc::Values(const Standard_Real X,
40 Standard_Real& F,
41 Standard_Real& D)
42{
43 gp_Vec dg;
44 myCurve->D1(X, G, dg);
45 V.SetLinearForm(-1, myPnt, G.XYZ());
46 F = myVec.Dot(V);
47 D = myVec.Dot(dg.XYZ());
48
49 return Standard_True;
50}
51
52//void GeomFill_PlanFunc::D2(const Standard_Real X,
53// Standard_Real& F,
54// Standard_Real& D1,
55// Standard_Real& D2)
56void GeomFill_PlanFunc::D2(const Standard_Real ,
57 Standard_Real& ,
58 Standard_Real& ,
59 Standard_Real& )
60{
61}
62
63
64void GeomFill_PlanFunc::DEDT(const Standard_Real X,
65 const gp_Vec& DPnt,
66 const gp_Vec& DVec,
67 Standard_Real& DFDT)
68{
69 myCurve->D0(X, G);
70 V.SetLinearForm(-1, myPnt, G.XYZ());
71 DFDT = DVec.Dot(V) - myVec.Dot(DPnt.XYZ());
72
73}
74
75
76void GeomFill_PlanFunc::D2E(const Standard_Real X,
77 const gp_Vec& DP,
78// const gp_Vec& D2P,
79 const gp_Vec& ,
80 const gp_Vec& DV,
81// const gp_Vec& D2V,
82 const gp_Vec& ,
83 Standard_Real& DFDT,
84// Standard_Real& ,
85 Standard_Real& D2FDT2,
86// Standard_Real& D2FDTDX)
87 Standard_Real& )
88{
89 gp_Vec dg;
90 myCurve->D1(X, G, dg);
91 gp_XYZ DVDT;
92 V.SetLinearForm(-1, myPnt, G.XYZ());
93 DVDT.SetLinearForm(-1, DP.XYZ(), G.XYZ());
94 DFDT = DV.Dot(V) + myVec.Dot(DVDT);
95
96}