51 IMETHOD void Vector::GetValue(
double* xyz)
const
68 tmp.data[0] = lhs.data[0]+rhs.data[0];
69 tmp.data[1] = lhs.data[1]+rhs.data[1];
70 tmp.data[2] = lhs.data[2]+rhs.data[2];
77 tmp.data[0] = lhs.data[0]-rhs.data[0];
78 tmp.data[1] = lhs.data[1]-rhs.data[1];
79 tmp.data[2] = lhs.data[2]-rhs.data[2];
94 tmp.data[0] = lhs.data[0]*rhs;
95 tmp.data[1] = lhs.data[1]*rhs;
96 tmp.data[2] = lhs.data[2]*rhs;
103 tmp.data[0] = lhs*rhs.data[0];
104 tmp.data[1] = lhs*rhs.data[1];
105 tmp.data[2] = lhs*rhs.data[2];
112 tmp.data[0] = lhs.data[0]/rhs;
113 tmp.data[1] = lhs.data[1]/rhs;
114 tmp.data[2] = lhs.data[2]/rhs;
122 tmp.data[0] = lhs.data[1]*rhs.data[2]-lhs.data[2]*rhs.data[1];
123 tmp.data[1] = lhs.data[2]*rhs.data[0]-lhs.data[0]*rhs.data[2];
124 tmp.data[2] = lhs.data[0]*rhs.data[1]-lhs.data[1]*rhs.data[0];
173 return (
l<
eps) ? Vector(0.0,0.0,0.0) :
a/
l;
207 return Wrench(Vector::Zero(),Vector::Zero());
211 void Wrench::ReverseSign()
213 torque.ReverseSign();
223 return Wrench(this->force,
224 this->torque+this->force*v_base_AB
264 return Wrench(lhs.force*rhs,lhs.torque*rhs);
269 return Wrench(lhs*rhs.force,lhs*rhs.torque);
274 return Wrench(lhs.force/rhs,lhs.torque/rhs);
280 return Wrench(lhs.force+rhs.force,lhs.torque+rhs.torque);
285 return Wrench(lhs.force-rhs.force,lhs.torque-rhs.torque);
291 return Wrench(-arg.force,-arg.torque);
312 return Twist(Vector::Zero(),Vector::Zero());
316 void Twist::ReverseSign()
329 return Twist(this->vel+this->
rot*v_base_AB,this->
rot);
367 return Twist(lhs.vel*rhs,lhs.rot*rhs);
372 return Twist(lhs*rhs.vel,lhs*rhs.rot);
377 return Twist(lhs.vel/rhs,lhs.rot/rhs);
383 return Twist(lhs.vel+rhs.vel,lhs.rot+rhs.rot);
388 return Twist(lhs.vel-rhs.vel,lhs.rot-rhs.rot);
394 return Twist(-arg.vel,-arg.rot);
405 M = Rotation::Identity();
418 return Frame(lhs.M*rhs.M,lhs.M*rhs.p+lhs.p);
428 return M.Inverse(arg-p);
433 return Frame(
M.Inverse(),-
M.Inverse(p));
461 tmp.data[0]=-arg.data[0];
462 tmp.data[1]=-arg.data[1];
463 tmp.data[2]=-arg.data[2];
508 double Xy,
double Yy,
double Zy,
509 double Xz,
double Yz,
double Zz)
545 return Twist((*
this)*arg.vel,(*
this)*arg.rot);
553 return Wrench((*
this)*arg.force,(*
this)*arg.torque);
565 x1 = cs* (*this)(0,1) + sn* (*
this)(0,2);
566 x2 = cs* (*this)(1,1) + sn* (*
this)(1,2);
567 x3 = cs* (*this)(2,1) + sn* (*
this)(2,2);
568 (*this)(0,2) = -sn* (*
this)(0,1) + cs* (*
this)(0,2);
569 (*this)(1,2) = -sn* (*
this)(1,1) + cs* (*
this)(1,2);
570 (*this)(2,2) = -sn* (*
this)(2,1) + cs* (*
this)(2,2);
581 x1 = cs* (*this)(0,0) - sn* (*
this)(0,2);
582 x2 = cs* (*this)(1,0) - sn* (*
this)(1,2);
583 x3 = cs* (*this)(2,0) - sn* (*
this)(2,2);
584 (*this)(0,2) = sn* (*
this)(0,0) + cs* (*
this)(0,2);
585 (*this)(1,2) = sn* (*
this)(1,0) + cs* (*
this)(1,2);
586 (*this)(2,2) = sn* (*
this)(2,0) + cs* (*
this)(2,2);
597 x1 = cs* (*this)(0,0) + sn* (*
this)(0,1);
598 x2 = cs* (*this)(1,0) + sn* (*
this)(1,1);
599 x3 = cs* (*this)(2,0) + sn* (*
this)(2,1);
600 (*this)(0,1) = -sn* (*
this)(0,0) + cs* (*
this)(0,1);
601 (*this)(1,1) = -sn* (*
this)(1,0) + cs* (*
this)(1,1);
602 (*this)(2,1) = -sn* (*
this)(2,0) + cs* (*
this)(2,1);
612 return Rotation(1,0,0,0,cs,-sn,0,sn,cs);
617 return Rotation(cs,0,sn,0,1,0,-sn,0,cs);
622 return Rotation(cs,-sn,0,sn,cs,0,0,0,1);
630 double n = t_this.
rot.
Norm()/samplefrequency;
632 p +=
M*(t_this.
vel/samplefrequency);
636 t_this.
vel/samplefrequency
658 data[0] = *oglmat++;
data[3] = *oglmat++;
data[6] = *oglmat++; oglmat++;
659 data[1] = *oglmat++;
data[4] = *oglmat++;
data[7] = *oglmat++; oglmat++;
660 data[2] = *oglmat++;
data[5] = *oglmat++;
data[8] = *oglmat;
669 *oglmat++ = 0.f; *oglmat++ = 0.f; *oglmat++ = 0.f; *oglmat = 1.f;
727 p.
data[0] = oglmat[12];
728 p.
data[1] = oglmat[13];
729 p.
data[2] = oglmat[14];
736 oglmat[13] = (
float)
p.
data[1];
746 tmp_XY = F_someframe_XY*(tmp_XY);
760 data[0] = arg.data[0];
761 data[1] = arg.data[1];
771 data[0]=
xy[0];data[1]=
xy[1];
776 data[0]=
xy[0];data[1]=
xy[1];
781 data[0] = arg.data[0];
782 data[1] = arg.data[1];
788 xy[0]=data[0];
xy[1]=data[1];
793 return Vector2(lhs.data[0]+rhs.data[0],lhs.data[1]+rhs.data[1]);
798 return Vector2(lhs.data[0]-rhs.data[0],lhs.data[1]-rhs.data[1]);
803 return Vector2(lhs.data[0]*rhs,lhs.data[1]*rhs);
808 return Vector2(lhs*rhs.data[0],lhs*rhs.data[1]);
813 return Vector2(lhs.data[0]/rhs,lhs.data[1]/rhs);
818 data[0]+=arg.data[0];
819 data[1]+=arg.data[1];
825 data[0]-=arg.data[0];
826 data[1]-=arg.data[1];
853 return Vector2(-arg.data[0],-arg.data[1]);
893 return Vector2(
v.data[0]*c-
v.data[1]*s,
v.data[0]*s+
v.data[1]*c);
907 return Rotation2(lhs.c*rhs.c-lhs.s*rhs.s,lhs.s*rhs.c+lhs.c*rhs.s);
919 return Vector2(
v.data[0]*c+
v.data[1]*s,-
v.data[0]*s+
v.data[1]*c);
968 return Frame2(lhs.M*rhs.M,lhs.M*rhs.p+lhs.p);
1049 return rhs(0)*lhs(0)+rhs(1)*lhs(1)+rhs(2)*lhs(2);
1053 return dot(lhs.vel,rhs.force)+
dot(lhs.rot,rhs.torque);
1057 return dot(lhs.vel,rhs.force)+
dot(lhs.rot,rhs.torque);
1148 Vector rotvec = axis_a_b;
1149 double angle = rotvec.Normalize(1E-10);
1154 ct + vt*rotvec(0)*rotvec(0),
1155 -rotvec(2)*
st + vt*rotvec(0)*rotvec(1),
1156 rotvec(1)*
st + vt*rotvec(0)*rotvec(2),
1157 rotvec(2)*
st + vt*rotvec(1)*rotvec(0),
1158 ct + vt*rotvec(1)*rotvec(1),
1159 -rotvec(0)*
st + vt*rotvec(1)*rotvec(2),
1160 -rotvec(1)*
st + vt*rotvec(2)*rotvec(0),
1161 rotvec(0)*
st + vt*rotvec(2)*rotvec(1),
1162 ct + vt*rotvec(2)*rotvec(2)
1202 IMETHOD Vector
diff(
const Rotation& R_a_b1,
const Rotation& R_a_b2,
double dt) {
1203 Rotation R_b1_b2(R_a_b1.Inverse()*R_a_b2);
1204 return R_a_b1 * R_b1_b2.GetRot() / dt;
1208 diff(F_a_b1.p,F_a_b2.p,dt),
1209 diff(F_a_b1.M,F_a_b2.M,dt)
1213 return Twist(
diff(
a.vel,
b.vel,dt),
diff(
a.rot,
b.rot,dt));
1218 diff(
a.force,
b.force,dt),
1219 diff(
a.torque,
b.torque,dt)
1229 return a*
Rot(
a.Inverse(da)*dt);
1344 #ifdef KDL_USE_EQUAL
1347 return (
a.p ==
b.p &&
1357 #ifdef KDL_USE_EQUAL
1360 return (
a.data[0]==
b.data[0]&&
1361 a.data[1]==
b.data[1]&&
1362 a.data[2]==
b.data[2] );
1371 #ifdef KDL_USE_EQUAL
1374 return (
a.rot==
b.rot &&
1384 #ifdef KDL_USE_EQUAL
1387 return (
a.force==
b.force &&
1388 a.torque==
b.torque );
typedef float(TangentPoint)[2]
_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 z
_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 y
_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 x2
__forceinline avxi & operator-=(avxi &a, const avxi &b)
__forceinline avxi & operator+=(avxi &a, const avxi &b)
Assignment Operators.
__forceinline avxi & operator*=(avxi &a, const avxi &b)
ATTR_WARN_UNUSED_RESULT const BMLoop * l
ATTR_WARN_UNUSED_RESULT const BMVert * v
btGeneric6DofConstraint & operator=(btGeneric6DofConstraint &other)
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
double operator()(int i, int j)
Vector2 operator*(const Vector2 &arg)
Frame2 & operator=(const Frame2 &arg)
Rotation2 M
Orientation of the Frame.
Vector2 p
origine of the Frame
represents a frame transformation in 3D space (rotation + translation)
Rotation M
Orientation of the Frame.
void setValue(float *oglmat)
void Integrate(const Twist &t_this, double frequency)
void getValue(float *oglmat) const
Vector p
origine of the Frame
Frame Inverse() const
Gives back inverse transformation of a Frame.
double operator()(int i, int j)
double GetRot() const
Gets the angle (in radians)
Vector2 operator*(const Vector2 &v) const
double operator()(int i, int j) const
Access to elements 0..1,0..1, bounds are checked when NDEBUG is not set.
static Rotation2 Rot(double angle)
The Rot... static functions give the value of the appropriate rotation matrix bac.
Rotation2()
Default constructor does NOT initialise to Zero().
static Rotation2 Identity()
Rotation2 Inverse() const
void SetRot(double angle)
The SetRot.. functions set the value of *this to the appropriate rotation matrix.
Rotation2 & operator=(const Rotation2 &arg)
represents rotations in 3 dimensional space.
void DoRotZ(double angle)
Rotation Inverse() const
Gives back the inverse rotation matrix of *this.
Rotation & operator=(const Rotation &arg)
Vector operator*(const Vector &v) const
static Rotation EulerZYX(double Alfa, double Beta, double Gamma)
static Rotation Identity()
Gives back an identity rotaton matrix.
static Rotation RotX(double angle)
The Rot... static functions give the value of the appropriate rotation matrix back.
void setValue(float *oglmat)
static Rotation Rot(const Vector &rotaxis, double angle)
void DoRotX(double angle)
static Rotation RotY(double angle)
The Rot... static functions give the value of the appropriate rotation matrix back.
void getValue(float *oglmat) const
void SetInverse()
Sets the value of *this to its inverse.
static Rotation RotZ(double angle)
The Rot... static functions give the value of the appropriate rotation matrix back.
double & operator()(int i, int j)
Access to elements 0..2,0..2, bounds are checked when NDEBUG is not set.
void DoRotY(double angle)
represents both translational and rotational velocities.
Vector rot
The rotational velocity of that point.
Vector vel
The velocity of that point.
void Set3DZX(const Vector &v)
projects v in its ZX plane, and sets *this to these values
Vector2 & operator=(const Vector2 &arg)
void GetValue(double *xy) const
store vector components in array
void Set3DXY(const Vector &v)
projects v in its XY plane, and sets *this to these values
Vector2()
Does not initialise to Zero().
Vector2 & operator+=(const Vector2 &arg)
void Set3DYZ(const Vector &v)
projects v in its YZ plane, and sets *this to these values
Vector2 & operator-=(const Vector2 &arg)
double operator()(int index) const
Access to elements, range checked when NDEBUG is not set, from 0..1.
void Set3DPlane(const Frame &F_someframe_XY, const Vector &v_someframe)
A concrete implementation of a 3 dimensional vector class.
void Set2DPlane(const Frame &F_someframe_XY, const Vector2 &v_XY)
a 3D vector where the 2D vector v_XY is put in the XY plane of the frame F_someframe_XY.
void ReverseSign()
Reverses the sign of the Vector object itself.
void Set2DZX(const Vector2 &v)
a 3D vector where the 2D vector v is put in the ZX plane
void Set2DXY(const Vector2 &v)
a 3D vector where the 2D vector v is put in the XY plane
void Set2DYZ(const Vector2 &v)
a 3D vector where the 2D vector v is put in the YZ plane
represents both translational and rotational acceleration.
Vector force
Force that is applied at the origin of the current ref frame.
Vector torque
Torque that is applied at the origin of the current ref frame.
Vector operator/(const Vector &lhs, double rhs)
IMETHOD Vector operator-(const Vector &lhs, const Vector &rhs)
IMETHOD bool operator!=(const Frame &a, const Frame &b)
IMETHOD double dot(const Vector &lhs, const Vector &rhs)
IMETHOD Vector operator+(const Vector &lhs, const Vector &rhs)
Vector operator*(const Vector &lhs, double rhs)
IMETHOD Vector Normalize(const Vector &a, double eps)
IMETHOD Rotation Rot(const Vector &axis_a_b)
IMETHOD Vector diff(const Vector &a, const Vector &b, double dt=1)
bool operator==(const Rotation &a, const Rotation &b)
INLINE Rall1d< T, V, S > cos(const Rall1d< T, V, S > &arg)
INLINE Rall1d< T, V, S > operator-(const Rall1d< T, V, S > &lhs, const Rall1d< T, V, S > &rhs)
IMETHOD void random(doubleVel &F)
void SetToZero(Jacobian &jac)
IMETHOD Vector addDelta(const Vector &a, const Vector &da, double dt=1)
Rotation operator*(const Rotation &lhs, const Rotation &rhs)
IMETHOD void posrandom(doubleVel &F)
INLINE Rall1d< T, V, S > operator+(const Rall1d< T, V, S > &lhs, const Rall1d< T, V, S > &rhs)
INLINE Rall1d< T, V, S > operator/(const Rall1d< T, V, S > &lhs, const Rall1d< T, V, S > &rhs)
double epsilon
default precision while comparing with Equal(..,..) functions. Initialized at 0.0000001.
INLINE Rall1d< T, V, S > sin(const Rall1d< T, V, S > &arg)
IMETHOD bool Equal(const VectorAcc &, const VectorAcc &, double=epsilon)
INLINE Rall1d< T, V, S > atan2(const Rall1d< T, V, S > &y, const Rall1d< T, V, S > &x)
static const pxr::TfToken st("st", pxr::TfToken::Immortal)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
ccl_device_inline float beta(float x, float y)
CCL_NAMESPACE_BEGIN struct Window V