public abstract void RunVisitor(DMVisitor visitor);
public void RunVisitor(DMVisitor visitor) { shapes.ForEach(s => s.RunVisitor(visitor)); }