From eb4b3404aa00220d659e532151dab13d642c17a3 Mon Sep 17 00:00:00 2001 From: Svxy Date: Wed, 31 May 2023 17:31:32 -0400 Subject: Released --- tools/worldbuilder/code/gameengine/wbcamtarget.cpp | 296 +++++++++++++++++++++ 1 file changed, 296 insertions(+) create mode 100644 tools/worldbuilder/code/gameengine/wbcamtarget.cpp (limited to 'tools/worldbuilder/code/gameengine/wbcamtarget.cpp') diff --git a/tools/worldbuilder/code/gameengine/wbcamtarget.cpp b/tools/worldbuilder/code/gameengine/wbcamtarget.cpp new file mode 100644 index 0000000..add8eb4 --- /dev/null +++ b/tools/worldbuilder/code/gameengine/wbcamtarget.cpp @@ -0,0 +1,296 @@ +//============================================================================= +// Copyright (C) 2002 Radical Entertainment Ltd. All rights reserved. +// +// File: WBCamTarget.cpp +// +// Description: Implement WBCamTarget +// +// History: 19/07/2002 + Created -- Cary Brisebois +// +//============================================================================= + +//======================================== +// System Includes +//======================================== + +//======================================== +// Project Includes +//======================================== +#include "main/toolhack.h" +#include + +#include "WBCamTarget.h" +#include "utility/transformmatrix.h" +#include "main/constants.h" + +#include "utility/mext.h" + + +//****************************************************************************** +// +// Global Data, Local Data, Local Classes +// +//****************************************************************************** + +void GetMatrix( MObject& obj, tlMatrix& hmatrix ) +{ + MFnDagNode fnNode( obj ); + + MObject transform; + transform = fnNode.parent( 0 ); + MFnTransform fnTransform( transform ); + + MDagPath dagPath; + if ( MExt::FindDagNodeByName( &dagPath, fnTransform.name() ) ) + { + TransformMatrix tm( dagPath ); + + tm.GetHierarchyMatrixLHS( hmatrix ); + } + else + { + MExt::DisplayError( "Target matrix is screwy!" ); + } +} + + +//****************************************************************************** +// +// Public Member Functions +// +//****************************************************************************** + +//============================================================================== +// WBCamTarget::WBCamTarget +//============================================================================== +// Description: Constructor. +// +// Parameters: None. +// +// Return: N/A. +// +//============================================================================== +WBCamTarget::WBCamTarget() : + mTarget( MObject::kNullObj ) +{ +} + +//============================================================================== +// Description: Constructor. +// +// Parameters: MObject& target. +// +// Return: N/A. +// +//============================================================================== +WBCamTarget::WBCamTarget( MObject& target ) : + mTarget( target ) +{ +} + +//============================================================================== +// WBCamTarget::~WBCamTarget +//============================================================================== +// Description: Destructor. +// +// Parameters: None. +// +// Return: N/A. +// +//============================================================================== +WBCamTarget::~WBCamTarget() +{ +} + +//============================================================================= +// WBCamTarget::GetPosition +//============================================================================= +// Description: Comment +// +// Parameters: ( rmt::Vector* position ) +// +// Return: void +// +//============================================================================= +void WBCamTarget::GetPosition( rmt::Vector* position ) +{ + tlMatrix hmatrix; + GetMatrix( mTarget, hmatrix ); + + tlPoint point = hmatrix.GetRow( 3 ); + + *position = point; + + *position /= WBConstants::Scale; +} + +//============================================================================= +// WBCamTarget::GetHeading +//============================================================================= +// Description: Comment +// +// Parameters: ( rmt::Vector* heading ) +// +// Return: void +// +//============================================================================= +void WBCamTarget::GetHeading( rmt::Vector* heading ) +{ + tlMatrix hmatrix; + GetMatrix( mTarget, hmatrix ); + + tlPoint point = hmatrix.GetRow( 2 ); + + *heading = point; + + *heading /= WBConstants::Scale; +} + +//============================================================================= +// WBCamTarget::GetVUP +//============================================================================= +// Description: Comment +// +// Parameters: ( rmt::Vector* vup ) +// +// Return: void +// +//============================================================================= +void WBCamTarget::GetVUP( rmt::Vector* vup ) +{ + tlMatrix hmatrix; + GetMatrix( mTarget, hmatrix ); + + tlPoint point = hmatrix.GetRow( 1 ); + + *vup = point; + + *vup /= WBConstants::Scale; +} + +//============================================================================= +// WBCamTarget::GetVelocity +//============================================================================= +// Description: Comment +// +// Parameters: ( rmt::Vector* velocity ) +// +// Return: void +// +//============================================================================= +void WBCamTarget::GetVelocity( rmt::Vector* velocity ) +{ +} + +//============================================================================= +// WBCamTarget::GetID +//============================================================================= +// Description: Comment +// +// Parameters: () +// +// Return: unsigned +// +//============================================================================= +unsigned int WBCamTarget::GetID() +{ + return 1; +} + +//============================================================================= +// WBCamTarget::IsCar +//============================================================================= +// Description: Comment +// +// Parameters: () +// +// Return: bool +// +//============================================================================= +bool WBCamTarget::IsCar() +{ + return false; +} + +//============================================================================= +// WBCamTarget::IsAirborn +//============================================================================= +// Description: Comment +// +// Parameters: () +// +// Return: bool +// +//============================================================================= +bool WBCamTarget::IsAirborn() +{ + return false; +} + +//============================================================================= +// WBCamTarget::IsUnstable +//============================================================================= +// Description: Comment +// +// Parameters: () +// +// Return: bool +// +//============================================================================= +bool WBCamTarget::IsUnstable() +{ + return false; +} + +//============================================================================= +// WBCamTarget::IsQuickTurn +//============================================================================= +// Description: Comment +// +// Parameters: () +// +// Return: bool +// +//============================================================================= +bool WBCamTarget::IsQuickTurn() +{ + return false; +} + +//============================================================================= +// WBCamTarget::GetFirstPersonPosition +//============================================================================= +// Description: Comment +// +// Parameters: ( rmt::Vector* position ) +// +// Return: void +// +//============================================================================= +void WBCamTarget::GetFirstPersonPosition( rmt::Vector* position ) +{ + return; +} + +//============================================================================= +// WBCamTarget::GetName +//============================================================================= +// Description: Comment +// +// Parameters: () +// +// Return: const +// +//============================================================================= +const char* const WBCamTarget::GetName() +{ + MFnDependencyNode fnDepNode( mTarget ); + + return fnDepNode.name().asChar(); +} + +//****************************************************************************** +// +// Private Member Functions +// +//****************************************************************************** -- cgit v1.2.3