using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace CommonLang.Geometry.SceneGraph2D { public abstract class Factory { public static Factory Instance { get; private set; } protected Factory() { Instance = this; } public abstract ITransform CreateTransform(); } public interface IGraphics { void PushTransform(); void Transform(ITransform trans); void PopTransform(); } public interface ITransform { Vector2 Translation { get; set; } float Rotation { get; set; } Vector2 Scale { get; set; } void LocalToParent(Vector2[] pts); void ParentToLocal(Vector2[] pts); } }