Panda3D
|
This is a three-component vector distance (as opposed to a three-component point, which represents a particular point in space). More...
#include "lvector3.h"
Public Member Functions | |
LVector3d (const LVecBase3d ©) | |
LVector3d (double fill_value) | |
LVector3d (double x, double y, double z) | |
LVector3d (const LVecBase2d ©, double z) | |
double | angle_deg (const LVector3d &other) const |
Returns the angle between this vector and the other one, expressed in degrees. More... | |
double | angle_rad (const LVector3d &other) const |
Returns the unsigned angle between this vector and the other one, expressed in radians. More... | |
LVector3d | cross (const LVecBase3d &other) const |
LVector2d | get_xy () const |
Returns a 2-component vector that shares just the first two components of this vector. More... | |
LVector2d | get_xz () const |
Returns a 2-component vector that shares just the first and last components of this vector. More... | |
LVector2d | get_yz () const |
Returns a 2-component vector that shares just the last two components of this vector. More... | |
LVector3d | normalized () const |
Normalizes the vector and returns the normalized vector as a copy. More... | |
LVector3d | operator* (double scalar) const |
LVecBase3d | operator+ (const LVecBase3d &other) const |
LVector3d | operator+ (const LVector3d &other) const |
LVector3d | operator- () const |
LVecBase3d | operator- (const LVecBase3d &other) const |
LVector3d | operator- (const LVector3d &other) const |
LVector3d | operator/ (double scalar) const |
LVector3d & | operator= (const LVecBase3d ©) |
LVector3d & | operator= (double fill_value) |
LVector3d | project (const LVecBase3d &onto) const |
Returns a new vector representing the projection of this vector onto another one. More... | |
double | relative_angle_deg (const LVector3d &other) const |
This method is deprecated. More... | |
double | relative_angle_rad (const LVector3d &other) const |
This method is deprecated. More... | |
double | signed_angle_deg (const LVector3d &other, const LVector3d &ref) const |
Returns the signed angle between two vectors. More... | |
double | signed_angle_rad (const LVector3d &other, const LVector3d &ref) const |
returns the signed angle between two vectors. More... | |
![]() | |
LVecBase3d (const LVecBase3d ©) | |
LVecBase3d (double fill_value) | |
LVecBase3d (double x, double y, double z) | |
LVecBase3d (const LVecBase2d ©, double z) | |
LVecBase3d (const EVector3 &v) | |
size_t | add_hash (size_t hash) const |
Adds the vector into the running hash. More... | |
size_t | add_hash (size_t hash, double threshold) const |
Adds the vector into the running hash. More... | |
void | add_to_cell (int i, double value) |
void | add_x (double value) |
void | add_y (double value) |
void | add_z (double value) |
bool | almost_equal (const LVecBase3d &other, double threshold) const |
Returns true if two vectors are memberwise equal within a specified tolerance. More... | |
bool | almost_equal (const LVecBase3d &other) const |
Returns true if two vectors are memberwise equal within a default tolerance based on the numeric type. More... | |
iterator | begin () |
Returns an iterator that may be used to traverse the elements of the matrix, STL-style. More... | |
const_iterator | begin () const |
Returns an iterator that may be used to traverse the elements of the matrix, STL-style. More... | |
int | compare_to (const LVecBase3d &other) const |
This flavor of compare_to uses a default threshold value based on the numeric type. More... | |
int | compare_to (const LVecBase3d &other, double threshold) const |
Sorts vectors lexicographically, componentwise. More... | |
void | componentwise_mult (const LVecBase3d &other) |
LVecBase3d | cross (const LVecBase3d &other) const |
void | cross_into (const LVecBase3d &other) |
double | dot (const LVecBase3d &other) const |
iterator | end () |
Returns an iterator that may be used to traverse the elements of the matrix, STL-style. More... | |
const_iterator | end () const |
Returns an iterator that may be used to traverse the elements of the matrix, STL-style. More... | |
void | fill (double fill_value) |
Sets each element of the vector to the indicated fill_value. More... | |
LVecBase3d | fmax (const LVecBase3d &other) const |
LVecBase3d | fmin (const LVecBase3d &other) const |
void | generate_hash (ChecksumHashGenerator &hashgen) const |
Adds the vector to the indicated hash generator. More... | |
void | generate_hash (ChecksumHashGenerator &hashgen, double threshold) const |
Adds the vector to the indicated hash generator. More... | |
double | get_cell (int i) const |
const double * | get_data () const |
Returns the address of the first of the three data elements in the vector. More... | |
size_t | get_hash () const |
Returns a suitable hash for phash_map. More... | |
size_t | get_hash (double threshold) const |
Returns a suitable hash for phash_map. More... | |
int | get_num_components () const |
Returns the number of elements in the vector, three. More... | |
LVecBase3d | get_standardized_hpr () const |
Try to un-spin the hpr to a standard form. More... | |
double | get_x () const |
LVecBase2d | get_xy () const |
Returns a 2-component vector that shares just the first two components of this vector. More... | |
LVecBase2d | get_xz () const |
Returns a 2-component vector that shares just the first and last components of this vector. More... | |
double | get_y () const |
LVecBase2d | get_yz () const |
Returns a 2-component vector that shares just the last two components of this vector. More... | |
double | get_z () const |
bool | is_nan () const |
Returns true if any component of the vector is not-a-number, false otherwise. More... | |
double | length () const |
Returns the length of the vector, by the Pythagorean theorem. More... | |
double | length_squared () const |
Returns the square of the vector's length, cheap and easy. More... | |
bool | normalize () |
Normalizes the vector in place. More... | |
LVecBase3d | normalized () const |
Normalizes the vector and returns the normalized vector as a copy. More... | |
bool | operator!= (const LVecBase3d &other) const |
LVecBase3d | operator* (double scalar) const |
void | operator*= (double scalar) |
LVecBase3d | operator+ (const LVecBase3d &other) const |
void | operator+= (const LVecBase3d &other) |
LVecBase3d | operator- () const |
LVecBase3d | operator- (const LVecBase3d &other) const |
void | operator-= (const LVecBase3d &other) |
LVecBase3d | operator/ (double scalar) const |
void | operator/= (double scalar) |
bool | operator< (const LVecBase3d &other) const |
This performs a lexicographical comparison. More... | |
LVecBase3d & | operator= (const LVecBase3d ©) |
LVecBase3d & | operator= (double fill_value) |
bool | operator== (const LVecBase3d &other) const |
double | operator[] (int i) const |
double & | operator[] (int i) |
void | output (ostream &out) const |
LVecBase3d | project (const LVecBase3d &onto) const |
Returns a new vector representing the projection of this vector onto another one. More... | |
void | read_datagram (DatagramIterator &source) |
Reads the vector from the Datagram using get_stdfloat(). More... | |
void | read_datagram_fixed (DatagramIterator &source) |
Reads the vector from the Datagram using get_float32() or get_float64(). More... | |
void | set (double x, double y, double z) |
void | set_cell (int i, double value) |
void | set_x (double value) |
void | set_y (double value) |
void | set_z (double value) |
void | write_datagram (Datagram &destination) const |
Writes the vector to the Datagram using add_stdfloat(). More... | |
void | write_datagram_fixed (Datagram &destination) const |
Writes the vector to the Datagram using add_float32() or add_float64(), depending on the type of floats in the vector, regardless of the setting of Datagram::set_stdfloat_double(). More... | |
Static Public Member Functions | |
static LVector3d | back (CoordinateSystem cs=CS_default) |
Returns the back vector for the given coordinate system. More... | |
static LVector3d | down (CoordinateSystem cs=CS_default) |
Returns the down vector for the given coordinate system. More... | |
static LVector3d | forward (CoordinateSystem cs=CS_default) |
Returns the forward vector for the given coordinate system. More... | |
static TypeHandle | get_class_type () |
static void | init_type () |
static LVector3d | left (CoordinateSystem cs=CS_default) |
Returns the left vector for the given coordinate system. More... | |
static LVector3d | rfu (double right, double fwd, double up, CoordinateSystem cs=CS_default) |
Returns a vector that is described by its right, forward, and up components, in whatever way the coordinate system represents that vector. More... | |
static LVector3d | right (CoordinateSystem cs=CS_default) |
Returns the right vector for the given coordinate system. More... | |
static const LVector3d & | unit_x () |
Returns a unit X vector. More... | |
static const LVector3d & | unit_y () |
Returns a unit Y vector. More... | |
static const LVector3d & | unit_z () |
Returns a unit Z vector. More... | |
static LVector3d | up (CoordinateSystem cs=CS_default) |
Returns the up vector for the given coordinate system. More... | |
static const LVector3d & | zero () |
Returns a zero-length vector. More... | |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
static int | size () |
Returns 3: the number of components of a LVecBase3. More... | |
static const LVecBase3d & | unit_x () |
Returns a unit X vector. More... | |
static const LVecBase3d & | unit_y () |
Returns a unit Y vector. More... | |
static const LVecBase3d & | unit_z () |
Returns a unit Z vector. More... | |
static const LVecBase3d & | zero () |
Returns a zero-length vector. More... | |
Additional Inherited Members | |
![]() | |
enum | { num_components = 3, is_int = 0 } |
typedef const double * | const_iterator |
typedef LSimpleMatrix< double, 1, 3 > | EVector3 |
typedef const double * | iterator |
typedef double | numeric_type |
![]() | |
EVector3 | _v |
This is a three-component vector distance (as opposed to a three-component point, which represents a particular point in space).
Some of the methods are slightly different between LPoint3 and LVector3; in particular, subtraction of two points yields a vector, while addition of a vector and a point yields a point.
Definition at line 760 of file lvector3.h.
|
inline |
Returns the angle between this vector and the other one, expressed in degrees.
Both vectors should be initially normalized.
Definition at line 1111 of file lvector3.h.
|
inline |
Returns the unsigned angle between this vector and the other one, expressed in radians.
Both vectors should be initially normalized.
Definition at line 1091 of file lvector3.h.
References MathNumbers::cpi().
|
inlinestatic |
Returns the back vector for the given coordinate system.
Definition at line 1292 of file lvector3.h.
|
inlinestatic |
Returns the down vector for the given coordinate system.
Definition at line 1270 of file lvector3.h.
|
inlinestatic |
Returns the forward vector for the given coordinate system.
Definition at line 1239 of file lvector3.h.
Referenced by EggXfmSAnim::compose_with_order().
|
inline |
Returns a 2-component vector that shares just the first two components of this vector.
Definition at line 971 of file lvector3.h.
|
inline |
Returns a 2-component vector that shares just the first and last components of this vector.
Definition at line 982 of file lvector3.h.
|
inline |
Returns a 2-component vector that shares just the last two components of this vector.
Definition at line 993 of file lvector3.h.
|
inlinestatic |
Returns the left vector for the given coordinate system.
Definition at line 1281 of file lvector3.h.
|
inline |
Normalizes the vector and returns the normalized vector as a copy.
If the vector was a zero-length vector, a zero length vector will be returned.
Definition at line 1067 of file lvector3.h.
|
inline |
Returns a new vector representing the projection of this vector onto another one.
The resulting vector will be a scalar multiple of onto.
Definition at line 1079 of file lvector3.h.
|
inline |
|
inline |
|
inlinestatic |
Returns a vector that is described by its right, forward, and up components, in whatever way the coordinate system represents that vector.
Definition at line 1305 of file lvector3.h.
|
inlinestatic |
Returns the right vector for the given coordinate system.
Definition at line 1228 of file lvector3.h.
Referenced by EggXfmSAnim::compose_with_order().
Returns the signed angle between two vectors.
The angle is positive if the rotation from this vector to other is clockwise when looking in the direction of the ref vector.
Vectors (except the ref vector) should be initially normalized.
Definition at line 1148 of file lvector3.h.
returns the signed angle between two vectors.
The angle is positive if the rotation from this vector to other is clockwise when looking in the direction of the ref vector.
Vectors (except the ref vector) should be initially normalized.
Definition at line 1127 of file lvector3.h.
|
inlinestatic |
Returns a unit X vector.
Definition at line 940 of file lvector3.h.
|
inlinestatic |
Returns a unit Y vector.
Definition at line 950 of file lvector3.h.
|
inlinestatic |
Returns a unit Z vector.
Definition at line 960 of file lvector3.h.
|
inlinestatic |
Returns the up vector for the given coordinate system.
Definition at line 1201 of file lvector3.h.
Referenced by EggXfmSAnim::compose_with_order().
|
inlinestatic |
Returns a zero-length vector.
Definition at line 930 of file lvector3.h.
Referenced by EggPolygon::calculate_normal(), MayaToEggConverter::clear(), EggTransform::get_component_vec3(), FltToEggLevelState::set_transform(), QtessSurface::tesselate_auto(), and Triangulator3::triangulate().