From e674116edbd61054dae994033c0b0c10259b8aed Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 16 Jul 2016 17:05:51 -0400 Subject: TITANIC: More FVector methods --- engines/titanic/star_control/fvector.cpp | 20 ++++++++++++++++++++ engines/titanic/star_control/fvector.h | 8 ++++++++ 2 files changed, 28 insertions(+) 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 @@ -40,6 +40,14 @@ public: void multiply(FVector *dest, const FVector *src); 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 */ -- cgit v1.2.3