summaryrefslogtreecommitdiff
path: root/inc/BlendFunc_Corde.hxx
blob: 8f8ace836d2fa6d974087584b9c60454924245ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _BlendFunc_Corde_HeaderFile
#define _BlendFunc_Corde_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _Handle_Adaptor3d_HSurface_HeaderFile
#include <Handle_Adaptor3d_HSurface.hxx>
#endif
#ifndef _Handle_Adaptor3d_HCurve_HeaderFile
#include <Handle_Adaptor3d_HCurve.hxx>
#endif
#ifndef _gp_Pnt_HeaderFile
#include <gp_Pnt.hxx>
#endif
#ifndef _gp_Pnt2d_HeaderFile
#include <gp_Pnt2d.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _gp_Vec_HeaderFile
#include <gp_Vec.hxx>
#endif
#ifndef _gp_Vec2d_HeaderFile
#include <gp_Vec2d.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
class Adaptor3d_HSurface;
class Adaptor3d_HCurve;
class Standard_DomainError;
class math_Vector;
class math_Matrix;
class gp_Pnt;
class gp_Vec;
class gp_Vec2d;


//! This function calculates point (pts) on the curve of <br>
//!          intersection between the normal to a curve (guide) <br>
//!          in a chosen parameter and a surface  (surf), so <br>
//!          that pts was at a given distance from the guide. <br>
//!          X(1),X(2) are the parameters U,V of pts on surf. <br>
class BlendFunc_Corde  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  
  Standard_EXPORT   BlendFunc_Corde(const Handle(Adaptor3d_HSurface)& S,const Handle(Adaptor3d_HCurve)& CGuide);
  
  Standard_EXPORT     void SetParam(const Standard_Real Param) ;
  
  Standard_EXPORT     void SetDist(const Standard_Real Dist) ;
  //! computes the values <F> of the Function for the <br>
//!          variable <X>. <br>
//!          Returns True if the computation was done successfully, <br>
//!          False otherwise. <br>
  Standard_EXPORT     Standard_Boolean Value(const math_Vector& X,math_Vector& F) ;
  //! returns the values <D> of the derivatives for the <br>
//!          variable <X>. <br>
//!          Returns True if the computation was done successfully, <br>
//!          False otherwise. <br>
  Standard_EXPORT     Standard_Boolean Derivatives(const math_Vector& X,math_Matrix& D) ;
  
  Standard_EXPORT    const gp_Pnt& PointOnS() const;
  //! returns the point of parameter <Param> on CGuide <br>
  Standard_EXPORT    const gp_Pnt& PointOnGuide() const;
  //! returns the normal to CGuide at Ptgui. <br>
  Standard_EXPORT    const gp_Vec& NPlan() const;
  //! Returns True when it is not possible to compute <br>
//!          the tangent vectors at PointOnS. <br>
  Standard_EXPORT     Standard_Boolean IsTangencyPoint() const;
  //! Returns the tangent vector at PointOnS, in 3d space. <br>
  Standard_EXPORT    const gp_Vec& TangentOnS() const;
  //! Returns the tangent vector at PointOnS, in the <br>
//!          parametric space of the first surface. <br>
  Standard_EXPORT    const gp_Vec2d& Tangent2dOnS() const;
  //! Derived of the function compared to the parameter <br>
//! of the guideline <br>
  Standard_EXPORT     void DerFguide(const math_Vector& Sol,gp_Vec2d& DerF) ;
  //! Returns False if Sol is not solution else returns <br>
//!          True and updates the fields tgs and tg2d <br>
  Standard_EXPORT     Standard_Boolean IsSolution(const math_Vector& Sol,const Standard_Real Tol) ;





protected:





private:



Handle_Adaptor3d_HSurface surf;
Handle_Adaptor3d_HCurve guide;
gp_Pnt pts;
gp_Pnt2d pt2d;
Standard_Real dis;
Standard_Real normtg;
Standard_Real theD;
gp_Pnt ptgui;
gp_Vec nplan;
gp_Vec d1gui;
gp_Vec d2gui;
gp_Vec tgs;
gp_Vec2d tg2d;
Standard_Boolean istangent;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif