|
Panda3D
|
This is the base class for all three-component vectors and points. More...
Public Member Functions | |
| VBase3D () | |
| VBase3D (VBase3D const copy) | |
| VBase3D (double x, double y, double z) | |
| VBase3D (double fill_value) | |
| unsigned int | addHash (unsigned int hash) |
| Adds the vector into the running hash. | |
| unsigned int | addHash (unsigned int hash, double threshold) |
| Adds the vector into the running hash. | |
| addToCell (int i, double value) | |
| addX (double value) | |
| addY (double value) | |
| addZ (double value) | |
| bool | almostEqual (VBase3D const other) |
| Returns true if two vectors are memberwise equal within a default tolerance based on the numeric type. | |
| bool | almostEqual (VBase3D const other, double threshold) |
| Returns true if two vectors are memberwise equal within a specified tolerance. | |
| int | compareTo (VBase3D const other) |
| This flavor of compare_to uses a default threshold value based on the numeric type. | |
| int | compareTo (VBase3D const other, double threshold) |
| Sorts vectors lexicographically, componentwise. | |
| VBase3D | cross (VBase3D const other) |
| crossInto (VBase3D const other) | |
| double | dot (VBase3D const other) |
| fill (double fill_value) | |
| Sets each element of the vector to the indicated fill_value. | |
| VBase3D | fmax (VBase3D const other) |
| VBase3D | fmin (VBase3D const other) |
| generateHash (ChecksumHashGenerator hashgen) | |
| Adds the vector to the indicated hash generator. | |
| generateHash (ChecksumHashGenerator hashgen, double threshold) | |
| Adds the vector to the indicated hash generator. | |
| PyObject | getattr (string attr_name) |
| double | getCell (int i) |
| getData () | |
| Returns the address of the first of the three data elements in the vector. | |
| unsigned int | getHash () |
| Returns a suitable hash for phash_map. | |
| unsigned int | getHash (double threshold) |
| Returns a suitable hash for phash_map. | |
| int | getNumComponents () |
| Returns the number of elements in the vector, three. | |
| VBase3D | getStandardizedHpr () |
| Try to un-spin the hpr to a standard form. | |
| double | getX () |
| VBase2D | getXy () |
| Returns a 2-component vector that shares just the first two components of this vector. | |
| VBase2D | getXz () |
| Returns a 2-component vector that shares just the first and last components of this vector. | |
| double | getY () |
| VBase2D | getYz () |
| Returns a 2-component vector that shares just the last two components of this vector. | |
| double | getZ () |
| bool | isNan () |
| Returns true if any component of the vector is not-a-number, false otherwise. | |
| double | length () |
| Returns the length of the vector, by the Pythagorean theorem. | |
| double | lengthSquared () |
| Returns the square of the vector's length, cheap and easy. | |
| bool | normalize () |
| Normalizes the vector in place. | |
| operator new (unsigned int size) | |
| bool | operator!= (VBase3D const other) |
| VBase3D | operator* (double scalar) |
| VBase3D | operator*= (double scalar) |
| VBase3D | operator+ (VBase3D const other) |
| VBase3D | operator+= (VBase3D const other) |
| VBase3D | operator- () |
| VBase3D | operator- (VBase3D const other) |
| VBase3D | operator-= (VBase3D const other) |
| VBase3D | operator/ (double scalar) |
| VBase3D | operator/= (double scalar) |
| bool | operator< (VBase3D const other) |
| This performs a lexicographical comparison. | |
| VBase3D | operator= (double fill_value) |
| VBase3D | operator= (VBase3D const copy) |
| bool | operator== (VBase3D const other) |
| operator[] (int i) | |
| double | operator[] (int i) |
| output (ostream out) | |
| VBase3D | project (VBase3D const onto) |
| Returns a new vector representing the projection of this vector onto another one. | |
| pythonRepr (ostream out, string class_name) | |
| readDatagram (DatagramIterator source) | |
| Reads the vector from the Datagram using get_stdfloat(). | |
| readDatagramFixed (DatagramIterator source) | |
| Reads the vector from the Datagram using get_float32() or get_float64(). | |
| PyObject | reduce (PyObject self) |
| set (double x, double y, double z) | |
| int | setattr (PyObject self, string attr_name, PyObject assign) |
| setCell (int i, double value) | |
| setitem (int i, double v) | |
| setX (double value) | |
| setY (double value) | |
| setZ (double value) | |
| writeDatagram (Datagram destination) | |
| Writes the vector to the Datagram using add_stdfloat(). | |
| writeDatagramFixed (Datagram destination) | |
| 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(). | |
Static Public Member Functions | |
| static TypeHandle | getClassType () |
| static int | size () |
| Returns 3: the number of components of a LVecBase3. | |
| static VBase3D const | unitX () |
| Returns a unit X vector. | |
| static VBase3D const | unitY () |
| Returns a unit Y vector. | |
| static VBase3D const | unitZ () |
| Returns a unit Z vector. | |
| static VBase3D const | zero () |
| Returns a zero-length vector. | |
This is the base class for all three-component vectors and points.
| VBase3D | ( | ) |
| VBase3D | ( | double | fill_value | ) |
| VBase3D | ( | double | x, |
| double | y, | ||
| double | z | ||
| ) |
| addToCell | ( | int | i, |
| double | value | ||
| ) |
| addX | ( | double | value | ) |
| addY | ( | double | value | ) |
| addZ | ( | double | value | ) |
| bool almostEqual | ( | VBase3D const | other, |
| double | threshold | ||
| ) |
Returns true if two vectors are memberwise equal within a specified tolerance.
| bool almostEqual | ( | VBase3D const | other | ) |
Returns true if two vectors are memberwise equal within a default tolerance based on the numeric type.
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).
| crossInto | ( | VBase3D const | other | ) |
| double dot | ( | VBase3D const | other | ) |
| fill | ( | double | fill_value | ) |
Sets each element of the vector to the indicated fill_value.
This is particularly useful for initializing to zero.
| generateHash | ( | ChecksumHashGenerator | hashgen | ) |
Adds the vector to the indicated hash generator.
| generateHash | ( | ChecksumHashGenerator | hashgen, |
| double | threshold | ||
| ) |
Adds the vector to the indicated hash generator.
| double getCell | ( | int | i | ) |
| static TypeHandle getClassType | ( | ) | [static] |
| 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.
| unsigned int getHash | ( | ) |
Returns a suitable hash for phash_map.
| unsigned int getHash | ( | double | threshold | ) |
Returns a suitable hash for phash_map.
| int getNumComponents | ( | ) |
Returns the number of elements in the vector, three.
| VBase3D getStandardizedHpr | ( | ) |
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
| double getX | ( | ) |
| VBase2D getXy | ( | ) |
| VBase2D getXz | ( | ) |
| double getY | ( | ) |
| VBase2D getYz | ( | ) |
| double getZ | ( | ) |
| bool isNan | ( | ) |
Returns true if any component of the vector is not-a-number, false otherwise.
| double length | ( | ) |
Returns the length of the vector, by the Pythagorean theorem.
| double lengthSquared | ( | ) |
Returns the square of the vector's length, cheap and easy.
| bool normalize | ( | ) |
Normalizes the vector in place.
Returns true if the vector was normalized, false if it was a zero-length vector.
| operator new | ( | unsigned int | size | ) |
| bool operator!= | ( | VBase3D const | other | ) |
| VBase3D operator*= | ( | double | scalar | ) |
| VBase3D operator/= | ( | double | scalar | ) |
| bool operator< | ( | VBase3D const | other | ) |
This performs a lexicographical comparison.
It's of questionable mathematical meaning, but sometimes has a practical purpose for sorting unique vectors, especially in an STL container. Also see compare_to().
| bool operator== | ( | VBase3D const | other | ) |
| operator[] | ( | int | i | ) |
| double operator[] | ( | int | i | ) |
| output | ( | ostream | out | ) |
| readDatagram | ( | DatagramIterator | source | ) |
Reads the vector from the Datagram using get_stdfloat().
| readDatagramFixed | ( | DatagramIterator | source | ) |
Reads the vector from the Datagram using get_float32() or get_float64().
See write_datagram_fixed().
| PyObject reduce | ( | PyObject | self | ) |
| set | ( | double | x, |
| double | y, | ||
| double | z | ||
| ) |
| int setattr | ( | PyObject | self, |
| string | attr_name, | ||
| PyObject | assign | ||
| ) |
| setCell | ( | int | i, |
| double | value | ||
| ) |
| setitem | ( | int | i, |
| double | v | ||
| ) |
| setX | ( | double | value | ) |
| setY | ( | double | value | ) |
| setZ | ( | double | value | ) |
| static int size | ( | ) | [static] |
Returns 3: the number of components of a LVecBase3.
| static VBase3D const unitX | ( | ) | [static] |
| static VBase3D const unitY | ( | ) | [static] |
| static VBase3D const unitZ | ( | ) | [static] |
| writeDatagram | ( | Datagram | destination | ) |
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 | ( | Datagram | destination | ) |
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.
1.7.3