VR-Link API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 #include <matrix/vlVector.h>
15 
16 #include <iosfwd>
17 
18 #ifdef DtUSE_UTILITIES_NAMESPACE
19 namespace DtUSE_UTILITIES_NAMESPACE
20 {
21 #endif
22 
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  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  inline Dt3dPoint operator*(const double& rhs) const;
73  inline Dt3dPoint& operator*=(const double& rhs);
75 
77  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 
const bool operator==(const DtU128 &lhs, const DtU128 &rhs)
DtVector operator+(const DtVector &v1, const DtVector &v2)
implements v1 + v2
std::ostream & operator<<(std::ostream &os, const Dt3dChord &chord)
std::istream & operator>>(std::istream &is, Dt3dExtent &extent)
DtVrlFedTime operator/(const double &, const RTI::FedTime &)
double myZ
Definition: 3dPoint.h:179
Dt3dPoint Dt3dVertex
Definition: 3dPoint.h:28
DtVrlFedTime operator*(const double &, const RTI::FedTime &)
double myX
Definition: 3dPoint.h:177
Four-dimensional point, often used with homogeneous coordinates.
Definition: 4dPoint.h:26
This file declares DtVector and DtVector32.
Definition: vlVector.h:224
#define DT_DLL_MATRIX
Definition: vlMachineTypes.h:107
DtVector operator-(const DtVector &v1, const DtVector &v2)
implemented v1 - v2
Dt3dPoint represents points in 3-space.
Definition: 3dPoint.h:43
const bool operator!=(const DtU128 &lhs, const DtU128 &rhs)
double myY
Definition: 3dPoint.h:178
This file contains typedefs for machine dependant types.

Document ID: Generated on Mon Apr 25 03:39:01 EDT 2022 from SVN revision 242502
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)