VR-Link API Documentation for HLA 1516
3dPoint.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #ifndef Dt3dPoint_H
7 #define Dt3dPoint_H
8 
12 
13 #include <vlutil/vlMachineTypes.h>
14 
15 #include <iosfwd>
16 
17 #ifdef DtUSE_UTILITIES_NAMESPACE
18 namespace DtUSE_UTILITIES_NAMESPACE
19 {
20 #endif
21 
22 class DtVector;
23 class Dt4dPoint;
24 
25 
28 class Dt3dPoint;
29 typedef Dt3dPoint Dt3dVertex;
30 
42 
44 {
45 public:
46 
48  inline Dt3dPoint();
49 
51  inline Dt3dPoint( const double& x, const double& y, const double& z);
52 
54  inline Dt3dPoint(const Dt3dPoint& orig);
55 
57  inline ~Dt3dPoint();
58 
59  Dt3dPoint& operator=(const Dt3dPoint& rhs);
60 
62 
63  const double& operator[](const int index) const;
64  double& operator[](const int index);
66 
67  inline bool operator==(const Dt3dPoint& rhs) const;
68  inline bool operator!=(const Dt3dPoint& rhs) const;
69 
71 
72  inline Dt3dPoint operator*(const double& rhs) const;
73  inline Dt3dPoint& operator*=(const double& rhs);
75 
77 
78 
79 
80  inline Dt3dPoint operator/(const double& rhs) const;
81  inline Dt3dPoint& operator/=(const double& rhs);
83 
84  inline Dt3dPoint operator+(const DtVector& rhs) const;
85  inline Dt3dPoint& operator+=(const DtVector& rhs);
86 
87  inline DtVector operator-(const Dt3dPoint & rhs) const;
88  inline Dt3dPoint operator-(const DtVector& rhs) const;
89  inline Dt3dPoint& operator-=(const DtVector& rhs);
90 
92  Dt3dPoint differenceAs3dPoint(const Dt3dPoint& rhs) const;
93 
95  DtVector difference(const Dt3dPoint& rhs) const;
96 
99  bool approxEq(const Dt3dPoint& p, const double& tolerance) const;
100 
102  inline const double& x() const;
103 
105  inline const double& y() const;
106 
108  inline const double& z() const;
109 
110  inline void set( const double& x, const double& y, const double& z);
111 
113  inline void setX(const double& x);
114 
116  inline void setY(const double& y);
117 
119  inline void setZ(const double& z);
120 
121  inline void setFromVector( const DtVector & vector );
122 
124  inline void setFrom4dPoint( const Dt4dPoint & point );
125 
127  double distanceTo(const Dt3dPoint & end) const;
128 
130  double distanceSquaredTo(const Dt3dPoint & end) const;
131 
133  double xyDistanceTo(const Dt3dPoint & end) const;
134 
136  double xyDistanceSquaredTo(const Dt3dPoint & end) const;
137 
139  double xyDistanceToLine(const Dt3dPoint& pointA, const Dt3dPoint& pointB) const;
142  double xyDistanceToLineSquared(const Dt3dPoint& pointA, const Dt3dPoint& pointB) const;
143 
145  double magnitudeSquared() const;
146 
150  void normalize();
151 
154  Dt3dPoint(const DtVector& orig);
155 
158  Dt3dPoint& operator=(const DtVector& rhs);
159 
162  Dt3dPoint operator+(const Dt3dPoint& rhs) const;
163 
166  Dt3dPoint& operator+=(const Dt3dPoint& rhs);
167 
170  Dt3dPoint& operator-=(const Dt3dPoint& rhs);
171 
172 
173 protected:
174 
175  //no not change the order of this classes data memebers
176  //VR-Forces depends on the current ordering.
177  double myX;
178  double myY;
179  double myZ;
180 };
181 
182 
183 DT_DLL_MATRIX std::ostream& operator<<(std::ostream& os, const Dt3dPoint& point);
184 DT_DLL_MATRIX std::istream& operator>>(std::istream& is, Dt3dPoint& point);
185 
186 #ifdef DtUSE_UTILITIES_NAMESPACE
187 }
188 #endif
189 
190 #define _3dPoint_inl
191 #include "3dPoint.inl"
192 #undef _3dPoint_inl
193 
194 
195 #endif
196 

Document ID: Generated on Wed Oct 23 22:25:48 EDT 2013 from SVN revision 132765
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)