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
|
// 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 _TopTrans_CurveTransition_HeaderFile
#define _TopTrans_CurveTransition_HeaderFile
#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif
#ifndef _gp_Dir_HeaderFile
#include <gp_Dir.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _TopAbs_Orientation_HeaderFile
#include <TopAbs_Orientation.hxx>
#endif
#ifndef _TopAbs_State_HeaderFile
#include <TopAbs_State.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
class gp_Dir;
//! This algorithm is used to compute the transition <br>
//! of a Curve intersecting a curvilinear boundary. <br>
//! <br>
//! The geometric elements are described locally at <br>
//! the intersection point by a second order <br>
//! development. <br>
//! <br>
//! The curve is described by the intersection point, <br>
//! the tangent vector and the curvature. <br>
//! <br>
//! The boundary is described by a set of curve <br>
//! elements, a curve element is either : <br>
//! <br>
//! - A curve. <br>
//! <br>
//! - A curve and an orientation called a half-curve, <br>
//! the boundary of the curve is before or after the <br>
//! intersection point depending on the orientation. <br>
//! <br>
class TopTrans_CurveTransition {
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);
}
//! Create an empty Curve Transition. <br>
Standard_EXPORT TopTrans_CurveTransition();
//! Initialize a Transition with the local description <br>
//! of a Curve. <br>
Standard_EXPORT void Reset(const gp_Dir& Tgt,const gp_Dir& Norm,const Standard_Real Curv) ;
//! Initialize a Transition with the local description <br>
//! of a straigth line. <br>
Standard_EXPORT void Reset(const gp_Dir& Tgt) ;
//! Add a curve element to the boundary. If Or is <br>
//! REVERSED the curve is before the intersection, <br>
//! else if Or is FORWARD the curv is after the <br>
//! intersection and if Or is INTERNAL the <br>
//! intersection is in the middle of the curv. <br>
Standard_EXPORT void Compare(const Standard_Real Tole,const gp_Dir& Tang,const gp_Dir& Norm,const Standard_Real Curv,const TopAbs_Orientation S,const TopAbs_Orientation Or) ;
//! returns the state of the curve before the <br>
//! intersection, this is the position relative to the <br>
//! boundary of a point very close to the intersection <br>
//! on the negative side of the tangent. <br>
Standard_EXPORT TopAbs_State StateBefore() const;
//! returns the state of the curve after the <br>
//! intersection, this is the position relative to the <br>
//! boundary of a point very close to the intersection <br>
//! on the positive side of the tangent. <br>
Standard_EXPORT TopAbs_State StateAfter() const;
protected:
private:
//! Compare two curvature and return true if N1,C1 is <br>
//! before N2,C2 in the edge orientation <br>
Standard_EXPORT Standard_Boolean IsBefore(const Standard_Real Tole,const Standard_Real Angl,const gp_Dir& Nor1,const Standard_Real Cur1,const gp_Dir& Nor2,const Standard_Real Cur2) const;
//! Compare two angles at tolerance Tole <br>
Standard_EXPORT Standard_Integer Compare(const Standard_Real Ang1,const Standard_Real Ang2,const Standard_Real Tole) const;
gp_Dir myTgt;
gp_Dir myNorm;
Standard_Real myCurv;
Standard_Boolean Init;
gp_Dir TgtFirst;
gp_Dir NormFirst;
Standard_Real CurvFirst;
TopAbs_Orientation TranFirst;
gp_Dir TgtLast;
gp_Dir NormLast;
Standard_Real CurvLast;
TopAbs_Orientation TranLast;
};
// other Inline functions and methods (like "C++: function call" methods)
#endif
|