Example #1
0
bool Enemy::isCloseForPlayerToAttack(M3DVector3f &player_pos, float PlayerDistSqrd) {
	M3DVector3f enemyPos;
	GetOrigin(enemyPos);
	float dist = m3dGetDistanceSquared3(player_pos,enemyPos);
	return PlayerDistSqrd >= dist;
	
}
Example #2
0
// ditto above... but with floats
float m3dClosestPointOnRay(M3DVector3f vPointOnRay, const M3DVector3f vRayOrigin, const M3DVector3f vUnitRayDir, 
							 const M3DVector3f vPointInSpace)
	{
	M3DVector3f v;
	m3dSubtractVectors3(v, vPointInSpace, vRayOrigin);
	
	float t = m3dDotProduct3(vUnitRayDir, v);
	
	// This is the point on the ray
	vPointOnRay[0] = vRayOrigin[0] + (t * vUnitRayDir[0]);
	vPointOnRay[1] = vRayOrigin[1] + (t * vUnitRayDir[1]);
	vPointOnRay[2] = vRayOrigin[2] + (t * vUnitRayDir[2]);
	
	return m3dGetDistanceSquared3(vPointOnRay, vPointInSpace);
	}