public abstract bool IntersectVisit(Shape other);
public override bool IntersectVisit(Shape other) { return other.Intersect(this); }
public ShapeObject(Shape collisionShape) { _collisionShape = collisionShape; }