public override void Intersect(IIntersectionVisitor iv, IDrawable drawable) { var bb = drawable.GetBoundingBox(); if (Intersects(BoundingSphere.Create(drawable.GetBoundingBox()))) { var intersection = new Intersection(Start, bb.Center, drawable, iv.NodePath.Copy()); InsertIntersection(intersection); } }
public override Intersector Clone(IIntersectionVisitor iv) { Matrix4x4 matrix; Matrix4x4.Invert(iv.GetModelMatrix(), out matrix); var lsi = new LineSegmentIntersector( matrix.PreMultiply(Start), matrix.PreMultiply(End)); lsi.Parent = this; lsi.IntersectionLimit = this.IntersectionLimit; return(lsi); }
public abstract void Intersect(IIntersectionVisitor iv, IDrawable drawable);
public abstract Intersector Clone(IIntersectionVisitor iv);