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 | |
LVector3f (const LVecBase3f ©) | |
LVector3f (float fill_value) | |
LVector3f (float x, float y, float z) | |
LVector3f (const LVecBase2f ©, float z) | |
float | angle_deg (const LVector3f &other) const |
Returns the angle between this vector and the other one, expressed in degrees. More... | |
float | angle_rad (const LVector3f &other) const |
Returns the unsigned angle between this vector and the other one, expressed in radians. More... | |
LVector3f | cross (const LVecBase3f &other) const |
LVector2f | get_xy () const |
Returns a 2-component vector that shares just the first two components of this vector. More... | |
LVector2f | get_xz () const |
Returns a 2-component vector that shares just the first and last components of this vector. More... | |
LVector2f | get_yz () const |
Returns a 2-component vector that shares just the last two components of this vector. More... | |
LVector3f | operator* (float scalar) const |
LVecBase3f | operator+ (const LVecBase3f &other) const |
LVector3f | operator+ (const LVector3f &other) const |
LVector3f | operator- () const |
LVecBase3f | operator- (const LVecBase3f &other) const |
LVector3f | operator- (const LVector3f &other) const |
LVector3f | operator/ (float scalar) const |
LVector3f & | operator= (const LVecBase3f ©) |
LVector3f & | operator= (float fill_value) |
LVector3f | project (const LVecBase3f &onto) const |
Returns a new vector representing the projection of this vector onto another one. More... | |
float | relative_angle_deg (const LVector3f &other) const |
This method is deprecated. More... | |
float | relative_angle_rad (const LVector3f &other) const |
This method is deprecated. More... | |
float | signed_angle_deg (const LVector3f &other, const LVector3f &ref) const |
Returns the signed angle between two vectors. More... | |
float | signed_angle_rad (const LVector3f &other, const LVector3f &ref) const |
returns the signed angle between two vectors. More... | |
![]() | |
LVecBase3f (const LVecBase3f ©) | |
LVecBase3f (float fill_value) | |
LVecBase3f (float x, float y, float z) | |
LVecBase3f (const LVecBase2f ©, float z) | |
LVecBase3f (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, float threshold) const |
Adds the vector into the running hash. More... | |
void | add_to_cell (int i, float value) |
void | add_x (float value) |
void | add_y (float value) |
void | add_z (float value) |
bool | almost_equal (const LVecBase3f &other, float threshold) const |
Returns true if two vectors are memberwise equal within a specified tolerance. More... | |
bool | almost_equal (const LVecBase3f &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 LVecBase3f &other) const |
This flavor of compare_to uses a default threshold value based on the numeric type. More... | |
int | compare_to (const LVecBase3f &other, float threshold) const |
Sorts vectors lexicographically, componentwise. More... | |
void | componentwise_mult (const LVecBase3f &other) |
LVecBase3f | cross (const LVecBase3f &other) const |
void | cross_into (const LVecBase3f &other) |
float | dot (const LVecBase3f &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 (float fill_value) |
Sets each element of the vector to the indicated fill_value. More... | |
LVecBase3f | fmax (const LVecBase3f &other) const |
LVecBase3f | fmin (const LVecBase3f &other) const |
void | generate_hash (ChecksumHashGenerator &hashgen) const |
Adds the vector to the indicated hash generator. More... | |
void | generate_hash (ChecksumHashGenerator &hashgen, float threshold) const |
Adds the vector to the indicated hash generator. More... | |
float | get_cell (int i) const |
const float * | 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 (float 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... | |
LVecBase3f | get_standardized_hpr () const |
Try to un-spin the hpr to a standard form. More... | |
float | get_x () const |
LVecBase2f | get_xy () const |
Returns a 2-component vector that shares just the first two components of this vector. More... | |
LVecBase2f | get_xz () const |
Returns a 2-component vector that shares just the first and last components of this vector. More... | |
float | get_y () const |
LVecBase2f | get_yz () const |
Returns a 2-component vector that shares just the last two components of this vector. More... | |
float | get_z () const |
bool | is_nan () const |
Returns true if any component of the vector is not-a-number, false otherwise. More... | |
float | length () const |
Returns the length of the vector, by the Pythagorean theorem. More... | |
float | length_squared () const |
Returns the square of the vector's length, cheap and easy. More... | |
bool | normalize () |
Normalizes the vector in place. More... | |
bool | operator!= (const LVecBase3f &other) const |
LVecBase3f | operator* (float scalar) const |
void | operator*= (float scalar) |
LVecBase3f | operator+ (const LVecBase3f &other) const |
void | operator+= (const LVecBase3f &other) |
LVecBase3f | operator- () const |
LVecBase3f | operator- (const LVecBase3f &other) const |
void | operator-= (const LVecBase3f &other) |
LVecBase3f | operator/ (float scalar) const |
void | operator/= (float scalar) |
bool | operator< (const LVecBase3f &other) const |
This performs a lexicographical comparison. More... | |
LVecBase3f & | operator= (const LVecBase3f ©) |
LVecBase3f & | operator= (float fill_value) |
bool | operator== (const LVecBase3f &other) const |
float | operator[] (int i) const |
float & | operator[] (int i) |
void | output (ostream &out) const |
LVecBase3f | project (const LVecBase3f &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 (float x, float y, float z) |
void | set_cell (int i, float value) |
void | set_x (float value) |
void | set_y (float value) |
void | set_z (float 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 LVector3f | back (CoordinateSystem cs=CS_default) |
Returns the back vector for the given coordinate system. More... | |
static LVector3f | down (CoordinateSystem cs=CS_default) |
Returns the down vector for the given coordinate system. More... | |
static LVector3f | 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 LVector3f | left (CoordinateSystem cs=CS_default) |
Returns the left vector for the given coordinate system. More... | |
static LVector3f | rfu (float right, float fwd, float 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 LVector3f | right (CoordinateSystem cs=CS_default) |
Returns the right vector for the given coordinate system. More... | |
static const LVector3f & | unit_x () |
Returns a unit X vector. More... | |
static const LVector3f & | unit_y () |
Returns a unit Y vector. More... | |
static const LVector3f & | unit_z () |
Returns a unit Z vector. More... | |
static LVector3f | up (CoordinateSystem cs=CS_default) |
Returns the up vector for the given coordinate system. More... | |
static const LVector3f & | 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 LVecBase3f & | unit_x () |
Returns a unit X vector. More... | |
static const LVecBase3f & | unit_y () |
Returns a unit Y vector. More... | |
static const LVecBase3f & | unit_z () |
Returns a unit Z vector. More... | |
static const LVecBase3f & | zero () |
Returns a zero-length vector. More... | |
Additional Inherited Members | |
![]() | |
enum | { num_components = 3, is_int = 0 } |
typedef const float * | const_iterator |
typedef LSimpleMatrix< float, 1, 3 > | EVector3 |
typedef const float * | iterator |
typedef float | 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 100 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 437 of file lvector3.h.
Referenced by GeoMipTerrain::make_slope_image().
|
inline |
Returns the unsigned angle between this vector and the other one, expressed in radians.
Both vectors should be initially normalized.
Definition at line 417 of file lvector3.h.
|
inlinestatic |
Returns the back vector for the given coordinate system.
Definition at line 618 of file lvector3.h.
|
inlinestatic |
Returns the down vector for the given coordinate system.
Definition at line 596 of file lvector3.h.
|
inlinestatic |
Returns the forward vector for the given coordinate system.
Definition at line 565 of file lvector3.h.
Referenced by Fog::adjust_to_camera(), NodePath::do_billboard_point_eye(), ObstacleAvoidance::do_obstacle_avoidance(), Wander::do_wander(), ObstacleAvoidance::obstacle_detection(), PortalClipper::prepare_portal(), CollisionRay::set_from_lens(), CollisionSegment::set_from_lens(), and Fog::set_linear_range().
|
inline |
Returns a 2-component vector that shares just the first two components of this vector.
Definition at line 310 of file lvector3.h.
|
inline |
Returns a 2-component vector that shares just the first and last components of this vector.
Definition at line 321 of file lvector3.h.
|
inline |
Returns a 2-component vector that shares just the last two components of this vector.
Definition at line 332 of file lvector3.h.
|
inlinestatic |
Returns the left vector for the given coordinate system.
Definition at line 607 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 405 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 631 of file lvector3.h.
Referenced by PGSliderBar::recompute(), PGSliderBar::remanage(), CardMaker::set_frame(), PGScrollFrame::setup(), PGSliderBar::setup_scroll_bar(), and PGSliderBar::setup_slider().
|
inlinestatic |
Returns the right vector for the given coordinate system.
Definition at line 554 of file lvector3.h.
Referenced by PGItem::activate_region(), TextPropertiesManager::set_graphic(), and PGEntry::setup().
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 474 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 453 of file lvector3.h.
|
inlinestatic |
Returns a unit X vector.
Definition at line 279 of file lvector3.h.
|
inlinestatic |
Returns a unit Y vector.
Definition at line 289 of file lvector3.h.
|
inlinestatic |
Returns a unit Z vector.
Definition at line 299 of file lvector3.h.
|
inlinestatic |
Returns the up vector for the given coordinate system.
Definition at line 527 of file lvector3.h.
Referenced by PGItem::activate_region(), NodePath::do_billboard_axis(), NodePath::do_billboard_point_eye(), NodePath::do_billboard_point_world(), GeoMipTerrain::make_slope_image(), NodePath::set_billboard_axis(), NodePath::set_billboard_point_eye(), NodePath::set_billboard_point_world(), Lens::set_frustum_from_corners(), TextPropertiesManager::set_graphic(), and PGEntry::setup().
|
inlinestatic |
Returns a zero-length vector.
Definition at line 269 of file lvector3.h.
Referenced by ActorNode::ActorNode(), PhysxUtilLib::compute_box_world_edge_normal(), CollisionEntry::get_all(), CollisionEntry::get_all_contact_info(), PhysxActor::get_angular_momentum(), PhysxActor::get_angular_velocity(), CollisionEntry::get_contact_normal(), PhysxBoxForceFieldShape::get_dimensions(), PhysxBoxShape::get_dimensions(), PhysxMaterial::get_dir_of_anisotropy(), CollisionSolid::get_effective_normal(), PhysxBoxController::get_extents(), PhysxCloth::get_external_acceleration(), PhysxJoint::get_global_axis(), PhysxScene::get_gravity(), PhysxActor::get_linear_momentum(), PhysxActor::get_linear_velocity(), PhysxActor::get_local_point_velocity(), PhysxActor::get_mass_space_inertia_tensor(), PhysxActor::get_point_velocity(), CollisionEntry::get_surface_normal(), PhysxCloth::get_wind_acceleration(), CollisionLevelStateBase::prepare_collider(), and CConstrainPosInterval::priv_step().