/*** * * Copyright (c) 1999, 2000 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 "util.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; }