#region Using directives

using System;
using System.Collections;

using OpenTK;
using OpenTK.Graphics;
using OpenTK.Math;
using OpenTK.Input;
using OpenTK.Platform;

#endregion

namespace DataProcessing
{
    public class Vertex : IComparable
    {
        #region variable definitions

        private int id; //kazdy bod ma unikatni id, vzestupne tak jak byli nacitany
        private float x, y, z;
        private bool isSelected; //je zvolen?
        private int row; // jeho rovina skenovani

        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        public float X
        {
            get { return x; }
            set { x = value; }
        }

        public float Y
        {
            get { return y; }
            set { y = value; }
        }

        public float Z
        {
            get { return z; }
            set { z = value; }
        }

        public bool IsSelected
        {
            get { return isSelected; }
            set { isSelected = value; }
        }

        public int Row
        {
            get { return row; }
            set { row = value; }
        }

        #endregion define variables

        //konstruktor
        public Vertex(float newX, float newY, float newZ)
        {
            this.x = newX;
            this.y = newY;
            this.z = newZ;
            this.isSelected = false;
        }

        //pretizeny konstruktor
        public Vertex(float newX, float newY, float newZ, int newRow, int newID)
        {
            this.x = newX;
            this.y = newY;
            this.z = newZ;
            this.isSelected = false;
            this.row = newRow;
            this.id = newID;
        }

        public int CompareTo(object value)
        {
            return id.CompareTo(((Vertex)value).id);
        }
    }
}
