using System;
using System.Collections.Generic;
using System.Text;


using Motion6D;

namespace InterfaceOpenGL
{
    public class OpenGLFactory : PositionObjectFactory
    {

        static public readonly OpenGLFactory Object = new OpenGLFactory();

        private OpenGLFactory()
        {
        }

        #region Overiden Members

        public override object CreateObject(string type)
        {
            return new ShapeGL();
        }

        public override Camera NewCamera()
        {
            return new OpenGLCamera();
        }

        public override object CreateForm(Camera camera)
        {
            return new FormCamera(camera as OpenGLCamera);
        }

        public override object CreateForm(IPosition position, IVisible visible)
        {
            return new FormShape(position, visible as ShapeGL);
        }

        public override string CameraType
        {
            get { return "InterfaceOpenGL.OpenGLCamera"; }
        }
/*
        public override string ObjectType
        {
            get { return "InterfaceOpenGL.ShapeGL"; }
        }
*/
        #endregion
    }
}
