se_core::Tuple4 Class Reference

A generic 4 element tuple that is represented by x,y,z and w coordinates. More...

#include <Tuple4.hpp>

Inheritance diagram for se_core::Tuple4:

se_core::Quat4 se_core::Vector4 se_core::Point4 List of all members.

Public Types

typedef coor_t value_type
 the type for values
typedef short size_type
 the type for index
enum  { DIMENSION = 4 }
 dimension More...

Public Member Functions

 Tuple4 (coor_t xvalue, coor_t yvalue, coor_t zvalue, coor_t wvalue)
 Constructs and initializes a Tuple4 from the specified xyzw coordinates.
 Tuple4 (const coor_t t[])
 Constructs and initializes a Tuple4 from the specified array.
 Tuple4 ()
 Constructs a Tuple4.
void set (coor_t xvalue, coor_t yvalue, coor_t zvalue, coor_t wvalue)
 Sets the value of this tuple to the specified xyzw coordinates.
void set (const coor_t t[])
 Sets the value of this tuple from the 4 values specified in the array.
void set (const Tuple4 &t1)
 Sets the value of this tuple to the value of tuple t1.
void get (coor_t t[]) const
 Copies the value of the elements of this tuple into the array t[].
void get (Tuple4 *t) const
 Gets the value of this tuple and copies the values into the Tuple4.
void add (const Tuple4 &t1, const Tuple4 &t2)
 Sets the value of this tuple to the vector sum of tuples t1 and t2.
void add (const Tuple4 &t1)
 Sets the value of this tuple to the vector sum of itself and tuple t1.
void sub (const Tuple4 &t1, const Tuple4 &t2)
 Sets the value of this tuple to the vector difference of tuple t1 and t2 (this = t1 - t2).
void sub (const Tuple4 &t1)
 Sets the value of this tuple to the vector difference of itself and tuple t1 (this = this - t1).
void negate (const Tuple4 &t1)
 Sets the value of this tuple to the negation of tuple t1.
void negate ()
 Negates the value of this vector in place.
void scale (scale_t s, const Tuple4 &t1)
 Sets the value of this tuple to the scalar multiplication of tuple t1.
void scale (scale_t s)
 Sets the value of this tuple to the scalar multiplication of itself.
void scaleAdd (scale_t s, const Tuple4 &t1, const Tuple4 &t2)
 Sets the value of this tuple to the scalar multiplication of tuple t1 and then adds tuple t2 (this = s*t1 + t2).
void scaleAdd (scale_t s, const Tuple4 &t1)
 Sets the value of this tuple to the scalar multiplication of itself and then adds tuple t1 (this = s*this + t1).
bool equals (const Tuple4 &t1) const
 Returns true if all of the data members of Tuple4 t1 are equal to the corresponding data members in this.
bool isNan () const
bool epsilonEquals (const Tuple4 &t1, coor_t epsilon) const
 Returns true if the L-infinite distance between this tuple and tuple t1 is less than or equal to the epsilon parameter, otherwise returns false.
void clamp (coor_t min, coor_t max, const Tuple4 &t)
 Clamps the tuple parameter to the range [low, high] and places the values into this tuple.
void clampMin (coor_t min, const Tuple4 &t)
 Clamps the minimum value of the tuple parameter to the min parameter and places the values into this tuple.
void clampMax (coor_t max, const Tuple4 &t)
 Clamps the maximum value of the tuple parameter to the max parameter and places the values into this tuple.
void absolute (const Tuple4 &t)
 Sets each component of the tuple parameter to its absolute value and places the modified values into this tuple.
void clamp (coor_t min, coor_t max)
 Clamps this tuple to the range [low, high].
void clampMin (coor_t min)
 Clamps the minimum value of this tuple to the min parameter.
void clampMax (coor_t max)
 Clamps the maximum value of this tuple to the max parameter.
void absolute ()
 Sets each component of this tuple to its absolute value.
void interpolate (const Tuple4 &t1, const Tuple4 &t2, scale_t alpha)
 Linearly interpolates between tuples t1 and t2 and places the result into this tuple: this = (1-alpha)*t1 + alpha*t2.
void interpolate (const Tuple4 &t1, scale_t alpha)
 Linearly interpolates between this tuple and tuple t1 and places the result into this tuple: this = (1-alpha)*this + alpha*t1.
char * toString (char *buffer) const
 Returns a string that contains the values of this Tuple4.
const char * toLog () const
bool operator== (const Tuple4 &t1) const
coor_t operator[] (size_type index) const
coor_toperator[] (size_type index)
Tuple4operator= (const Tuple4 &t1)
Tuple4operator+= (const Tuple4 &t1)
Tuple4operator-= (const Tuple4 &t1)
Tuple4operator *= (scale_t s)
Tuple4 operator+ (const Tuple4 &t1) const
Tuple4 operator- (const Tuple4 &t1) const
Tuple4 operator * (scale_t s) const

Public Attributes

coor_t x_
 The x coordinate.
coor_t y_
 The y coordinate.
coor_t z_
 The z coordinate.
coor_t w_
 The w coordinate.

Detailed Description

A generic 4 element tuple that is represented by x,y,z and w coordinates.

Java3D specification 1.1, implementation

Revision
1.5
,
Date
1999/10/22 08:37:34
Author:
Kenji Hiranabe SagaEngine adaption

Rune Myrland

Definition at line 38 of file Tuple4.hpp.


Member Typedef Documentation

typedef short se_core::Tuple4::size_type
 

the type for index

Definition at line 47 of file Tuple4.hpp.

typedef coor_t se_core::Tuple4::value_type
 

the type for values

Definition at line 43 of file Tuple4.hpp.


Member Enumeration Documentation

anonymous enum
 

dimension

Enumeration values:
DIMENSION 

Definition at line 51 of file Tuple4.hpp.


Constructor & Destructor Documentation

se_core::Tuple4::Tuple4 coor_t  xvalue,
coor_t  yvalue,
coor_t  zvalue,
coor_t  wvalue
[inline]
 

Constructs and initializes a Tuple4 from the specified xyzw coordinates.

Parameters:
xvalue the x coordinate
yvalue the y coordinate
zvalue the z coordinate
wvalue the w coordinate

Definition at line 80 of file Tuple4.hpp.

se_core::Tuple4::Tuple4 const coor_t  t[]  )  [inline]
 

Constructs and initializes a Tuple4 from the specified array.

Parameters:
t the array of length 4 containing xyzw in order

Definition at line 87 of file Tuple4.hpp.

se_core::Tuple4::Tuple4  )  [inline]
 

Constructs a Tuple4.

Values are not initialized.

Definition at line 92 of file Tuple4.hpp.


Member Function Documentation

void se_core::Tuple4::absolute  )  [inline]
 

Sets each component of this tuple to its absolute value.

Definition at line 380 of file Tuple4.hpp.

void se_core::Tuple4::absolute const Tuple4 t  )  [inline]
 

Sets each component of the tuple parameter to its absolute value and places the modified values into this tuple.

Parameters:
t the source tuple, which will not be modified

Definition at line 332 of file Tuple4.hpp.

void se_core::Tuple4::add const Tuple4 t1  )  [inline]
 

Sets the value of this tuple to the vector sum of itself and tuple t1.

Parameters:
t1 the other tuple

Definition at line 169 of file Tuple4.hpp.

References w_, x_, y_, and z_.

void se_core::Tuple4::add const Tuple4 t1,
const Tuple4 t2
[inline]
 

Sets the value of this tuple to the vector sum of tuples t1 and t2.

Parameters:
t1 the first tuple
t2 the second tuple

Definition at line 158 of file Tuple4.hpp.

References w_, x_, y_, and z_.

Referenced by se_core::ViewPoint::add().

void se_core::Tuple4::clamp coor_t  min,
coor_t  max
[inline]
 

Clamps this tuple to the range [low, high].

Parameters:
min the lowest value in this tuple after clamping
max the highest value in this tuple after clamping

Definition at line 342 of file Tuple4.hpp.

void se_core::Tuple4::clamp coor_t  min,
coor_t  max,
const Tuple4 t
[inline]
 

Clamps the tuple parameter to the range [low, high] and places the values into this tuple.

Parameters:
min the lowest value in the tuple after clamping
max the highest value in the tuple after clamping
t the source tuple, which will not be modified

Definition at line 300 of file Tuple4.hpp.

void se_core::Tuple4::clampMax coor_t  max  )  [inline]
 

Clamps the maximum value of this tuple to the max parameter.

Parameters:
max the highest value in the tuple after clamping

Definition at line 366 of file Tuple4.hpp.

void se_core::Tuple4::clampMax coor_t  max,
const Tuple4 t
[inline]
 

Clamps the maximum value of the tuple parameter to the max parameter and places the values into this tuple.

Parameters:
max the highest value in the tuple after clamping
t the source tuple, which will not be modified

Definition at line 322 of file Tuple4.hpp.

void se_core::Tuple4::clampMin coor_t  min  )  [inline]
 

Clamps the minimum value of this tuple to the min parameter.

Parameters:
min the lowest value in this tuple after clamping

Definition at line 351 of file Tuple4.hpp.

void se_core::Tuple4::clampMin coor_t  min,
const Tuple4 t
[inline]
 

Clamps the minimum value of the tuple parameter to the min parameter and places the values into this tuple.

Parameters:
min the lowest value in the tuple after clamping
t the source tuple, which will not be modified

Definition at line 311 of file Tuple4.hpp.

bool se_core::Tuple4::epsilonEquals const Tuple4 t1,
coor_t  epsilon
const
 

Returns true if the L-infinite distance between this tuple and tuple t1 is less than or equal to the epsilon parameter, otherwise returns false.

The L-infinite distance is equal to MAX[abs(x1-x2), abs(y1-y2), abs(z1-z2), abs(w1-w2)].

Parameters:
t1 the tuple to be compared to this tuple
epsilon the threshold value

Definition at line 8 of file Tuple4.cpp.

References abs, w_, x_, y_, and z_.

bool se_core::Tuple4::equals const Tuple4 t1  )  const [inline]
 

Returns true if all of the data members of Tuple4 t1 are equal to the corresponding data members in this.

Parameters:
t1 the vector with which the comparison is made.

Definition at line 278 of file Tuple4.hpp.

References w_, x_, y_, and z_.

void se_core::Tuple4::get Tuple4 t  )  const [inline]
 

Gets the value of this tuple and copies the values into the Tuple4.

Parameters:
t Tuple4 object into which that values of this object are copied

Definition at line 145 of file Tuple4.hpp.

References Assert, w_, x_, y_, and z_.

void se_core::Tuple4::get coor_t  t[]  )  const [inline]
 

Copies the value of the elements of this tuple into the array t[].

Parameters:
t the array that will contain the values of the vector

Definition at line 134 of file Tuple4.hpp.

void se_core::Tuple4::interpolate const Tuple4 t1,
scale_t  alpha
[inline]
 

Linearly interpolates between this tuple and tuple t1 and places the result into this tuple: this = (1-alpha)*this + alpha*t1.

Parameters:
t1 the first tuple
alpha the alpha interpolation parameter

Definition at line 409 of file Tuple4.hpp.

References scale_t, w_, x_, y_, and z_.

void se_core::Tuple4::interpolate const Tuple4 t1,
const Tuple4 t2,
scale_t  alpha
[inline]
 

Linearly interpolates between tuples t1 and t2 and places the result into this tuple: this = (1-alpha)*t1 + alpha*t2.

Parameters:
t1 the first tuple
t2 the second tuple
alpha the alpha interpolation parameter

Definition at line 398 of file Tuple4.hpp.

bool se_core::Tuple4::isNan  )  const
 

Definition at line 30 of file Tuple4.cpp.

void se_core::Tuple4::negate  )  [inline]
 

Negates the value of this vector in place.

Definition at line 214 of file Tuple4.hpp.

void se_core::Tuple4::negate const Tuple4 t1  )  [inline]
 

Sets the value of this tuple to the negation of tuple t1.

Parameters:
t1 the source vector

Definition at line 204 of file Tuple4.hpp.

References w_, x_, y_, and z_.

Tuple4 se_core::Tuple4::operator * scale_t  s  )  const [inline]
 

Definition at line 488 of file Tuple4.hpp.

Tuple4& se_core::Tuple4::operator *= scale_t  s  )  [inline]
 

Definition at line 478 of file Tuple4.hpp.

Tuple4 se_core::Tuple4::operator+ const Tuple4 t1  )  const [inline]
 

Definition at line 482 of file Tuple4.hpp.

Tuple4& se_core::Tuple4::operator+= const Tuple4 t1  )  [inline]
 

Definition at line 470 of file Tuple4.hpp.

Tuple4 se_core::Tuple4::operator- const Tuple4 t1  )  const [inline]
 

Definition at line 485 of file Tuple4.hpp.

Tuple4& se_core::Tuple4::operator-= const Tuple4 t1  )  [inline]
 

Definition at line 474 of file Tuple4.hpp.

Tuple4& se_core::Tuple4::operator= const Tuple4 t1  )  [inline]
 

Reimplemented in se_core::Point4, and se_core::Vector4.

Definition at line 465 of file Tuple4.hpp.

bool se_core::Tuple4::operator== const Tuple4 t1  )  const [inline]
 

Definition at line 427 of file Tuple4.hpp.

coor_t& se_core::Tuple4::operator[] size_type  index  )  [inline]
 

Definition at line 447 of file Tuple4.hpp.

References Assert, and coor_t.

coor_t se_core::Tuple4::operator[] size_type  index  )  const [inline]
 

Definition at line 431 of file Tuple4.hpp.

References Assert, and coor_t.

void se_core::Tuple4::scale scale_t  s  )  [inline]
 

Sets the value of this tuple to the scalar multiplication of itself.

Parameters:
s the scalar value

Reimplemented in se_core::Quat4.

Definition at line 238 of file Tuple4.hpp.

void se_core::Tuple4::scale scale_t  s,
const Tuple4 t1
[inline]
 

Sets the value of this tuple to the scalar multiplication of tuple t1.

Parameters:
s the scalar value
t1 the source tuple

Definition at line 227 of file Tuple4.hpp.

References w_, x_, y_, and z_.

void se_core::Tuple4::scaleAdd scale_t  s,
const Tuple4 t1
[inline]
 

Sets the value of this tuple to the scalar multiplication of itself and then adds tuple t1 (this = s*this + t1).

Parameters:
s the scalar value
t1 the tuple to be added

Definition at line 265 of file Tuple4.hpp.

References w_, x_, y_, and z_.

void se_core::Tuple4::scaleAdd scale_t  s,
const Tuple4 t1,
const Tuple4 t2
[inline]
 

Sets the value of this tuple to the scalar multiplication of tuple t1 and then adds tuple t2 (this = s*t1 + t2).

Parameters:
s the scalar value
t1 the tuple to be multipled
t2 the tuple to be added

Definition at line 252 of file Tuple4.hpp.

References w_, x_, y_, and z_.

void se_core::Tuple4::set const Tuple4 t1  )  [inline]
 

Sets the value of this tuple to the value of tuple t1.

Parameters:
t1 the tuple to be copied

Reimplemented in se_core::Quat4.

Definition at line 123 of file Tuple4.hpp.

References w_, x_, y_, and z_.

void se_core::Tuple4::set const coor_t  t[]  )  [inline]
 

Sets the value of this tuple from the 4 values specified in the array.

Parameters:
t the array of length 4 containing xyzw in order

Definition at line 112 of file Tuple4.hpp.

void se_core::Tuple4::set coor_t  xvalue,
coor_t  yvalue,
coor_t  zvalue,
coor_t  wvalue
[inline]
 

Sets the value of this tuple to the specified xyzw coordinates.

Parameters:
xvalue the x coordinate
yvalue the y coordinate
zvalue the z coordinate
wvalue the w coordinate

Reimplemented in se_core::Quat4.

Definition at line 101 of file Tuple4.hpp.

Referenced by se_core::Quat4::Quat4(), and se_core::Quat4::setIdentity().

void se_core::Tuple4::sub const Tuple4 t1  )  [inline]
 

Sets the value of this tuple to the vector difference of itself and tuple t1 (this = this - t1).

Parameters:
t1 the other tuple

Definition at line 193 of file Tuple4.hpp.

References w_, x_, y_, and z_.

void se_core::Tuple4::sub const Tuple4 t1,
const Tuple4 t2
[inline]
 

Sets the value of this tuple to the vector difference of tuple t1 and t2 (this = t1 - t2).

Parameters:
t1 the first tuple
t2 the second tuple

Definition at line 182 of file Tuple4.hpp.

References w_, x_, y_, and z_.

Referenced by se_core::ViewPoint::sub().

const char * se_core::Tuple4::toLog  )  const
 

Definition at line 24 of file Tuple4.cpp.

References log_msg().

char * se_core::Tuple4::toString char *  buffer  )  const
 

Returns a string that contains the values of this Tuple4.

The form is (x,y,z,w).

Returns:
the String representation

Definition at line 17 of file Tuple4.cpp.


Member Data Documentation

coor_t se_core::Tuple4::w_
 

The w coordinate.

Definition at line 71 of file Tuple4.hpp.

Referenced by add(), se_core::Quat4::conjugate(), se_core::Point4::distanceL1(), se_core::Point4::distanceLinf(), se_core::Point4::distanceSquared(), se_core::Vector4::dot(), epsilonEquals(), equals(), get(), interpolate(), se_core::Quat4::inverse(), se_core::Quat4::mul(), se_core::Quat4::mulInverse(), negate(), se_core::Quat4::normalize(), se_ogre::O3dThingParser::parseThingInfo(), se_core::Point4::project(), se_core::Point3::project(), se_core::Vector3::rotate(), scale(), scaleAdd(), set(), se_core::Euler3::set(), se_core::AxisAngle4::set(), se_core::Quat4::slerp(), and sub().

coor_t se_core::Tuple4::x_
 

The x coordinate.

Definition at line 56 of file Tuple4.hpp.

Referenced by add(), se_core::Quat4::conjugate(), se_core::Point4::distanceL1(), se_core::Point4::distanceLinf(), se_core::Point4::distanceSquared(), se_core::Vector4::dot(), epsilonEquals(), equals(), get(), interpolate(), se_core::Quat4::inverse(), se_core::Quat4::mul(), se_core::Quat4::mulInverse(), negate(), se_core::Quat4::normalize(), se_ogre::O3dThingParser::parseThingInfo(), se_core::Point4::project(), se_core::Point3::project(), se_core::Vector3::rotate(), scale(), scaleAdd(), set(), se_core::Euler3::set(), se_core::AxisAngle4::set(), se_core::Quat4::slerp(), and sub().

coor_t se_core::Tuple4::y_
 

The y coordinate.

Definition at line 61 of file Tuple4.hpp.

Referenced by add(), se_core::Quat4::conjugate(), se_core::Point4::distanceL1(), se_core::Point4::distanceLinf(), se_core::Point4::distanceSquared(), se_core::Vector4::dot(), epsilonEquals(), equals(), get(), interpolate(), se_core::Quat4::inverse(), se_core::Quat4::mul(), se_core::Quat4::mulInverse(), negate(), se_core::Quat4::normalize(), se_ogre::O3dThingParser::parseThingInfo(), se_core::Point4::project(), se_core::Point3::project(), se_core::Vector3::rotate(), scale(), scaleAdd(), set(), se_core::Euler3::set(), se_core::AxisAngle4::set(), se_core::Quat4::slerp(), and sub().

coor_t se_core::Tuple4::z_
 

The z coordinate.

Definition at line 66 of file Tuple4.hpp.

Referenced by add(), se_core::Quat4::conjugate(), se_core::Point4::distanceL1(), se_core::Point4::distanceLinf(), se_core::Point4::distanceSquared(), se_core::Vector4::dot(), epsilonEquals(), equals(), get(), interpolate(), se_core::Quat4::inverse(), se_core::Quat4::mul(), se_core::Quat4::mulInverse(), negate(), se_core::Quat4::normalize(), se_ogre::O3dThingParser::parseThingInfo(), se_core::Point4::project(), se_core::Point3::project(), se_core::Vector3::rotate(), scale(), scaleAdd(), set(), se_core::Euler3::set(), se_core::AxisAngle4::set(), se_core::Quat4::slerp(), and sub().


The documentation for this class was generated from the following files:

Home Page | SagaEngine trunk (updated nightly) reference generated Sun Dec 2 20:06:31 2007 by Doxygen version 1.3.9.1.

SourceForge.net Logo