public BezierSurface(int degree, int m, int n, int l)
        {
            Degree = degree;
            x      = new BernsteinPolynomial(degree);
            y      = new BernsteinPolynomial(degree);
            z      = new BernsteinPolynomial(degree);
            tx     = new BernsteinPolynomial(degree);
            ty     = new BernsteinPolynomial(degree);
            tz     = new BernsteinPolynomial(degree);
            mSize  = m; //columns
            nSize  = n; //lines
            points = new List <List <MyPoint> >();

            ControlPoints = new MyPoint[this.mTableSize(), this.nTableSize()];
            CreateControlPoints(l);
        }
        public BezierSurface(MyPoint start, MyPoint end, int dir)
        {
            Degree = 3;
            x      = new BernsteinPolynomial(Degree);
            y      = new BernsteinPolynomial(Degree);
            z      = new BernsteinPolynomial(Degree);
            tx     = new BernsteinPolynomial(Degree);
            ty     = new BernsteinPolynomial(Degree);
            tz     = new BernsteinPolynomial(Degree);
            mSize  = 1;
            nSize  = 1;

            points        = new List <List <MyPoint> >();
            ControlPoints = new MyPoint[4, 4];
            CreateControlPoints(start, end, dir);
        }
 public GregorySubpatch(BezierSurfaceGregoryExt b1, BezierSurfaceGregoryExt b2)
 {
     left  = b1;
     right = b2;
     for (int i = 0; i < 20; i++)
     {
         ControlPoints[i] = new MyPoint();
     }
     for (int i = 0; i < 4; i++)
     {
         for (int j = 0; j < 6; j++)
         {
             ControlP[i, j] = new MyPoint();
         }
     }
     points = new List <List <MyPoint> >();
     x      = new BernsteinPolynomial(3);
     y      = new BernsteinPolynomial(3);
     z      = new BernsteinPolynomial(3);
     tx     = new BernsteinPolynomial(3);
     ty     = new BernsteinPolynomial(3);
     tz     = new BernsteinPolynomial(3);
 }