summaryrefslogtreecommitdiff
path: root/inc/GeomFill_GuideTrihedronPlan.hxx
blob: f59f35503e2b82d722c207d53d39083c4e66bd70 (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
148
149
150
// 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 _GeomFill_GuideTrihedronPlan_HeaderFile
#define _GeomFill_GuideTrihedronPlan_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_GeomFill_GuideTrihedronPlan_HeaderFile
#include <Handle_GeomFill_GuideTrihedronPlan.hxx>
#endif

#ifndef _Handle_Adaptor3d_HCurve_HeaderFile
#include <Handle_Adaptor3d_HCurve.hxx>
#endif
#ifndef _Handle_TColgp_HArray2OfPnt2d_HeaderFile
#include <Handle_TColgp_HArray2OfPnt2d.hxx>
#endif
#ifndef _math_Vector_HeaderFile
#include <math_Vector.hxx>
#endif
#ifndef _Handle_GeomFill_Frenet_HeaderFile
#include <Handle_GeomFill_Frenet.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _GeomFill_PipeError_HeaderFile
#include <GeomFill_PipeError.hxx>
#endif
#ifndef _GeomFill_TrihedronWithGuide_HeaderFile
#include <GeomFill_TrihedronWithGuide.hxx>
#endif
#ifndef _Handle_GeomFill_TrihedronLaw_HeaderFile
#include <Handle_GeomFill_TrihedronLaw.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _GeomAbs_Shape_HeaderFile
#include <GeomAbs_Shape.hxx>
#endif
class Adaptor3d_HCurve;
class TColgp_HArray2OfPnt2d;
class GeomFill_Frenet;
class Standard_OutOfRange;
class Standard_ConstructionError;
class GeomFill_TrihedronLaw;
class gp_Vec;
class TColStd_Array1OfReal;


//! Trihedron in  the case of sweeping along a guide curve defined <br>
//! by the orthogonal  plan on  the trajectory <br>
class GeomFill_GuideTrihedronPlan : public GeomFill_TrihedronWithGuide {

public:

  
  Standard_EXPORT   GeomFill_GuideTrihedronPlan(const Handle(Adaptor3d_HCurve)& theGuide);
  
  Standard_EXPORT   virtual  void SetCurve(const Handle(Adaptor3d_HCurve)& thePath) ;
  
  Standard_EXPORT   virtual  Handle_GeomFill_TrihedronLaw Copy() const;
  //!Give a status to the Law <br>
//!         Returns PipeOk (default implementation) <br>
  Standard_EXPORT   virtual  GeomFill_PipeError ErrorStatus() const;
  
  Standard_EXPORT   virtual  Handle_Adaptor3d_HCurve Guide() const;
  
  Standard_EXPORT   virtual  Standard_Boolean D0(const Standard_Real Param,gp_Vec& Tangent,gp_Vec& Normal,gp_Vec& BiNormal) ;
  
  Standard_EXPORT   virtual  Standard_Boolean D1(const Standard_Real Param,gp_Vec& Tangent,gp_Vec& DTangent,gp_Vec& Normal,gp_Vec& DNormal,gp_Vec& BiNormal,gp_Vec& DBiNormal) ;
  
  Standard_EXPORT   virtual  Standard_Boolean D2(const Standard_Real Param,gp_Vec& Tangent,gp_Vec& DTangent,gp_Vec& D2Tangent,gp_Vec& Normal,gp_Vec& DNormal,gp_Vec& D2Normal,gp_Vec& BiNormal,gp_Vec& DBiNormal,gp_Vec& D2BiNormal) ;
  //! Sets the bounds of the parametric interval on <br>
//!          the function <br>
//!          This determines the derivatives in these values if the <br>
//!          function is not Cn. <br>
  Standard_EXPORT   virtual  void SetInterval(const Standard_Real First,const Standard_Real Last) ;
  //! Returns  the number  of  intervals for  continuity <br>
//!          <S>. <br>
//!          May be one if Continuity(me) >= <S> <br>
  Standard_EXPORT   virtual  Standard_Integer NbIntervals(const GeomAbs_Shape S) const;
  //! Stores in <T> the  parameters bounding the intervals <br>
//!          of continuity <S>. <br>
//! <br>
//!          The array must provide  enough room to  accomodate <br>
//!          for the parameters. i.e. T.Length() > NbIntervals() <br>
  Standard_EXPORT   virtual  void Intervals(TColStd_Array1OfReal& T,const GeomAbs_Shape S) const;
  //! Get average value of M(t) and V(t) it is usfull to <br>
//!          make fast approximation of rational  surfaces. <br>
  Standard_EXPORT   virtual  void GetAverageLaw(gp_Vec& ATangent,gp_Vec& ANormal,gp_Vec& ABiNormal) ;
  //! Say if the law is Constant <br>
  Standard_EXPORT   virtual  Standard_Boolean IsConstant() const;
  //! Say if the law is defined, only by the 3d Geometry of <br>
//!          the setted Curve <br>
//!          Return False by Default. <br>
  Standard_EXPORT   virtual  Standard_Boolean IsOnlyBy3dCurve() const;
  
  Standard_EXPORT   virtual  void Origine(const Standard_Real OrACR1,const Standard_Real OrACR2) ;




  DEFINE_STANDARD_RTTI(GeomFill_GuideTrihedronPlan)

protected:




private: 

  
  Standard_EXPORT     void Init() ;
  
  Standard_EXPORT     void InitX(const Standard_Real Param) ;

Handle_Adaptor3d_HCurve myTrimmed;
Handle_Adaptor3d_HCurve myCurve;
Handle_TColgp_HArray2OfPnt2d Pole;
math_Vector X;
math_Vector XTol;
math_Vector Inf;
math_Vector Sup;
Handle_GeomFill_Frenet frenet;
Standard_Integer myNbPts;
GeomFill_PipeError myStatus;


};





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


#endif