using CommonLang.Geometry;
using CommonLang.Geometry.SceneGraph2D;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;

namespace CommonFroms.SceneGraph2D
{
    //----------------------------------------------------------------------------------------------------------------------------------

    public class ImageNode : DisplayNode
    {
        private Bitmap _dimg;
        private Vector2 _size;

        public Vector2 Size
        {
            get { return _size; }
        }
        public Bitmap Image
        {
            get { return _dimg; }
        }


        public ImageNode(System.Drawing.Image src)
        {
            _dimg = ImageUtils.ImageToBitmap(src);
            _size = new Vector2(_dimg.Width, _dimg.Height);
        }

        public Color GetPixel(int x, int y)
        {
            return _dimg.GetPixel(x, y);
        }

        protected override void OnDrawBegin(IGraphics g)
        {
            base.OnDrawBegin(g);
            var gfx = (g as Win32Graphics).gfx;
            gfx.DrawImage(_dimg, -_dimg.Width / 2f, -_dimg.Height / 2f);
        }

        public static ImageNode CreateImage(string file)
        {
            System.Drawing.Image image = System.Drawing.Image.FromFile(file);
            var ret = new ImageNode(image);
            return ret;
        }
        
        //----------------------------------------------------------------------------------------------------------------------------------
    }

    //----------------------------------------------------------------------------------------------------------------------------------
}