summaryrefslogtreecommitdiff
path: root/inc/gp_Ax1.lxx
blob: 1dcfdbfe77fcf5f008d05d1fcc09e643ce303c1f (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
// File gp_Ax1.lxx,  JCV 30/08/90
// JCV, LPA 07/92

inline gp_Ax1::gp_Ax1() : loc(0.,0.,0.), vdir(0.,0.,1.)
{ }

inline gp_Ax1::gp_Ax1 (const gp_Pnt& P,
		       const gp_Dir& V) :  loc(P), vdir(V)
{ }

inline void gp_Ax1::SetDirection (const gp_Dir& V)
{ vdir = V; }

inline void gp_Ax1::SetLocation (const gp_Pnt& P)
{ loc = P; }

inline const gp_Dir& gp_Ax1::Direction () const
{ return vdir; }

inline const gp_Pnt& gp_Ax1::Location () const
{ return loc; }

inline Standard_Boolean gp_Ax1::IsNormal
(const gp_Ax1& Other,
 const Standard_Real AngularTolerance) const
{ return vdir.IsNormal(Other.vdir, AngularTolerance); }

inline Standard_Boolean gp_Ax1::IsOpposite
(const gp_Ax1& Other,
 const Standard_Real AngularTolerance) const
{ return vdir.IsOpposite(Other.vdir, AngularTolerance); }

inline Standard_Boolean gp_Ax1::IsParallel
(const gp_Ax1& Other,
 const Standard_Real AngularTolerance) const
{ return vdir.IsParallel(Other.vdir, AngularTolerance); }

inline Standard_Real gp_Ax1::Angle (const gp_Ax1& Other) const
{ return vdir.Angle (Other.vdir); }

inline void gp_Ax1::Reverse ()
{ vdir.Reverse(); }

inline gp_Ax1 gp_Ax1::Reversed () const
{ 
  gp_Dir D = vdir.Reversed();   
  return gp_Ax1(loc, D);
}

inline void gp_Ax1::Rotate (const gp_Ax1& A1, const Standard_Real Ang)
{
  loc.Rotate(A1, Ang);
  vdir.Rotate(A1 , Ang);
}
 
inline gp_Ax1 gp_Ax1::Rotated (const gp_Ax1& A1,
			const Standard_Real Ang) const
{
  gp_Ax1 A = *this;
  A.Rotate (A1, Ang);
  return A;
}

inline void gp_Ax1::Scale (const gp_Pnt& P,
		    const Standard_Real S)
{
  loc.Scale (P, S);
  if (S < 0.0)  vdir.Reverse();
}

inline gp_Ax1 gp_Ax1::Scaled (const gp_Pnt& P,
		       const Standard_Real S) const
{
  gp_Ax1 A1 = *this;
  A1.Scale (P, S);
  return A1;
}

inline void gp_Ax1::Transform (const gp_Trsf& T)
{ 
   loc.Transform(T); 
   vdir.Transform(T);
}

inline gp_Ax1 gp_Ax1::Transformed (const gp_Trsf& T) const
{
  gp_Ax1 A1 = *this;
  A1.Transform (T);
  return A1;
}

inline void gp_Ax1::Translate (const gp_Vec& V)
{ loc.Translate (V); }

inline gp_Ax1 gp_Ax1::Translated (const gp_Vec& V) const
{
  gp_Ax1 A1 = *this;
  (A1.loc).Translate (V); 
  return A1;
}

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

inline gp_Ax1 gp_Ax1::Translated (const gp_Pnt& P1,
			   const gp_Pnt& P2) const
{
  gp_Ax1 A1 = *this;
  (A1.loc).Translate (P1, P2);
  return A1;
}