using System.Windows.Forms;
using System.Drawing;
using Drawing3d;
namespace Sample
{
    public partial class Form1 : Form
    {
        MyDevice Device = new MyDevice();
      
        public Form1()
        {
            InitializeComponent();
            Device.WinControl = this;
        }
    }
    public class MyDevice:OpenGlDevice
    {
        Torus MyTorus = new Torus();
        Torus MyTorusLines = new Torus();
        public override void OnPaint()
        {
           base.OnPaint();
           Material = Materials.Gold;
            // draw bounded surface
           MyTorus.Paint(this);
          
            // draw skeleton
            PolygonMode = PolygonMode.Line;
            MyTorusLines.Paint(this);
            PolygonMode = PolygonMode.Fill;
        }
       
        protected override void OnCreated()
        {
           
            base.OnCreated();
            BackColor = Color.White;
            MyTorus.InnerRadius = 1;
            MyTorus.OuterRadius = 3;
            Loca L = new Loca();
            CurveArray Curves = new CurveArray();
            L.Add(Curves);
            // In clockwise sense
            Curves.Add(new Line(new xy(0.1, 0.1), new xy(0.2, 0.5)));
            Curves.Add(new Line(new xy(0.2, 0.5), new xy(0.5, 0.4)));
            Curves.Add(new Line(new xy(0.5, 0.4), new xy(0.1, 0.1)));
            // Set curves as bounding curves
            MyTorus.BoundedCurves = L;
            // only to show the lines of the torus
            MyTorusLines.InnerRadius = 1;
            MyTorusLines.OuterRadius = 3;
            MyTorusLines.CompileEnable = false;
        }
    }
}