summaryrefslogtreecommitdiff
path: root/inc/gp_Cylinder.lxx
blob: 6894563e1c6e57137e526c22f42fd69a6ee077a0 (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
//File gp_Cylinder.lxx

#include <Standard_ConstructionError.hxx>

inline gp_Cylinder::gp_Cylinder ()
{ radius = RealLast(); }

inline gp_Cylinder::gp_Cylinder (const gp_Ax3& A3,
				 const Standard_Real Radius) :
				 pos(A3),
				 radius (Radius)
{ Standard_ConstructionError_Raise_if (Radius < 0.0,""); }

inline void gp_Cylinder::SetAxis (const gp_Ax1& A1)
{ pos.SetAxis (A1); }

inline void gp_Cylinder::SetLocation (const gp_Pnt& Loc)
{ pos.SetLocation (Loc); }

inline void gp_Cylinder::SetPosition (const gp_Ax3& A3)
{ pos = A3; }

inline void gp_Cylinder::SetRadius (const Standard_Real R)
{
  Standard_ConstructionError_Raise_if (R < 0.0,"");
  radius = R;
}

inline void gp_Cylinder::UReverse()
{ pos.YReverse(); }

inline void gp_Cylinder::VReverse()
{ pos.ZReverse(); }

inline Standard_Boolean gp_Cylinder::Direct() const
{ return pos.Direct(); }

inline const gp_Ax1&  gp_Cylinder::Axis () const
{ return pos.Axis(); }

inline const gp_Pnt&  gp_Cylinder::Location () const
{ return pos.Location(); }

inline const gp_Ax3&  gp_Cylinder::Position () const
{ return pos; }

inline Standard_Real gp_Cylinder::Radius () const
{ return radius; }

inline gp_Ax1 gp_Cylinder::XAxis () const
{return gp_Ax1(pos.Location(), pos.XDirection());}

inline gp_Ax1 gp_Cylinder::YAxis () const
{return gp_Ax1(pos.Location(), pos.YDirection());}

inline void gp_Cylinder::Rotate (const gp_Ax1& A1,
				 const Standard_Real Ang)
{pos.Rotate(A1,Ang);}

inline gp_Cylinder gp_Cylinder::Rotated (const gp_Ax1& A1,
					 const Standard_Real Ang) const
{
  gp_Cylinder C = *this;
  C.pos.Rotate (A1, Ang);
  return C;
}

inline void gp_Cylinder::Scale (const gp_Pnt& P, const Standard_Real S)
{
  pos.Scale (P, S);      
  radius *= S;
  if (radius < 0) radius = - radius;
}

inline gp_Cylinder gp_Cylinder::Scaled (const gp_Pnt& P,
					const Standard_Real S) const
{
  gp_Cylinder C = *this;
  C.pos.Scale (P, S);
  C.radius *= S;
  if (C.radius < 0) C.radius = - C.radius;
  return C;
}

inline void gp_Cylinder::Transform (const gp_Trsf& T)
{
  pos.Transform (T);
  radius *= T.ScaleFactor();
  if (radius < 0) radius = - radius;
}

inline gp_Cylinder gp_Cylinder::Transformed (const gp_Trsf& T) const
{
  gp_Cylinder C = *this;
  C.pos.Transform (T);
  C.radius *= T.ScaleFactor();
  if (C.radius < 0) C.radius = - C.radius;
  return C;
}

inline void gp_Cylinder::Translate (const gp_Vec& V)
{ pos.Translate (V); }

inline gp_Cylinder gp_Cylinder::Translated (const gp_Vec& V) const
{
  gp_Cylinder C = *this;
  C.pos.Translate (V);
  return C;
}

inline void gp_Cylinder::Translate (const gp_Pnt& P1,
				    const gp_Pnt& P2)
{ pos.Translate (P1, P2); }

inline gp_Cylinder gp_Cylinder::Translated (const gp_Pnt& P1,
					    const gp_Pnt& P2) const
{
  gp_Cylinder C = *this;
  C.pos.Translate (P1, P2);
  return C;
}