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 | |
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 | normalized () const |
Normalizes the vector and returns the normalized vector as a copy. 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... | |
LVecBase3f | normalized () const |
Normalizes the vector and returns the normalized vector as a copy. 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 451 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 431 of file lvector3.h.
References MathNumbers::cpi().
|
inlinestatic |
Returns the back vector for the given coordinate system.
Definition at line 632 of file lvector3.h.
Referenced by WindowFramework::load_default_model(), and GraphicsOutput::process_events().
|
inlinestatic |
Returns the down vector for the given coordinate system.
Definition at line 610 of file lvector3.h.
Referenced by Trackball::get_trans_mat().
|
inlinestatic |
Returns the forward vector for the given coordinate system.
Definition at line 579 of file lvector3.h.
Referenced by Fog::adjust_to_camera(), WindowFramework::center_trackball(), NodePath::do_billboard_point_eye(), ObstacleAvoidance::do_obstacle_avoidance(), Wander::do_wander(), DriveInterface::force_dgraph(), Trackball::get_trans_mat(), Lens::is_orthographic(), ObstacleAvoidance::obstacle_detection(), PortalClipper::prepare_portal(), RopeNode::reset_bound(), BillboardEffect::safe_to_transform(), CollisionRay::set_from_lens(), CollisionSegment::set_from_lens(), Fog::set_linear_range(), and WindowFramework::setup_trackball().
|
inline |
Returns a 2-component vector that shares just the first two components of this vector.
Definition at line 311 of file lvector3.h.
|
inline |
Returns a 2-component vector that shares just the first and last components of this vector.
Definition at line 322 of file lvector3.h.
|
inline |
Returns a 2-component vector that shares just the last two components of this vector.
Definition at line 333 of file lvector3.h.
|
inlinestatic |
Returns the left vector for the given coordinate system.
Definition at line 621 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 407 of file lvector3.h.
Referenced by EggSaver::add_node().
|
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 419 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 645 of file lvector3.h.
Referenced by PGItem::get_text_node(), PGSliderBar::recompute(), PGScrollFrame::remanage(), PGSliderBar::remanage(), CardMaker::set_frame(), PGScrollFrame::setup(), PGSliderBar::setup_scroll_bar(), PGSliderBar::setup_slider(), and MouseWatcherBase::update_regions().
|
inlinestatic |
Returns the right vector for the given coordinate system.
Definition at line 568 of file lvector3.h.
Referenced by PGItem::activate_region(), Trackball::get_trans_mat(), RocketRenderInterface::render(), 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 488 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 467 of file lvector3.h.
|
inlinestatic |
Returns a unit X vector.
Definition at line 280 of file lvector3.h.
|
inlinestatic |
Returns a unit Y vector.
Definition at line 290 of file lvector3.h.
|
inlinestatic |
Returns a unit Z vector.
Definition at line 300 of file lvector3.h.
|
inlinestatic |
Returns the up vector for the given coordinate system.
Definition at line 541 of file lvector3.h.
Referenced by PGItem::activate_region(), CollisionHandlerFluidPusher::add_entry(), EggSaver::add_node(), AssimpLoader::build_graph(), NodePath::do_billboard_axis(), NodePath::do_billboard_point_eye(), NodePath::do_billboard_point_world(), DriveInterface::force_dgraph(), Trackball::get_trans_mat(), Lens::is_orthographic(), EggLoader::make_polyset(), GeoMipTerrain::make_slope_image(), RocketRenderInterface::render(), BillboardEffect::safe_to_transform(), 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 270 of file lvector3.h.
Referenced by ActorNode::ActorNode(), PhysxUtilLib::compute_box_world_edge_normal(), ObjToEggConverter::convert_file(), CollisionEntry::get_all(), CollisionEntry::get_all_contact_info(), FltTransformRotateAboutPoint::get_angle(), 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(), CollisionPolygon::get_test_pcollector(), PhysxCloth::get_wind_acceleration(), PfmVizzer::make_displacement(), CollisionLevelStateBase::prepare_collider(), CConstrainPosInterval::priv_step(), PhysxSoftBodyNode::set_from_geom(), PhysxJointDesc::set_global_anchor(), QtessSurface::tesselate_auto(), LinearControlForce::~LinearControlForce(), LinearForce::~LinearForce(), and LinearFrictionForce::~LinearFrictionForce().