LVecBase4d
-
class LVecBase4d
This is the base class for all three-component vectors and points.
Inheritance diagram
-
LVecBase4d(void) = default
-
LVecBase4d(double fill_value)
-
LVecBase4d(double x, double y, double z, double w)
-
LVecBase4d(UnalignedLVecBase4d const ©)
-
LVecBase4d(LVecBase3d const ©, double w)
-
LVecBase4d(LVecBase4d const&) = default
Constructs an
LVecBase4
from anLPoint3
. The w coordinate is set to 1.0.Constructs an
LVecBase4
from anLVector3
. The w coordinate is set to 0.0.
-
std::size_t add_hash(std::size_t hash) const
-
std::size_t add_hash(std::size_t hash, double threshold) const
Adds the vector into the running hash.
-
void add_to_cell(int i, double value)
These next functions add to an existing value. i.e. foo.set_x(foo.get_x() + value) These are useful to reduce overhead in scripting languages:
-
void add_w(double value)
-
void add_x(double value)
-
void add_y(double value)
-
void add_z(double value)
-
bool almost_equal(LVecBase4d const &other, double threshold) const
-
bool almost_equal(LVecBase4d const &other) const
Returns true if two vectors are memberwise equal within a specified tolerance.
Returns true if two vectors are memberwise equal within a default tolerance based on the numeric type.
-
int compare_to(LVecBase4d const &other) const
-
int compare_to(LVecBase4d const &other, double threshold) const
This flavor of compare_to uses a default threshold value based on the numeric type.
Sorts vectors lexicographically, componentwise. Returns a number less than 0 if this vector sorts before the other one, greater than zero if it sorts after, 0 if they are equivalent (within the indicated tolerance).
-
void componentwise_mult(LVecBase4d const &other)
-
double dot(LVecBase4d const &other) const
-
void extract_data(float*)
-
void fill(double fill_value)
Sets each element of the vector to the indicated fill_value. This is particularly useful for initializing to zero.
-
LVecBase4d fmax(LVecBase4d const &other) const
-
LVecBase4d fmin(LVecBase4d const &other) const
-
void generate_hash(ChecksumHashGenerator &hashgen) const
-
void generate_hash(ChecksumHashGenerator &hashgen, double threshold) const
Adds the vector to the indicated hash generator.
-
double get_cell(int i) const
-
static TypeHandle get_class_type(void)
-
double const *get_data(void) const
Returns the address of the first of the four data elements in the vector. The remaining elements occupy the next positions consecutively in memory.
-
std::size_t get_hash(void) const
-
std::size_t get_hash(double threshold) const
Returns a suitable hash for phash_map.
-
static constexpr int get_num_components(void)
-
double get_w(void) const
-
double get_x(void) const
-
LVecBase2d get_xy(void) const
Returns the x and y component of this vector
-
LVecBase3d get_xyz(void) const
Returns the x, y and z component of this vector
-
double get_y(void) const
-
double get_z(void) const
-
bool is_nan(void) const
Returns true if any component of the vector is not-a-number, false otherwise.
-
double length(void) const
Returns the length of the vector, by the Pythagorean theorem.
-
double length_squared(void) const
Returns the square of the vector’s length, cheap and easy.
-
bool normalize(void)
Normalizes the vector in place. Returns true if the vector was normalized, false if it was a zero-length vector.
-
LVecBase4d normalized(void) const
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.
-
void output(std::ostream &out) const
-
LVecBase4d project(LVecBase4d const &onto) const
Returns a new vector representing the projection of this vector onto another one. The resulting vector will be a scalar multiple of onto.
-
void read_datagram(DatagramIterator &source)
Reads the vector from the Datagram using get_stdfloat().
-
void read_datagram_fixed(DatagramIterator &source)
Reads the vector from the Datagram using get_float32() or get_float64(). See
write_datagram_fixed()
.
-
void set(double x, double y, double z, double w)
-
void set_cell(int i, double value)
-
void set_w(double value)
-
void set_x(double value)
-
void set_y(double value)
-
void set_z(double value)
-
static constexpr int size(void)
-
LVecBase4d const &unit_w(void)
Returns a unit W vector.
-
LVecBase4d const &unit_x(void)
Returns a unit X vector.
-
LVecBase4d const &unit_y(void)
Returns a unit Y vector.
-
LVecBase4d const &unit_z(void)
Returns a unit Z vector.
-
bool validate_ptr(void const *ptr)
-
void write_datagram(Datagram &destination) const
Writes the vector to the Datagram using add_stdfloat(). This is appropriate when you want to write the vector using the standard width setting, especially when you are writing a bam file.
-
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()
. This is appropriate when you want to write a fixed-width value to the datagram, especially when you are not writing a bam file.
-
LVecBase4d const &zero(void)
Returns a zero-length vector.
-
LVecBase4d(void) = default