diff options
author | Paul Gilbert | 2016-07-16 17:05:51 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-07-17 13:09:51 -0400 |
commit | e674116edbd61054dae994033c0b0c10259b8aed (patch) | |
tree | d85e92193f595a6df9e52d59b89683bdf8849bf9 | |
parent | 9b1efa3bf5696ea606b9374d216d4a1ecf52610b (diff) | |
download | scummvm-rg350-e674116edbd61054dae994033c0b0c10259b8aed.tar.gz scummvm-rg350-e674116edbd61054dae994033c0b0c10259b8aed.tar.bz2 scummvm-rg350-e674116edbd61054dae994033c0b0c10259b8aed.zip |
TITANIC: More FVector methods
-rw-r--r-- | engines/titanic/star_control/fvector.cpp | 20 | ||||
-rw-r--r-- | engines/titanic/star_control/fvector.h | 8 |
2 files changed, 28 insertions, 0 deletions
diff --git a/engines/titanic/star_control/fvector.cpp b/engines/titanic/star_control/fvector.cpp index a7520bf508..ce7b62bc16 100644 --- a/engines/titanic/star_control/fvector.cpp +++ b/engines/titanic/star_control/fvector.cpp @@ -22,6 +22,7 @@ #include "titanic/star_control/fvector.h" #include "common/algorithm.h" +#include "common/textconsole.h" namespace Titanic { @@ -47,4 +48,23 @@ void FVector::fn3() { _z *= 1.0 / hyp; } +double FVector::getDistance(const FVector *src) const { + double xd = src->_x - _x; + double yd = src->_y - _y; + double zd = src->_z - _z; + + return sqrt(xd * xd + yd * yd + zd * zd); +} + +void FVector::fn4(FVector *dest, const FVector *v1, const FVector *v2) { + FVector tempVector(v1->_x + v2->_x, v1->_y + v2->_y, v1->_z + v2->_z); + tempVector.fn3(); + + *dest = tempVector; +} + +void FVector::fn5(FVector *dest, const void *v) const { + error("TODO: FVector::fn5"); +} + } // End of namespace Titanic diff --git a/engines/titanic/star_control/fvector.h b/engines/titanic/star_control/fvector.h index 75ad2f8fe0..9af18dc71a 100644 --- a/engines/titanic/star_control/fvector.h +++ b/engines/titanic/star_control/fvector.h @@ -41,6 +41,14 @@ public: void fn3(); /** + * Returns the distance between a specified point and this one + */ + double getDistance(const FVector *src) const; + + static void fn4(FVector *dest, const FVector *v1, const FVector *v2); + void fn5(FVector *dest, const void *v) const; + + /** * Returns true if the passed vector equals this one */ bool operator==(const FVector &src) const { |