You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.5 KiB
61 lines
1.5 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef AI_ROUTEDIST_H |
|
#define AI_ROUTEDIST_H |
|
|
|
#include "ai_navtype.h" |
|
|
|
#if defined( _WIN32 ) |
|
#pragma once |
|
#endif |
|
|
|
// ---------------------------------------------------------------------------- |
|
// Computes the route distance + route direction based on nav type |
|
// FIXME: Where should this go? |
|
// ---------------------------------------------------------------------------- |
|
inline float ComputePathDistance( Navigation_t navType, const Vector &start, const Vector &end ) |
|
{ |
|
if (navType == NAV_GROUND) |
|
{ |
|
return (end - start).Length2D(); |
|
} |
|
else |
|
{ |
|
return (end - start).Length(); |
|
} |
|
} |
|
|
|
inline void ComputePathVector( Navigation_t navType, const Vector &start, const Vector &end, Vector *pDelta ) |
|
{ |
|
if (navType == NAV_GROUND) |
|
{ |
|
Vector2DSubtract( end.AsVector2D(), start.AsVector2D(), pDelta->AsVector2D() ); |
|
pDelta->z = 0.0f; |
|
} |
|
else |
|
{ |
|
VectorSubtract( end, start, *pDelta ); |
|
} |
|
} |
|
|
|
inline float ComputePathDirection( Navigation_t navType, const Vector &start, const Vector &end, Vector *pDirection ) |
|
{ |
|
if (navType == NAV_GROUND) |
|
{ |
|
VectorSubtract( end, start, *pDirection ); |
|
pDirection->z = 0.0f; |
|
return Vector2DNormalize( pDirection->AsVector2D() ); |
|
} |
|
else |
|
{ |
|
VectorSubtract( end, start, *pDirection ); |
|
return VectorNormalize( *pDirection ); |
|
} |
|
} |
|
|
|
#endif // AI_ROUTEDIST_H
|
|
|