Blender  V3.3
frameacc.hpp
Go to the documentation of this file.
1 /*****************************************************************************
2  * \file
3  * This file contains the definition of classes for a
4  * Rall Algebra of (subset of) the classes defined in frames,
5  * i.e. classes that contain a set (value,derivative,2nd derivative)
6  * and define operations on that set
7  * this classes are usefull for automatic differentiation ( <-> symbolic diff ,
8  * <-> numeric diff).
9  * Defines VectorAcc, RotationAcc, FrameAcc, doubleAcc.
10  * Look at the corresponding classes Vector Rotation Frame Twist and
11  * Wrench for the semantics of the methods.
12  *
13  * It also contains the 2nd derivative <-> RFrames.h
14  *
15  * Erwin Aertbelien, Div. PMA, Dep. of Mech. Eng., K.U.Leuven
16  *
17  * \version
18  * ORO_Geometry V0.2
19  *
20  * \par History
21  * - $log$
22  *
23  * \par Release
24  * $Name: $
25  ****************************************************************************/
26 
27 #ifndef RRFRAMES_H
28 #define RRFRAMES_H
29 
30 
31 #include "utilities/rall2d.h"
32 #include "frames.hpp"
33 
34 
35 
36 namespace KDL {
37 
38 class TwistAcc;
40 
41 
42 class VectorAcc
43 {
44 public:
48 public:
49  VectorAcc():p(),v(),dv() {}
50  explicit VectorAcc(const Vector& _p):p(_p),v(Vector::Zero()),dv(Vector::Zero()) {}
51  VectorAcc(const Vector& _p,const Vector& _v):p(_p),v(_v),dv(Vector::Zero()) {}
52  VectorAcc(const Vector& _p,const Vector& _v,const Vector& _dv):
53  p(_p),v(_v),dv(_dv) {}
55  IMETHOD VectorAcc& operator = (const Vector& arg);
58  IMETHOD static VectorAcc Zero();
59  IMETHOD void ReverseSign();
61  IMETHOD friend VectorAcc operator + (const VectorAcc& r1,const VectorAcc& r2);
62  IMETHOD friend VectorAcc operator - (const VectorAcc& r1,const VectorAcc& r2);
63  IMETHOD friend VectorAcc operator + (const Vector& r1,const VectorAcc& r2);
64  IMETHOD friend VectorAcc operator - (const Vector& r1,const VectorAcc& r2);
65  IMETHOD friend VectorAcc operator + (const VectorAcc& r1,const Vector& r2);
66  IMETHOD friend VectorAcc operator - (const VectorAcc& r1,const Vector& r2);
67  IMETHOD friend VectorAcc operator * (const VectorAcc& r1,const VectorAcc& r2);
68  IMETHOD friend VectorAcc operator * (const VectorAcc& r1,const Vector& r2);
69  IMETHOD friend VectorAcc operator * (const Vector& r1,const VectorAcc& r2);
70  IMETHOD friend VectorAcc operator * (const VectorAcc& r1,double r2);
71  IMETHOD friend VectorAcc operator * (double r1,const VectorAcc& r2);
72  IMETHOD friend VectorAcc operator * (const doubleAcc& r1,const VectorAcc& r2);
73  IMETHOD friend VectorAcc operator * (const VectorAcc& r2,const doubleAcc& r1);
74  IMETHOD friend VectorAcc operator*(const Rotation& R,const VectorAcc& x);
75 
76  IMETHOD friend VectorAcc operator / (const VectorAcc& r1,double r2);
77  IMETHOD friend VectorAcc operator / (const VectorAcc& r2,const doubleAcc& r1);
78 
79 
80  IMETHOD friend bool Equal(const VectorAcc& r1,const VectorAcc& r2,double eps);
81  IMETHOD friend bool Equal(const Vector& r1,const VectorAcc& r2,double eps);
82  IMETHOD friend bool Equal(const VectorAcc& r1,const Vector& r2,double eps);
84  IMETHOD friend doubleAcc dot(const VectorAcc& lhs,const VectorAcc& rhs);
85  IMETHOD friend doubleAcc dot(const VectorAcc& lhs,const Vector& rhs);
86  IMETHOD friend doubleAcc dot(const Vector& lhs,const VectorAcc& rhs);
87 };
88 
89 
90 
92 {
93 public:
97 public:
98  RotationAcc():R(),w() {}
99  explicit RotationAcc(const Rotation& R_):R(R_),w(Vector::Zero()){}
100  RotationAcc(const Rotation& R_,const Vector& _w,const Vector& _dw):
101  R(R_),w(_w),dw(_dw) {}
104  IMETHOD static RotationAcc Identity();
105  IMETHOD RotationAcc Inverse() const;
106  IMETHOD VectorAcc Inverse(const VectorAcc& arg) const;
107  IMETHOD VectorAcc Inverse(const Vector& arg) const;
108  IMETHOD VectorAcc operator*(const VectorAcc& arg) const;
109  IMETHOD VectorAcc operator*(const Vector& arg) const;
110 
111  // Rotations
112  // The SetRot.. functions set the value of *this to the appropriate rotation matrix.
113  // The Rot... static functions give the value of the appropriate rotation matrix back.
114  // The DoRot... functions apply a rotation R to *this,such that *this = *this * R.
115  // IMETHOD void DoRotX(const doubleAcc& angle);
116  // IMETHOD void DoRotY(const doubleAcc& angle);
117  // IMETHOD void DoRotZ(const doubleAcc& angle);
118  // IMETHOD static RRotation RotX(const doubleAcc& angle);
119  // IMETHOD static RRotation RotY(const doubleAcc& angle);
120  // IMETHOD static RRotation RotZ(const doubleAcc& angle);
121 
122  // IMETHOD void SetRot(const Vector& rotaxis,const doubleAcc& angle);
123  // Along an arbitrary axes. The norm of rotvec is neglected.
124  // IMETHOD static RotationAcc Rot(const Vector& rotvec,const doubleAcc& angle);
125  // rotvec has arbitrary norm
126  // rotation around a constant vector !
127  // IMETHOD static RotationAcc Rot2(const Vector& rotvec,const doubleAcc& angle);
128  // rotvec is normalized.
129  // rotation around a constant vector !
130 
131  IMETHOD friend RotationAcc operator* (const RotationAcc& r1,const RotationAcc& r2);
132  IMETHOD friend RotationAcc operator* (const Rotation& r1,const RotationAcc& r2);
133  IMETHOD friend RotationAcc operator* (const RotationAcc& r1,const Rotation& r2);
134  IMETHOD friend bool Equal(const RotationAcc& r1,const RotationAcc& r2,double eps);
135  IMETHOD friend bool Equal(const Rotation& r1,const RotationAcc& r2,double eps);
136  IMETHOD friend bool Equal(const RotationAcc& r1,const Rotation& r2,double eps);
137  IMETHOD TwistAcc Inverse(const TwistAcc& arg) const;
138  IMETHOD TwistAcc Inverse(const Twist& arg) const;
139  IMETHOD TwistAcc operator * (const TwistAcc& arg) const;
140  IMETHOD TwistAcc operator * (const Twist& arg) const;
141 };
142 
143 
144 
145 
146 class FrameAcc
147 {
148 public:
151 public:
153  explicit FrameAcc(const Frame& T_):M(T_.M),p(T_.p) {}
154  FrameAcc(const Frame& T_,const Twist& _t,const Twist& _dt):
155  M(T_.M,_t.rot,_dt.rot),p(T_.p,_t.vel,_dt.vel) {}
156  FrameAcc(const RotationAcc& _M,const VectorAcc& _p):M(_M),p(_p) {}
157 
158  IMETHOD FrameAcc& operator = (const FrameAcc& arg);
159  IMETHOD FrameAcc& operator = (const Frame& arg);
160  IMETHOD static FrameAcc Identity();
161  IMETHOD FrameAcc Inverse() const;
162  IMETHOD VectorAcc Inverse(const VectorAcc& arg) const;
163  IMETHOD VectorAcc operator*(const VectorAcc& arg) const;
164  IMETHOD VectorAcc operator*(const Vector& arg) const;
165  IMETHOD VectorAcc Inverse(const Vector& arg) const;
166  IMETHOD Frame GetFrame() const;
167  IMETHOD Twist GetTwist() const;
168  IMETHOD Twist GetAccTwist() const;
169  IMETHOD friend FrameAcc operator * (const FrameAcc& f1,const FrameAcc& f2);
170  IMETHOD friend FrameAcc operator * (const Frame& f1,const FrameAcc& f2);
171  IMETHOD friend FrameAcc operator * (const FrameAcc& f1,const Frame& f2);
172  IMETHOD friend bool Equal(const FrameAcc& r1,const FrameAcc& r2,double eps);
173  IMETHOD friend bool Equal(const Frame& r1,const FrameAcc& r2,double eps);
174  IMETHOD friend bool Equal(const FrameAcc& r1,const Frame& r2,double eps);
175 
176  IMETHOD TwistAcc Inverse(const TwistAcc& arg) const;
177  IMETHOD TwistAcc Inverse(const Twist& arg) const;
178  IMETHOD TwistAcc operator * (const TwistAcc& arg) const;
179  IMETHOD TwistAcc operator * (const Twist& arg) const;
180 };
181 
182 
183 
184 
185 
186 
187 
188 
189 //very similar to Wrench class.
190 class TwistAcc
191 {
192 public:
195 public:
196 
197  TwistAcc():vel(),rot() {};
198  TwistAcc(const VectorAcc& _vel,const VectorAcc& _rot):vel(_vel),rot(_rot) {};
199 
200  IMETHOD TwistAcc& operator-=(const TwistAcc& arg);
201  IMETHOD TwistAcc& operator+=(const TwistAcc& arg);
202 
203  IMETHOD friend TwistAcc operator*(const TwistAcc& lhs,double rhs);
204  IMETHOD friend TwistAcc operator*(double lhs,const TwistAcc& rhs);
205  IMETHOD friend TwistAcc operator/(const TwistAcc& lhs,double rhs);
206 
207  IMETHOD friend TwistAcc operator*(const TwistAcc& lhs,const doubleAcc& rhs);
208  IMETHOD friend TwistAcc operator*(const doubleAcc& lhs,const TwistAcc& rhs);
209  IMETHOD friend TwistAcc operator/(const TwistAcc& lhs,const doubleAcc& rhs);
210 
211  IMETHOD friend TwistAcc operator+(const TwistAcc& lhs,const TwistAcc& rhs);
212  IMETHOD friend TwistAcc operator-(const TwistAcc& lhs,const TwistAcc& rhs);
213  IMETHOD friend TwistAcc operator-(const TwistAcc& arg);
214 
215  IMETHOD friend void SetToZero(TwistAcc& v);
216 
217  static IMETHOD TwistAcc Zero();
218 
219  IMETHOD void ReverseSign();
220 
221  IMETHOD TwistAcc RefPoint(const VectorAcc& v_base_AB);
222  // Changes the reference point of the RTwist.
223  // The RVector v_base_AB is expressed in the same base as the RTwist
224  // The RVector v_base_AB is a RVector from the old point to
225  // the new point.
226  // Complexity : 6M+6A
227 
228  IMETHOD friend bool Equal(const TwistAcc& a,const TwistAcc& b,double eps);
229  IMETHOD friend bool Equal(const Twist& a,const TwistAcc& b,double eps);
230  IMETHOD friend bool Equal(const TwistAcc& a,const Twist& b,double eps);
231 
232 
233  IMETHOD Twist GetTwist() const;
234  IMETHOD Twist GetTwistDot() const;
235 
236  friend class RotationAcc;
237  friend class FrameAcc;
238 
239 };
240 
241 
242 IMETHOD bool Equal(const VectorAcc&, const VectorAcc&, double = epsilon);
243 IMETHOD bool Equal(const Vector&, const VectorAcc&, double = epsilon);
244 IMETHOD bool Equal(const VectorAcc&, const Vector&, double = epsilon);
245 IMETHOD bool Equal(const RotationAcc&, const RotationAcc&, double = epsilon);
246 IMETHOD bool Equal(const Rotation&, const RotationAcc&, double = epsilon);
247 IMETHOD bool Equal(const RotationAcc&, const Rotation&, double = epsilon);
248 IMETHOD bool Equal(const FrameAcc&, const FrameAcc&, double = epsilon);
249 IMETHOD bool Equal(const Frame&, const FrameAcc&, double = epsilon);
250 IMETHOD bool Equal(const FrameAcc&, const Frame&, double = epsilon);
251 IMETHOD bool Equal(const TwistAcc&, const TwistAcc&, double = epsilon);
252 IMETHOD bool Equal(const Twist&, const TwistAcc&, double = epsilon);
253 IMETHOD bool Equal(const TwistAcc&, const Twist&, double = epsilon);
254 
255 
256 #ifdef KDL_INLINE
257 #include "frameacc.inl"
258 #endif
259 
260 }
261 
262 
263 
264 
265 
266 #endif
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble GLdouble r _GL_VOID_RET _GL_VOID GLfloat GLfloat r _GL_VOID_RET _GL_VOID GLint GLint r _GL_VOID_RET _GL_VOID GLshort GLshort r _GL_VOID_RET _GL_VOID GLdouble GLdouble r
ATTR_WARN_UNUSED_RESULT const BMVert * v
IMETHOD FrameAcc & operator=(const FrameAcc &arg)
Definition: frameacc.inl:336
IMETHOD Twist GetTwist() const
Definition: frameacc.inl:407
IMETHOD FrameAcc Inverse() const
Definition: frameacc.inl:379
IMETHOD friend bool Equal(const FrameAcc &r1, const Frame &r2, double eps)
FrameAcc(const Frame &T_)
Definition: frameacc.hpp:153
static IMETHOD FrameAcc Identity()
Definition: frameacc.inl:342
RotationAcc M
Rotation,angular velocity, and angular acceleration of frame.
Definition: frameacc.hpp:149
IMETHOD Frame GetFrame() const
Definition: frameacc.inl:402
IMETHOD friend bool Equal(const FrameAcc &r1, const FrameAcc &r2, double eps)
IMETHOD VectorAcc operator*(const VectorAcc &arg) const
Definition: frameacc.inl:360
VectorAcc p
Translation, velocity and acceleration of origin.
Definition: frameacc.hpp:150
IMETHOD Twist GetAccTwist() const
Definition: frameacc.inl:412
FrameAcc(const RotationAcc &_M, const VectorAcc &_p)
Definition: frameacc.hpp:156
FrameAcc(const Frame &T_, const Twist &_t, const Twist &_dt)
Definition: frameacc.hpp:154
IMETHOD friend bool Equal(const Frame &r1, const FrameAcc &r2, double eps)
represents a frame transformation in 3D space (rotation + translation)
Definition: frames.hpp:526
RotationAcc(const Rotation &R_, const Vector &_w, const Vector &_dw)
Definition: frameacc.hpp:100
IMETHOD RotationAcc Inverse() const
Definition: frameacc.inl:222
static IMETHOD RotationAcc Identity()
Definition: frameacc.inl:218
RotationAcc(const Rotation &R_)
Definition: frameacc.hpp:99
IMETHOD RotationAcc & operator=(const RotationAcc &arg)
Definition: frameacc.inl:205
Vector dw
angular acceration vector
Definition: frameacc.hpp:96
Vector w
angular velocity vector
Definition: frameacc.hpp:95
IMETHOD friend bool Equal(const Rotation &r1, const RotationAcc &r2, double eps)
IMETHOD friend bool Equal(const RotationAcc &r1, const Rotation &r2, double eps)
IMETHOD friend bool Equal(const RotationAcc &r1, const RotationAcc &r2, double eps)
IMETHOD VectorAcc operator*(const VectorAcc &arg) const
Definition: frameacc.inl:243
Rotation R
rotation matrix
Definition: frameacc.hpp:94
represents rotations in 3 dimensional space.
Definition: frames.hpp:299
IMETHOD friend bool Equal(const Twist &a, const TwistAcc &b, double eps)
IMETHOD friend TwistAcc operator+(const TwistAcc &lhs, const TwistAcc &rhs)
IMETHOD friend TwistAcc operator*(const doubleAcc &lhs, const TwistAcc &rhs)
IMETHOD friend TwistAcc operator-(const TwistAcc &lhs, const TwistAcc &rhs)
IMETHOD friend TwistAcc operator-(const TwistAcc &arg)
VectorAcc rot
rotational velocity and its 1st and 2nd derivative
Definition: frameacc.hpp:194
IMETHOD friend bool Equal(const TwistAcc &a, const TwistAcc &b, double eps)
IMETHOD TwistAcc & operator+=(const TwistAcc &arg)
Definition: frameacc.inl:461
IMETHOD friend TwistAcc operator*(const TwistAcc &lhs, double rhs)
IMETHOD friend void SetToZero(TwistAcc &v)
IMETHOD void ReverseSign()
Definition: frameacc.inl:438
IMETHOD friend TwistAcc operator/(const TwistAcc &lhs, const doubleAcc &rhs)
IMETHOD friend TwistAcc operator*(double lhs, const TwistAcc &rhs)
static IMETHOD TwistAcc Zero()
Definition: frameacc.inl:432
IMETHOD friend bool Equal(const TwistAcc &a, const Twist &b, double eps)
IMETHOD TwistAcc & operator-=(const TwistAcc &arg)
Definition: frameacc.inl:454
IMETHOD Twist GetTwistDot() const
Definition: frameacc.inl:580
IMETHOD TwistAcc RefPoint(const VectorAcc &v_base_AB)
Definition: frameacc.inl:444
IMETHOD Twist GetTwist() const
Definition: frameacc.inl:576
TwistAcc(const VectorAcc &_vel, const VectorAcc &_rot)
Definition: frameacc.hpp:198
VectorAcc vel
translational velocity and its 1st and 2nd derivative
Definition: frameacc.hpp:193
IMETHOD friend TwistAcc operator*(const TwistAcc &lhs, const doubleAcc &rhs)
IMETHOD friend TwistAcc operator/(const TwistAcc &lhs, double rhs)
represents both translational and rotational velocities.
Definition: frames.hpp:679
IMETHOD friend bool Equal(const VectorAcc &r1, const Vector &r2, double eps)
Vector p
position vector
Definition: frameacc.hpp:45
IMETHOD friend VectorAcc operator/(const VectorAcc &r1, double r2)
VectorAcc(const Vector &_p)
Definition: frameacc.hpp:50
IMETHOD friend VectorAcc operator+(const VectorAcc &r1, const VectorAcc &r2)
IMETHOD friend doubleAcc dot(const Vector &lhs, const VectorAcc &rhs)
IMETHOD friend VectorAcc operator*(const Rotation &R, const VectorAcc &x)
IMETHOD friend doubleAcc dot(const VectorAcc &lhs, const Vector &rhs)
Vector dv
acceleration vector
Definition: frameacc.hpp:47
IMETHOD VectorAcc & operator-=(const VectorAcc &arg)
Definition: frameacc.inl:110
Vector v
velocity vector
Definition: frameacc.hpp:46
IMETHOD VectorAcc & operator+=(const VectorAcc &arg)
Definition: frameacc.inl:104
IMETHOD friend bool Equal(const VectorAcc &r1, const VectorAcc &r2, double eps)
IMETHOD void ReverseSign()
Definition: frameacc.inl:121
IMETHOD doubleAcc Norm()
Definition: frameacc.inl:127
IMETHOD friend bool Equal(const Vector &r1, const VectorAcc &r2, double eps)
VectorAcc(const Vector &_p, const Vector &_v)
Definition: frameacc.hpp:51
IMETHOD friend doubleAcc dot(const VectorAcc &lhs, const VectorAcc &rhs)
IMETHOD friend VectorAcc operator-(const VectorAcc &r1, const VectorAcc &r2)
VectorAcc(const Vector &_p, const Vector &_v, const Vector &_dv)
Definition: frameacc.hpp:52
IMETHOD VectorAcc & operator=(const VectorAcc &arg)
Definition: frameacc.inl:90
static IMETHOD VectorAcc Zero()
Definition: frameacc.inl:117
IMETHOD friend VectorAcc operator*(const VectorAcc &r1, const VectorAcc &r2)
A concrete implementation of a 3 dimensional vector class.
Definition: frames.hpp:143
#define rot(x, k)
#define R
static unsigned a[3]
Definition: RandGen.cpp:78
Definition: chain.cpp:27
Rall2d< double, double, double > doubleAcc
Definition: frameacc.hpp:38
double epsilon
default precision while comparing with Equal(..,..) functions. Initialized at 0.0000001.
Definition: utility.cpp:22
IMETHOD bool Equal(const VectorAcc &, const VectorAcc &, double=epsilon)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
const btScalar eps
Definition: poly34.cpp:11
#define IMETHOD
Definition: utility.h:43