summaryrefslogtreecommitdiff
path: root/inc/GeomPlate_PointConstraint.hxx
blob: 1ba9e309efd8add14625aa450b7f46b62abf74f1 (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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
// 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 _GeomPlate_PointConstraint_HeaderFile
#define _GeomPlate_PointConstraint_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_GeomPlate_PointConstraint_HeaderFile
#include <Handle_GeomPlate_PointConstraint.hxx>
#endif

#ifndef _GeomLProp_SLProps_HeaderFile
#include <GeomLProp_SLProps.hxx>
#endif
#ifndef _gp_Pnt_HeaderFile
#include <gp_Pnt.hxx>
#endif
#ifndef _gp_Pnt2d_HeaderFile
#include <gp_Pnt2d.hxx>
#endif
#ifndef _Handle_Geom_Surface_HeaderFile
#include <Handle_Geom_Surface.hxx>
#endif
#ifndef _gp_Vec_HeaderFile
#include <gp_Vec.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _MMgt_TShared_HeaderFile
#include <MMgt_TShared.hxx>
#endif
class Geom_Surface;
class Standard_ConstructionError;
class gp_Pnt;
class gp_Vec;
class gp_Pnt2d;
class GeomLProp_SLProps;



//! Defines points as constraints to be used to deform a surface. <br>
class GeomPlate_PointConstraint : public MMgt_TShared {

public:

  //! Constructs a point constraint object defined by  Pt, a 3D point <br>
//!   Order gives the order of constraint, one of: <br>
//! -   -1 i.e. none, or 0 i.e.G0 when assigned to Pt <br>
//! -   -1 i.e. none, 0 i.e. G0, 1 i.e. G1, 2 i.e. G2 when <br>
//!   assigned to U, V and Surf. <br>
//! In this constructor, only TolDist is given. <br>
//! Distance tolerance represents the greatest distance <br>
//! allowed between the constraint and the target surface. <br>
//! Angular tolerance represents the largest angle allowed <br>
//! between the constraint and the target surface. Curvature <br>
//! tolerance represents the greatest difference in curvature <br>
//! allowed between the constraint and the target surface. <br>
//! Raises   ConstructionError if Order  is  not  0  or  -1 <br>
  Standard_EXPORT   GeomPlate_PointConstraint(const gp_Pnt& Pt,const Standard_Integer Order,const Standard_Real TolDist = 0.0001);
  //! Constructs a point constraint object defined by <br>
//! the intersection point of U and V on the surface Surf. <br>
//!   Order gives the order of constraint, one of: <br>
//! -   -1 i.e. none, or 0 i.e.G0 when assigned to Pt <br>
//! -   -1 i.e. none, 0 i.e. G0, 1 i.e. G1, 2 i.e. G2 when <br>
//!   assigned to U, V and Surf. <br>
//! In this constructor the surface to be generated must <br>
//! respect several tolerance values only: <br>
//! -   the distance tolerance TolDist <br>
//! -   the angular tolerance TolAng <br>
//! -   the curvature tolerance, TolCurv. <br>
//! Distance tolerance represents the greatest distance <br>
//! allowed between the constraint and the target surface. <br>
//! Angular tolerance represents the largest angle allowed <br>
//! between the constraint and the target surface. Curvature <br>
//! tolerance represents the greatest difference in curvature <br>
//! allowed between the constraint and the target surface.Creates a punctual constraint. <br>
  Standard_EXPORT   GeomPlate_PointConstraint(const Standard_Real U,const Standard_Real V,const Handle(Geom_Surface)& Surf,const Standard_Integer Order,const Standard_Real TolDist = 0.0001,const Standard_Real TolAng = 0.01,const Standard_Real TolCurv = 0.1);
  
  Standard_EXPORT     void SetOrder(const Standard_Integer Order) ;
  
//! Returns the order of constraint: G0, G1, and G2, <br>
//! controlled respectively by G0Criterion G1Criterion and G2Criterion. <br>
  Standard_EXPORT     Standard_Integer Order() const;
  
//! Allows you to set the G0 criterion. This is the law <br>
//! defining the greatest distance allowed between the <br>
//! constraint and the target surface. If this criterion is not <br>
//! set, {TolDist, the distance tolerance from the constructor, is used <br>
  Standard_EXPORT     void SetG0Criterion(const Standard_Real TolDist) ;
  
//! Allows you to set the G1 criterion. This is the law <br>
//! defining the greatest angle allowed between the <br>
//! constraint and the target surface. If this criterion is not <br>
//! set, TolAng, the angular tolerance from the constructor, is used. <br>
//! Raises   ConstructionError  if  the  point  is  not  on  the  surface <br>
  Standard_EXPORT     void SetG1Criterion(const Standard_Real TolAng) ;
  
//! Allows you to set the G2 criterion. This is the law <br>
//! defining the greatest difference in curvature allowed <br>
//! between the constraint and the target surface. If this <br>
//! criterion is not set, TolCurv, the curvature tolerance from <br>
//! the constructor, is used. <br>
//! Raises   ConstructionError if  the  point  is  not  on  the  surface <br>
  Standard_EXPORT     void SetG2Criterion(const Standard_Real TolCurv) ;
  
//! Returns the G0 criterion. This is the greatest distance <br>
//! allowed between the constraint and the target surface. <br>
  Standard_EXPORT     Standard_Real G0Criterion() const;
  
//! Returns the G1 criterion. This is the greatest angle <br>
//! allowed between the constraint and the target surface. <br>
//! Raises   ConstructionError if  the  point  is  not  on  the  surface. <br>
  Standard_EXPORT     Standard_Real G1Criterion() const;
  
//! Returns the G2 criterion. This is the greatest difference <br>
//! in curvature allowed between the constraint and the target surface. <br>
//! Raises   ConstructionError if  the  point  is  not  on  the  surface <br>
  Standard_EXPORT     Standard_Real G2Criterion() const;
  
  Standard_EXPORT     void D0(gp_Pnt& P) const;
  
  Standard_EXPORT     void D1(gp_Pnt& P,gp_Vec& V1,gp_Vec& V2) const;
  
  Standard_EXPORT     void D2(gp_Pnt& P,gp_Vec& V1,gp_Vec& V2,gp_Vec& V3,gp_Vec& V4,gp_Vec& V5) const;
  
  Standard_EXPORT     Standard_Boolean HasPnt2dOnSurf() const;
  
  Standard_EXPORT     void SetPnt2dOnSurf(const gp_Pnt2d& Pnt) ;
  
  Standard_EXPORT     gp_Pnt2d Pnt2dOnSurf() const;
  
  Standard_EXPORT     GeomLProp_SLProps& LPropSurf() ;




  DEFINE_STANDARD_RTTI(GeomPlate_PointConstraint)

protected:


Standard_Integer myOrder;


private: 


GeomLProp_SLProps myLProp;
gp_Pnt myPoint;
gp_Pnt2d myPt2d;
Handle_Geom_Surface mySurf;
gp_Vec myD11;
gp_Vec myD12;
gp_Vec myD21;
gp_Vec myD22;
gp_Vec myD23;
Standard_Real myU;
Standard_Real myV;
Standard_Real myTolDist;
Standard_Real myTolAng;
Standard_Real myTolCurv;
Standard_Boolean hasPnt2dOnSurf;


};





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


#endif