22 VectorAcc
operator + (
const VectorAcc& r1,
const VectorAcc& r2) {
23 return VectorAcc(r1.p+r2.p,r1.v+r2.v,r1.dv+r2.dv);
26 VectorAcc
operator - (
const VectorAcc& r1,
const VectorAcc& r2) {
27 return VectorAcc(r1.p-r2.p, r1.v-r2.v, r1.dv-r2.dv);
29 VectorAcc
operator + (
const Vector& r1,
const VectorAcc& r2) {
30 return VectorAcc(r1+r2.p,r2.v,r2.dv);
33 VectorAcc
operator - (
const Vector& r1,
const VectorAcc& r2) {
34 return VectorAcc(r1-r2.p, -r2.v, -r2.dv);
36 VectorAcc
operator + (
const VectorAcc& r1,
const Vector& r2) {
37 return VectorAcc(r1.p+r2,r1.v,r1.dv);
40 VectorAcc
operator - (
const VectorAcc& r1,
const Vector& r2) {
41 return VectorAcc(r1.p-r2, r1.v, r1.dv);
46 return VectorAcc(-
r.p,-
r.v,-
r.dv);
50 VectorAcc
operator * (
const VectorAcc& r1,
const VectorAcc& r2) {
51 return VectorAcc(r1.p*r2.p,
53 r1.dv*r2.p+2*r1.v*r2.v+r1.p*r2.dv
57 VectorAcc
operator * (
const VectorAcc& r1,
const Vector& r2) {
58 return VectorAcc(r1.p*r2, r1.v*r2, r1.dv*r2 );
61 VectorAcc
operator * (
const Vector& r1,
const VectorAcc& r2) {
62 return VectorAcc(r1*r2.p, r1*r2.v, r1*r2.dv );
69 return VectorAcc(r1*r2.p, r1*r2.v, r1*r2.dv );
73 return VectorAcc(r1.p*r2, r1.v*r2, r1.dv*r2 );
77 return VectorAcc(r1.t*r2.p,
78 r1.t*r2.v + r1.d*r2.p,
79 r1.t*r2.dv + 2*r1.d*r2.v + r1.dd*r2.p
84 return VectorAcc(r1.t*r2.p,
85 r1.t*r2.v + r1.d*r2.p,
86 r1.t*r2.dv + 2*r1.d*r2.v + r1.dd*r2.p
118 return VectorAcc(Vector::Zero(),Vector::Zero(),Vector::Zero());
121 void VectorAcc::ReverseSign() {
137 dot(lhs.p,rhs.v)+
dot(lhs.v,rhs.p),
138 dot(lhs.p,rhs.dv)+2*
dot(lhs.v,rhs.v)+
dot(lhs.dv,rhs.p)
157 bool Equal(
const VectorAcc& r1,
const VectorAcc& r2,
double eps) {
164 bool Equal(
const Vector& r1,
const VectorAcc& r2,
double eps) {
171 bool Equal(
const VectorAcc& r1,
const Vector& r2,
double eps) {
190 RotationAcc
operator* (
const RotationAcc& r1,
const RotationAcc& r2) {
191 return RotationAcc( r1.R * r2.R,
193 r1.dw + r1.w*(r1.R*r2.w) + r1.R*r2.dw
197 RotationAcc
operator* (
const Rotation& r1,
const RotationAcc& r2) {
198 return RotationAcc( r1*r2.R, r1*r2.w, r1*r2.dw);
201 RotationAcc
operator* (
const RotationAcc& r1,
const Rotation& r2) {
202 return RotationAcc( r1.R*r2, r1.w, r1.dw );
219 return RotationAcc(Rotation::Identity(),Vector::Zero(),Vector::Zero());
228 tmp.
p =
R.Inverse(arg.
p);
229 tmp.
v =
R.Inverse(arg.
v -
w * arg.
p);
230 tmp.
dv =
R.Inverse(arg.
dv - dw*arg.
p -
w*(arg.
v+
R*tmp.
v));
236 tmp.
p =
R.Inverse(arg);
237 tmp.
v =
R.Inverse(-
w*arg);
238 tmp.
dv =
R.Inverse(-dw*arg -
w*(
R*tmp.
v));
247 tmp.
v =
w*tmp.
p + tmp.
dv;
248 tmp.
dv = dw*tmp.
p +
w*(tmp.
v + tmp.
dv) +
R*arg.
dv;
253 return VectorAcc(
R*
x.p,
R*
x.v,
R*
x.dv);
260 tmp.
dv = dw*tmp.
p +
w*tmp.
v;
321 bool Equal(
const RotationAcc& r1,
const RotationAcc& r2,
double eps) {
324 bool Equal(
const Rotation& r1,
const RotationAcc& r2,
double eps) {
328 bool Equal(
const RotationAcc& r1,
const Rotation& r2,
double eps) {
343 return FrameAcc(RotationAcc::Identity(),VectorAcc::Zero());
349 return FrameAcc(lhs.M*rhs.M,lhs.M*rhs.p+lhs.p);
353 return FrameAcc(lhs.M*rhs.M,lhs.M*rhs.p+lhs.p);
357 return FrameAcc(lhs.M*rhs.M,lhs.M*rhs.p+lhs.p);
371 return M.Inverse(arg-p);
376 return M.Inverse(arg-p);
391 bool Equal(
const FrameAcc& r1,
const FrameAcc& r2,
double eps) {
412 Twist FrameAcc::GetAccTwist()
const {
434 return TwistAcc(VectorAcc::Zero(),VectorAcc::Zero());
438 void TwistAcc::ReverseSign()
471 return TwistAcc(lhs.vel*rhs,lhs.rot*rhs);
476 return TwistAcc(lhs*rhs.vel,lhs*rhs.rot);
481 return TwistAcc(lhs.vel/rhs,lhs.rot/rhs);
487 return TwistAcc(lhs.vel*rhs,lhs.rot*rhs);
492 return TwistAcc(lhs*rhs.vel,lhs*rhs.rot);
497 return TwistAcc(lhs.vel/rhs,lhs.rot/rhs);
503 TwistAcc
operator+(
const TwistAcc& lhs,
const TwistAcc& rhs)
505 return TwistAcc(lhs.vel+rhs.vel,lhs.rot+rhs.rot);
508 TwistAcc
operator-(
const TwistAcc& lhs,
const TwistAcc& rhs)
510 return TwistAcc(lhs.vel-rhs.vel,lhs.rot-rhs.rot);
516 return TwistAcc(-arg.vel,-arg.rot);
580 Twist TwistAcc::GetTwistDot()
const {
_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
__forceinline avxi & operator-=(avxi &a, const avxi &b)
__forceinline avxi & operator+=(avxi &a, const avxi &b)
Assignment Operators.
ATTR_WARN_UNUSED_RESULT const BMVert * v
btGeneric6DofConstraint & operator=(btGeneric6DofConstraint &other)
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
RotationAcc M
Rotation,angular velocity, and angular acceleration of frame.
VectorAcc p
Translation, velocity and acceleration of origin.
represents a frame transformation in 3D space (rotation + translation)
Rotation M
Orientation of the Frame.
Vector p
origine of the Frame
Vector dw
angular acceration vector
Vector w
angular velocity vector
Rotation R
rotation matrix
represents rotations in 3 dimensional space.
VectorAcc rot
rotational velocity and its 1st and 2nd derivative
VectorAcc vel
translational velocity and its 1st and 2nd derivative
represents both translational and rotational velocities.
Vector rot
The rotational velocity of that point.
Vector vel
The velocity of that point.
Vector dv
acceleration vector
A concrete implementation of a 3 dimensional vector class.
bool Equal(const VectorAcc &r1, const VectorAcc &r2, double eps)
VectorAcc operator*(const VectorAcc &r1, const VectorAcc &r2)
VectorAcc operator-(const VectorAcc &r1, const VectorAcc &r2)
VectorAcc operator/(const VectorAcc &r1, double r2)
doubleAcc dot(const VectorAcc &lhs, const VectorAcc &rhs)
VectorAcc operator+(const VectorAcc &r1, const VectorAcc &r2)
INLINE S Norm(const Rall1d< T, V, S > &value)
Rall2d< double, double, double > doubleAcc
static const pxr::TfToken b("b", pxr::TfToken::Immortal)