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);
        }
예제 #3
0
 public abstract void Intersect(IIntersectionVisitor iv, IDrawable drawable);
예제 #4
0
 public abstract Intersector Clone(IIntersectionVisitor iv);