LVecBase4f
- 
class LVecBase4f
- This is the base class for all three-component vectors and points. - Inheritance diagram - 
LVecBase4f(void) = default
 - 
LVecBase4f(float fill_value)
 - 
LVecBase4f(float x, float y, float z, float w)
 - 
LVecBase4f(UnalignedLVecBase4f const ©)
 - 
LVecBase4f(LVecBase3f const ©, float w)
 - 
LVecBase4f(LVecBase4f const&) = default
- Constructs an - LVecBase4from an- LPoint3. The w coordinate is set to 1.0.- Constructs an - LVecBase4from an- LVector3. 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, float threshold) const
- Adds the vector into the running hash. 
 - 
void add_to_cell(int i, float 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(float value)
 - 
void add_x(float value)
 - 
void add_y(float value)
 - 
void add_z(float value)
 - 
bool almost_equal(LVecBase4f const &other, float threshold) const
 - 
bool almost_equal(LVecBase4f 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(LVecBase4f const &other) const
 - 
int compare_to(LVecBase4f const &other, float 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(LVecBase4f const &other)
 - 
float dot(LVecBase4f const &other) const
 - 
void extract_data(float*)
 - 
void fill(float fill_value)
- Sets each element of the vector to the indicated fill_value. This is particularly useful for initializing to zero. 
 - 
LVecBase4f fmax(LVecBase4f const &other) const
 - 
LVecBase4f fmin(LVecBase4f const &other) const
 - 
void generate_hash(ChecksumHashGenerator &hashgen) const
 - 
void generate_hash(ChecksumHashGenerator &hashgen, float threshold) const
- Adds the vector to the indicated hash generator. 
 - 
float get_cell(int i) const
 - 
static TypeHandle get_class_type(void)
 - 
float 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(float threshold) const
- Returns a suitable hash for phash_map. 
 - 
static constexpr int get_num_components(void)
 - 
float get_w(void) const
 - 
float get_x(void) const
 - 
LVecBase2f get_xy(void) const
- Returns the x and y component of this vector 
 - 
LVecBase3f get_xyz(void) const
- Returns the x, y and z component of this vector 
 - 
float get_y(void) const
 - 
float get_z(void) const
 - 
bool is_nan(void) const
- Returns true if any component of the vector is not-a-number, false otherwise. 
 - 
float length(void) const
- Returns the length of the vector, by the Pythagorean theorem. 
 - 
float 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. 
 - 
LVecBase4f 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
 - 
LVecBase4f project(LVecBase4f 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(float x, float y, float z, float w)
 - 
void set_cell(int i, float value)
 - 
void set_w(float value)
 - 
void set_x(float value)
 - 
void set_y(float value)
 - 
void set_z(float value)
 - 
static constexpr int size(void)
 - 
LVecBase4f const &unit_w(void)
- Returns a unit W vector. 
 - 
LVecBase4f const &unit_x(void)
- Returns a unit X vector. 
 - 
LVecBase4f const &unit_y(void)
- Returns a unit Y vector. 
 - 
LVecBase4f 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.
 - 
LVecBase4f const &zero(void)
- Returns a zero-length vector. 
 
- 
LVecBase4f(void) = default
