summaryrefslogtreecommitdiff
path: root/inc/Geom_OsculatingSurface.hxx
blob: 780a19311591438b1c9ba706dc32b43a28cb3c5d (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
// 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 _Geom_OsculatingSurface_HeaderFile
#define _Geom_OsculatingSurface_HeaderFile

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

#ifndef _Handle_Geom_Surface_HeaderFile
#include <Handle_Geom_Surface.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Handle_Geom_HSequenceOfBSplineSurface_HeaderFile
#include <Handle_Geom_HSequenceOfBSplineSurface.hxx>
#endif
#ifndef _Handle_TColStd_HSequenceOfInteger_HeaderFile
#include <Handle_TColStd_HSequenceOfInteger.hxx>
#endif
#ifndef _TColStd_Array1OfBoolean_HeaderFile
#include <TColStd_Array1OfBoolean.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_Geom_BSplineSurface_HeaderFile
#include <Handle_Geom_BSplineSurface.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _GeomAbs_IsoType_HeaderFile
#include <GeomAbs_IsoType.hxx>
#endif
class Geom_Surface;
class Geom_HSequenceOfBSplineSurface;
class TColStd_HSequenceOfInteger;
class Geom_BSplineSurface;
class Geom_SequenceOfBSplineSurface;



class Geom_OsculatingSurface  {
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   Geom_OsculatingSurface();
  //! detects if the  surface has punctual U  or  V <br>
//!  isoparametric  curve along on  the bounds of the surface <br>
//!  relativly to the tolerance Tol and Builds the corresponding <br>
//!  osculating surfaces. <br>
  Standard_EXPORT   Geom_OsculatingSurface(const Handle(Geom_Surface)& BS,const Standard_Real Tol);
  
  Standard_EXPORT     void Init(const Handle(Geom_Surface)& BS,const Standard_Real Tol) ;
  
  Standard_EXPORT     Handle_Geom_Surface BasisSurface() const;
  
  Standard_EXPORT     Standard_Real Tolerance() const;
  //! if Standard_True, L is the local osculating surface <br>
//!          along U at the point U,V. <br>
  Standard_EXPORT     Standard_Boolean UOscSurf(const Standard_Real U,const Standard_Real V,Standard_Boolean& t,Handle(Geom_BSplineSurface)& L) const;
  //! if Standard_True, L is the local osculating surface <br>
//!          along V at the point U,V. <br>
  Standard_EXPORT     Standard_Boolean VOscSurf(const Standard_Real U,const Standard_Real V,Standard_Boolean& t,Handle(Geom_BSplineSurface)& L) const;





protected:





private:

  //! returns False if the osculating surface can't be built <br>
//! <br>
  Standard_EXPORT     Standard_Boolean BuildOsculatingSurface(const Standard_Real Param,const Standard_Integer UKnot,const Standard_Integer VKnot,const Handle(Geom_BSplineSurface)& BS,Handle(Geom_BSplineSurface)& L) const;
  //! returns    True    if  the    isoparametric     is <br>
//!          quasi-punctual <br>
  Standard_EXPORT     Standard_Boolean IsQPunctual(const Handle(Geom_Surface)& S,const Standard_Real Param,const GeomAbs_IsoType IT,const Standard_Real TolMin,const Standard_Real TolMax) const;
  
  Standard_EXPORT     Standard_Boolean HasOscSurf() const;
  
  Standard_EXPORT     Standard_Boolean IsAlongU() const;
  
  Standard_EXPORT     Standard_Boolean IsAlongV() const;
  
  Standard_EXPORT     void ClearOsculFlags() ;
  
  Standard_EXPORT    const Geom_SequenceOfBSplineSurface& GetSeqOfL1() const;
  
  Standard_EXPORT    const Geom_SequenceOfBSplineSurface& GetSeqOfL2() const;


Handle_Geom_Surface myBasisSurf;
Standard_Real myTol;
Handle_Geom_HSequenceOfBSplineSurface myOsculSurf1;
Handle_Geom_HSequenceOfBSplineSurface myOsculSurf2;
Handle_TColStd_HSequenceOfInteger myKdeg;
TColStd_Array1OfBoolean myAlong;


};





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


#endif