Portable Half-Life SDK. GoldSource and Xash3D. Crossplatform.
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.

60 lines
1.5 KiB

9 years ago
/***
*
* 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.
*
****/
9 years ago
#include "extdll.h"
#include "plane.h"
//=========================================================
// Plane
//=========================================================
9 years ago
CPlane::CPlane( void )
9 years ago
{
m_fInitialized = FALSE;
}
//=========================================================
// InitializePlane - Takes a normal for the plane and a
// point on the plane and
//=========================================================
9 years ago
void CPlane::InitializePlane( const Vector &vecNormal, const Vector &vecPoint )
9 years ago
{
m_vecNormal = vecNormal;
9 years ago
m_flDist = DotProduct( m_vecNormal, vecPoint );
9 years ago
m_fInitialized = TRUE;
}
//=========================================================
// PointInFront - determines whether the given vector is
// in front of the plane.
//=========================================================
9 years ago
BOOL CPlane::PointInFront( const Vector &vecPoint )
9 years ago
{
float flFace;
9 years ago
if( !m_fInitialized )
9 years ago
{
return FALSE;
}
9 years ago
flFace = DotProduct( m_vecNormal, vecPoint ) - m_flDist;
9 years ago
9 years ago
if( flFace >= 0 )
9 years ago
{
return TRUE;
}
return FALSE;
}