LVecBase3d

class LVecBase3d

This is the base class for all three-component vectors and points.

Inheritance diagram

digraph inheritance1af822f164 { bgcolor=transparent; rankdir=BT; size="8.0, 12.0"; "DTOOL_SUPER_BASE" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style=""]; "LVecBase3d" [URL="acron.core.LVecBase3d.html#acron.core.LVecBase3d",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="",target="_top",tooltip="/**"]; "DTOOL_SUPER_BASE" -> "LVecBase3d" [arrowsize=0.75,style=""]; }
LVecBase3d.__add__()
LVecBase3d.__ceil__()
LVecBase3d.__div__()
LVecBase3d.__eq__()
LVecBase3d.__floor__()
LVecBase3d.__floordiv__()
LVecBase3d.__getattr__()
LVecBase3d.__getbuffer__()
LVecBase3d.__getitem__()
LVecBase3d.__iadd__()
LVecBase3d.__idiv__()
LVecBase3d.__ifloordiv__()
LVecBase3d.__imul__()
LVecBase3d.__init__()
LVecBase3d.__ipow__()
LVecBase3d.__isub__()
LVecBase3d.__lt__()
LVecBase3d.__mul__()
LVecBase3d.__ne__()
LVecBase3d.__pow__()
LVecBase3d.__reduce__()
LVecBase3d.__repr__()
LVecBase3d.__rmul__()
LVecBase3d.__round__()
LVecBase3d.__setattr__()
LVecBase3d.__sub__()
LVecBase3d.__sub__()
LVecBase3d.add_hash()

Adds the vector into the running hash.

Adds the vector into the running hash.

LVecBase3d.add_to_cell()

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:

LVecBase3d.add_x()
LVecBase3d.add_y()
LVecBase3d.add_z()
LVecBase3d.almost_equal()

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.

LVecBase3d.assign()
LVecBase3d.compare_to()

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).

LVecBase3d.componentwise_mult()
LVecBase3d.cross()
LVecBase3d.cross_into()
LVecBase3d.dot()
LVecBase3d.fill()

Sets each element of the vector to the indicated fill_value. This is particularly useful for initializing to zero.

LVecBase3d.fmax()
LVecBase3d.fmin()
LVecBase3d.generate_hash()

Adds the vector to the indicated hash generator.

Adds the vector to the indicated hash generator.

LVecBase3d.get_cell()
static LVecBase3d.get_class_type()
static LVecBase3d.get_data()

Returns the address of the first of the three data elements in the vector. The remaining elements occupy the next positions consecutively in memory.

LVecBase3d.get_hash()

Returns a suitable hash for phash_map.

Returns a suitable hash for phash_map.

static LVecBase3d.get_num_components()
LVecBase3d.get_standardized_hpr()

Try to un-spin the hpr to a standard form. Like all standards, someone decides between many arbitrary possible standards. This function assumes that 0 and 360 are the same, as is 720 and -360. Also 180 and -180 are the same. Another example is -90 and 270. Each element will be in the range -180.0 to 179.99999. The original usage of this function is for human readable output.

It doesn’t work so well for asserting that foo_hpr is roughly equal to bar_hpr. Try using LQuaternionf::is_same_direction() for that. See Also: get_standardized_rotation, LQuaternion::is_same_direction

LVecBase3d.get_x()
LVecBase3d.get_xy()

Returns a 2-component vector that shares just the first two components of this vector.

LVecBase3d.get_xz()

Returns a 2-component vector that shares just the first and last components of this vector.

LVecBase3d.get_y()
LVecBase3d.get_yz()

Returns a 2-component vector that shares just the last two components of this vector.

LVecBase3d.get_z()
LVecBase3d.is_nan()

Returns true if any component of the vector is not-a-number, false otherwise.

LVecBase3d.length()

Returns the length of the vector, by the Pythagorean theorem.

LVecBase3d.length_squared()

Returns the square of the vector’s length, cheap and easy.

LVecBase3d.normalize()

Normalizes the vector in place. Returns true if the vector was normalized, false if it was a zero-length vector.

LVecBase3d.normalized()

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.

static LVecBase3d.operator_delete()
static LVecBase3d.operator_delete()
static LVecBase3d.operator_new()
static LVecBase3d.operator_new()
LVecBase3d.output()
LVecBase3d.project()

Returns a new vector representing the projection of this vector onto another one. The resulting vector will be a scalar multiple of onto.

LVecBase3d.read_datagram()

Reads the vector from the Datagram using get_stdfloat().

LVecBase3d.read_datagram_fixed()

Reads the vector from the Datagram using get_float32() or get_float64(). See write_datagram_fixed().

LVecBase3d.set()
LVecBase3d.set_cell()
LVecBase3d.set_x()
LVecBase3d.set_y()
LVecBase3d.set_z()
static LVecBase3d.size()
static LVecBase3d.unit_x()

Returns a unit X vector.

static LVecBase3d.unit_y()

Returns a unit Y vector.

static LVecBase3d.unit_z()

Returns a unit Z vector.

static LVecBase3d.validate_ptr()
LVecBase3d.write_datagram()

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.

LVecBase3d.write_datagram_fixed()

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.

static LVecBase3d.zero()

Returns a zero-length vector.