summaryrefslogtreecommitdiff
path: root/inc/BlendFunc.hxx
blob: c63c178ba2b46bb8ee5d080b11cda40d745a1028 (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
// 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_HeaderFile
#define _BlendFunc_HeaderFile

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

#ifndef _BlendFunc_SectionShape_HeaderFile
#include <BlendFunc_SectionShape.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Convert_ParameterisationType_HeaderFile
#include <Convert_ParameterisationType.hxx>
#endif
#ifndef _GeomAbs_Shape_HeaderFile
#include <GeomAbs_Shape.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_Adaptor3d_HSurface_HeaderFile
#include <Handle_Adaptor3d_HSurface.hxx>
#endif
class TColStd_Array1OfReal;
class TColStd_Array1OfInteger;
class Adaptor3d_HSurface;
class gp_Pnt2d;
class gp_Vec;
class BlendFunc_ConstRad;
class BlendFunc_ConstRadInv;
class BlendFunc_Ruled;
class BlendFunc_RuledInv;
class BlendFunc_EvolRad;
class BlendFunc_EvolRadInv;
class BlendFunc_CSConstRad;
class BlendFunc_CSCircular;
class BlendFunc_Corde;
class BlendFunc_Chamfer;
class BlendFunc_ChamfInv;
class BlendFunc_ChAsym;
class BlendFunc_ChAsymInv;
class BlendFunc_Tensor;


//! This package provides a set of generic functions, that can <br>
//!          instantiated to compute blendings between two surfaces <br>
//!          (Constant radius, Evolutive radius, Ruled surface). <br>
class BlendFunc  {
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   static  void GetShape(const BlendFunc_SectionShape SectShape,const Standard_Real MaxAng,Standard_Integer& NbPoles,Standard_Integer& NbKnots,Standard_Integer& Degree,Convert_ParameterisationType& TypeConv) ;
  
  Standard_EXPORT   static  void Knots(const BlendFunc_SectionShape SectShape,TColStd_Array1OfReal& TKnots) ;
  
  Standard_EXPORT   static  void Mults(const BlendFunc_SectionShape SectShape,TColStd_Array1OfInteger& TMults) ;
  
  Standard_EXPORT   static  void GetMinimalWeights(const BlendFunc_SectionShape SectShape,const Convert_ParameterisationType TConv,const Standard_Real AngleMin,const Standard_Real AngleMax,TColStd_Array1OfReal& Weigths) ;
  
  Standard_EXPORT   static  GeomAbs_Shape NextShape(const GeomAbs_Shape S) ;
  
  Standard_EXPORT   static  Standard_Boolean ComputeNormal(const Handle(Adaptor3d_HSurface)& Surf,const gp_Pnt2d& p2d,gp_Vec& Normal) ;
  
  Standard_EXPORT   static  Standard_Boolean ComputeDNormal(const Handle(Adaptor3d_HSurface)& Surf,const gp_Pnt2d& p2d,gp_Vec& Normal,gp_Vec& DNu,gp_Vec& DNv) ;





protected:





private:




friend class BlendFunc_ConstRad;
friend class BlendFunc_ConstRadInv;
friend class BlendFunc_Ruled;
friend class BlendFunc_RuledInv;
friend class BlendFunc_EvolRad;
friend class BlendFunc_EvolRadInv;
friend class BlendFunc_CSConstRad;
friend class BlendFunc_CSCircular;
friend class BlendFunc_Corde;
friend class BlendFunc_Chamfer;
friend class BlendFunc_ChamfInv;
friend class BlendFunc_ChAsym;
friend class BlendFunc_ChAsymInv;
friend class BlendFunc_Tensor;

};





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


#endif