public static bool Intersect(Triangle triangle, BoundingSphere sphere, out object intersection) { intersection = null; return Common.Intersection.Intersect(sphere, triangle.A.Position, out intersection) || Common.Intersection.Intersect(sphere, triangle.B.Position, out intersection) || Common.Intersection.Intersect(sphere, triangle.C.Position, out intersection); }
public static bool Intersect(Triangle triangle, Ray ray, out object intersection) { Common.RayIntersection r = new Common.RayIntersection(); Vector2 uv; bool hit = triangle.Intersect(ray, false, out r.Distance, out uv); r.Userdata = uv; intersection = r; return hit; }
public static Common.RSpatialRelation Relation(Software.Triangle a, Plane b) { var ra = Common.SpatialRelation.Relation(a.A.Position, b); var rb = Common.SpatialRelation.Relation(a.B.Position, b); var rc = Common.SpatialRelation.Relation(a.C.Position, b); if (ra == Common.RSpatialRelation.AInsideB && rb == Common.RSpatialRelation.AInsideB && rc == Common.RSpatialRelation.AInsideB) { return(Common.RSpatialRelation.AInsideB); } else if (ra == Common.RSpatialRelation.Outside && rb == Common.RSpatialRelation.Outside && rc == Common.RSpatialRelation.Outside) { return(Common.RSpatialRelation.Outside); } else { return(Common.RSpatialRelation.Intersect); } }
public static Vector3 Translation(Triangle t) { return t.center; }