|
CMSDK 2.0.1
Cross-platform C++ base library and SDK for the Psyclone AIOS platform
|
3D vector with dot/cross products, projection and angle math. More...
#include <MathClasses.h>
Public Member Functions | |
| Vector3D () | |
| Zero vector. | |
| Vector3D (double x, double y, double z) | |
| From components. | |
| virtual | ~Vector3D () |
| double | operator[] (int n) const |
| Component access: 0=x, 1=y, 2=z. | |
| bool | operator== (const Vector3D &v) const |
| Component equality. | |
| Vector3D | operator- (const Vector3D &v) const |
| Difference. | |
| Vector3D | operator+ (const Vector3D &v) const |
| Sum. | |
| double | operator* (const Vector3D &v) const |
| Dot product. | |
| Vector3D | operator- (double a) const |
| Subtract scalar from each component. | |
| Vector3D | operator+ (double a) const |
| Add scalar to each component. | |
| Vector3D | operator* (double a) const |
| Scale. | |
| const Vector3D & | operator-= (const Vector3D &v) |
| In-place subtract. | |
| const Vector3D & | operator+= (const Vector3D &v) |
| In-place add. | |
| const Vector3D & | operator-= (double a) |
| In-place scalar subtract. | |
| const Vector3D & | operator+= (double a) |
| In-place scalar add. | |
| const Vector3D & | operator*= (double a) |
| In-place scale. | |
| double | getX () const |
| double | getY () const |
| double | getZ () const |
| bool | set (const PointFloat &p1, const PointFloat &p2) |
| Set as p2-p1. | |
| bool | set (double x1, double y1, double z1, double x2, double y2, double z2) |
| Set as the difference of two coordinate triples. | |
| bool | set (double x, double y, double z) |
| Set components. | |
| bool | setX (double v) |
| Set x. | |
| bool | setY (double v) |
| Set y. | |
| bool | setZ (double v) |
| Set z. | |
| double | length () const |
| Vector3D | product (const Vector3D &v) const |
Cross product with v. | |
| bool | isOrthogonalWith (const Vector3D &v) const |
| bool | isParallelWith (const Vector3D &v) const |
| Vector3D | getProjectionOn (const Vector3D &v) const |
| Vector3D | getUnitVector () const |
| double | getAngle (const Vector3D &v) const |
| double | getArea (const Vector3D &v) const |
| std::string | print () |
| Human-readable representation for debugging. | |
Public Attributes | |
| double | x |
| X component. | |
| double | y |
| Y component. | |
| double | z |
| Z component. | |
3D vector with dot/cross products, projection and angle math.
operator* between vectors is the dot product; use product() for the cross product. Angles are radians. Follows the same conventions as Vector2D.
Definition at line 725 of file MathClasses.h.
| cmlabs::Vector3D::Vector3D | ( | ) |
Zero vector.
Definition at line 1116 of file MathClasses.cpp.
Referenced by getAngle(), getArea(), getProjectionOn(), getUnitVector(), isOrthogonalWith(), isParallelWith(), operator*(), operator*(), operator*=(), operator+(), operator+(), operator+=(), operator+=(), operator-(), operator-(), operator-=(), operator-=(), operator==(), and product().
| cmlabs::Vector3D::Vector3D | ( | double | x, |
| double | y, | ||
| double | z ) |
|
virtual |
Definition at line 1118 of file MathClasses.cpp.
| double cmlabs::Vector3D::getAngle | ( | const Vector3D & | v | ) | const |
v in radians. Definition at line 1269 of file MathClasses.cpp.
References length(), and Vector3D().
| double cmlabs::Vector3D::getArea | ( | const Vector3D & | v | ) | const |
v. Definition at line 1276 of file MathClasses.cpp.
References length(), product(), and Vector3D().
v. Definition at line 1260 of file MathClasses.cpp.
References getUnitVector(), and Vector3D().
Referenced by cmlabs::MathClasses_UnitTest().
| Vector3D cmlabs::Vector3D::getUnitVector | ( | ) | const |
Definition at line 1265 of file MathClasses.cpp.
References length(), and Vector3D().
Referenced by getProjectionOn(), and cmlabs::MathClasses_UnitTest().
| double cmlabs::Vector3D::getX | ( | ) | const |
| double cmlabs::Vector3D::getY | ( | ) | const |
| double cmlabs::Vector3D::getZ | ( | ) | const |
| bool cmlabs::Vector3D::isOrthogonalWith | ( | const Vector3D & | v | ) | const |
Definition at line 1252 of file MathClasses.cpp.
References Vector3D().
| bool cmlabs::Vector3D::isParallelWith | ( | const Vector3D & | v | ) | const |
Definition at line 1256 of file MathClasses.cpp.
References length(), product(), and Vector3D().
| double cmlabs::Vector3D::length | ( | ) | const |
Definition at line 1241 of file MathClasses.cpp.
Referenced by getAngle(), getArea(), getUnitVector(), isParallelWith(), and cmlabs::MathClasses_UnitTest().
| double cmlabs::Vector3D::operator* | ( | const Vector3D & | v | ) | const |
| Vector3D cmlabs::Vector3D::operator* | ( | double | a | ) | const |
| const Vector3D & cmlabs::Vector3D::operator*= | ( | double | a | ) |
In-place scale.
Definition at line 1211 of file MathClasses.cpp.
References Vector3D(), x, y, and z.
| Vector3D cmlabs::Vector3D::operator+ | ( | double | a | ) | const |
Add scalar to each component.
Definition at line 1167 of file MathClasses.cpp.
References Vector3D(), x, y, and z.
| const Vector3D & cmlabs::Vector3D::operator+= | ( | double | a | ) |
In-place scalar add.
Definition at line 1204 of file MathClasses.cpp.
References Vector3D(), x, y, and z.
| Vector3D cmlabs::Vector3D::operator- | ( | double | a | ) | const |
Subtract scalar from each component.
Definition at line 1159 of file MathClasses.cpp.
References Vector3D(), x, y, and z.
In-place subtract.
Definition at line 1183 of file MathClasses.cpp.
References Vector3D(), x, y, and z.
| const Vector3D & cmlabs::Vector3D::operator-= | ( | double | a | ) |
In-place scalar subtract.
Definition at line 1197 of file MathClasses.cpp.
References Vector3D(), x, y, and z.
| bool cmlabs::Vector3D::operator== | ( | const Vector3D & | v | ) | const |
Component equality.
Definition at line 1132 of file MathClasses.cpp.
References Vector3D(), x, y, and z.
| double cmlabs::Vector3D::operator[] | ( | int | n | ) | const |
Component access: 0=x, 1=y, 2=z.
Definition at line 1120 of file MathClasses.cpp.
| std::string cmlabs::Vector3D::print | ( | ) |
Human-readable representation for debugging.
Definition at line 1237 of file MathClasses.cpp.
References cmlabs::utils::StringFormat(), x, y, and z.
Cross product with v.
Definition at line 1245 of file MathClasses.cpp.
References Vector3D(), x, y, and z.
Referenced by getArea(), isParallelWith(), and cmlabs::MathClasses_UnitTest().
| bool cmlabs::Vector3D::set | ( | const PointFloat & | p1, |
| const PointFloat & | p2 ) |
Set as p2-p1.
Definition at line 1224 of file MathClasses.cpp.
References set(), cmlabs::PointFloat::x, cmlabs::PointFloat::y, and cmlabs::PointFloat::z.
| bool cmlabs::Vector3D::set | ( | double | x, |
| double | y, | ||
| double | z ) |
| bool cmlabs::Vector3D::set | ( | double | x1, |
| double | y1, | ||
| double | z1, | ||
| double | x2, | ||
| double | y2, | ||
| double | z2 ) |
Set as the difference of two coordinate triples.
Definition at line 1228 of file MathClasses.cpp.
References set().
| bool cmlabs::Vector3D::setX | ( | double | v | ) |
| bool cmlabs::Vector3D::setY | ( | double | v | ) |
| bool cmlabs::Vector3D::setZ | ( | double | v | ) |
| double cmlabs::Vector3D::x |
X component.
Definition at line 732 of file MathClasses.h.
Referenced by getX(), length(), cmlabs::MathClasses_UnitTest(), operator*(), operator*(), operator*=(), cmlabs::Point::operator+(), cmlabs::PointFloat::operator+(), operator+(), operator+(), operator+=(), operator+=(), operator-(), operator-(), operator-=(), operator-=(), operator==(), operator[](), print(), product(), set(), setX(), Vector3D(), and Vector3D().
| double cmlabs::Vector3D::y |
Y component.
Definition at line 733 of file MathClasses.h.
Referenced by getY(), length(), cmlabs::MathClasses_UnitTest(), operator*(), operator*(), operator*=(), cmlabs::Point::operator+(), cmlabs::PointFloat::operator+(), operator+(), operator+(), operator+=(), operator+=(), operator-(), operator-(), operator-=(), operator-=(), operator==(), operator[](), print(), product(), set(), setY(), Vector3D(), and Vector3D().
| double cmlabs::Vector3D::z |
Z component.
Definition at line 734 of file MathClasses.h.
Referenced by getZ(), length(), cmlabs::MathClasses_UnitTest(), operator*(), operator*(), operator*=(), cmlabs::Point::operator+(), cmlabs::PointFloat::operator+(), operator+(), operator+(), operator+=(), operator+=(), operator-(), operator-(), operator-=(), operator-=(), operator==(), operator[](), print(), product(), set(), setZ(), Vector3D(), and Vector3D().