示例#1
0
文件: Frustum.cpp 项目: achoum/spring
Frustum::VisType Frustum::IsBoxVisible (const Vector3& min, const Vector3& max)
{
	bool full = true;
	Vector3 c,f;
	float dc, df;

	for(int a=0;a<planes.size();a++)
	{
		BoxPlaneVerts (min, max, planes[a].GetVector(), c, f);
		
		dc = planes[a].Dist (&c);
		df = planes[a].Dist (&f);
		if(dc < 0.0f || df < 0.0f) full=false;
		if(dc < 0.0f && df < 0.0f) return Outside;
	}

	return full ? Inside : Partial;
}
示例#2
0
Frustum::VisType Frustum::IsBoxVisible (const Vector3& min, const Vector3& max)
{
	bool full = true;
	Vector3 c,f;
	float dc, df;

	std::vector<Plane>::iterator p;
	for(p=planes.begin(); p!=planes.end(); ++p)
	{
		BoxPlaneVerts (min, max, p->GetVector(), c, f);
		
		dc = p->Dist (&c);
		df = p->Dist (&f);
		if(dc < 0.0f || df < 0.0f) full=false;
		if(dc < 0.0f && df < 0.0f) return Outside;
	}

	return full ? Inside : Partial;
}