hlsdk-xash3d/dlls/plane.cpp

60 lines
1.5 KiB
C++

/***
*
* Copyright (c) 1996-2002, Valve LLC. All rights reserved.
*
* This product contains software technology licensed from Id
* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc.
* All Rights Reserved.
*
* Use, distribution, and modification of this source code and/or resulting
* object code is restricted to non-commercial enhancements to products from
* Valve LLC. All other use, distribution, or modification is prohibited
* without written permission from Valve LLC.
*
****/
#include "extdll.h"
#include "plane.h"
//=========================================================
// Plane
//=========================================================
CPlane::CPlane( void )
{
m_fInitialized = FALSE;
}
//=========================================================
// InitializePlane - Takes a normal for the plane and a
// point on the plane and
//=========================================================
void CPlane::InitializePlane( const Vector &vecNormal, const Vector &vecPoint )
{
m_vecNormal = vecNormal;
m_flDist = DotProduct( m_vecNormal, vecPoint );
m_fInitialized = TRUE;
}
//=========================================================
// PointInFront - determines whether the given vector is
// in front of the plane.
//=========================================================
BOOL CPlane::PointInFront( const Vector &vecPoint )
{
float flFace;
if( !m_fInitialized )
{
return FALSE;
}
flFace = DotProduct( m_vecNormal, vecPoint ) - m_flDist;
if( flFace >= 0 )
{
return TRUE;
}
return FALSE;
}