Beispiel #1
0
/// Performs a raycast considering target ray and the transform of this physics mesh.
List<Intersection> PhysicsMesh::Raycast(Ray & ray, Matrix4f & transform)
{
	List<Intersection> intersections;
	// o-o
	for (int i = 0; i < triangles.Size(); ++i)
	{
		Triangle triangle = *triangles[i];	
		triangle.Transform(transform);
		// Do intersection test
		float distance;
		if (ray.Intersect(triangle, &distance))
		{
			Intersection newI;
			newI.distance = distance;
			intersections.Add(newI);
		}
	}
	return intersections;
}