LVecBase3d

from panda3d.core import LVecBase3d
class LVecBase3d

Bases:

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

Inheritance diagram

Inheritance diagram of LVecBase3d

__add__(other: LVecBase3d) LVecBase3d
__ceil__() object
__div__(scalar: float) LVecBase3d
__eq__(other: LVecBase3d) bool
__floor__() object
__floordiv__(scalar: float) object
__getattr__(attr_name: str) object
__getitem__(i: int, assign_val: float)
__getitem__(i: int) float
__iadd__(other: LVecBase3d) LVecBase3d
__idiv__(scalar: float) LVecBase3d
__ifloordiv__(scalar: float) object
__imul__(scalar: float) LVecBase3d
__init__()
__init__(copy: LVecBase2d, z: float)
__init__(param0: LVecBase3d)
__init__(fill_value: float)
__init__(x: float, y: float, z: float)
__ipow__(exponent: float) object
__isub__(other: LVecBase3d) LVecBase3d
__lt__(other: LVecBase3d) bool
__mul__(scalar: float) LVecBase3d
__ne__(other: LVecBase3d) bool
__pow__(exponent: float) object
__reduce__() object
__repr__() str
__round__() object
__setattr__(attr_name: str, assign: object) int
__sub__(other: LVecBase3d) LVecBase3d
__sub__(other: LVecBase3d) LVecBase3d
addHash(hash: int) int

Adds the vector into the running hash.

addHash(hash: int, threshold: float) int

Adds the vector into the running hash.

addToCell(i: int, value: float)

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:

addX(value: float)
addY(value: float)
addZ(value: float)
almostEqual(other: LVecBase3d) bool

Returns true if two vectors are memberwise equal within a default tolerance based on the numeric type.

almostEqual(other: LVecBase3d, threshold: float) bool

Returns true if two vectors are memberwise equal within a specified tolerance.

assign(copy: LVecBase3d) LVecBase3d
assign(fill_value: float) LVecBase3d
compareTo(other: LVecBase3d) int

This flavor of compareTo() uses a default threshold value based on the numeric type.

compareTo(other: LVecBase3d, threshold: float) int

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

componentwiseMult(other: LVecBase3d)
cross(other: LVecBase3d) LVecBase3d
crossInto(other: LVecBase3d)
dot(other: LVecBase3d) float
fill(fill_value: float)

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

fmax(other: LVecBase3d) LVecBase3d
fmin(other: LVecBase3d) LVecBase3d
generateHash(hashgen: ChecksumHashGenerator)

Adds the vector to the indicated hash generator.

generateHash(hashgen: ChecksumHashGenerator, threshold: float)

Adds the vector to the indicated hash generator.

getCell(i: int) float
static getClassType() TypeHandle
getData()

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

getHash() int

Returns a suitable hash for phash_map.

getHash(threshold: float) int

Returns a suitable hash for phash_map.

static getNumComponents() int
getStandardizedHpr() LVecBase3d

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.isSameDirection() for that. See Also: get_standardized_rotation, LQuaternion::is_same_direction

getX() float
getXy() LVecBase2d

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

getXz() LVecBase2d

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

getY() float
getYz() LVecBase2d

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

getZ() float
isNan() bool

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

length() float

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

lengthSquared() float

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

normalize() bool

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

normalized() LVecBase3d

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.

operatorNew(size: int)
output(out: ostream)
project(onto: LVecBase3d) LVecBase3d

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

readDatagram(source: DatagramIterator)

Reads the vector from the Datagram using get_stdfloat().

readDatagramFixed(source: DatagramIterator)

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

set(x: float, y: float, z: float)
setCell(i: int, value: float)
setX(value: float)
setY(value: float)
setZ(value: float)
static size() int
static unitX() LVecBase3d

Returns a unit X vector.

static unitY() LVecBase3d

Returns a unit Y vector.

static unitZ() LVecBase3d

Returns a unit Z vector.

writeDatagram(destination: 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.

writeDatagramFixed(destination: Datagram)

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.setStdfloatDouble(). This is appropriate when you want to write a fixed-width value to the datagram, especially when you are not writing a bam file.

property x float
property xy LVecBase2d

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

property xz LVecBase2d

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

property y float
property yz LVecBase2d

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

property z float
static zero() LVecBase3d

Returns a zero-length vector.