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);

    }
}