Пример #1
0
        /// <summary>
        /// TwistedCubeSideSurface
        /// </summary>
        static OnSurface TwistedCubeSideSurface(
            IOn3dPoint SW,
            IOn3dPoint SE,
            IOn3dPoint NE,
            IOn3dPoint NW
            )
        {
            OnNurbsSurface ns = new OnNurbsSurface(
                3,     // dimension
                false, // not rational
                2,     // "u" order
                2,     // "v" order
                2,     // number of control vertices in "u" dir
                2      // number of control vertices in "v" dir
                );

            // Corner CVs in counter clockwise order starting in the south west
            ns.SetCV(0, 0, SW);
            ns.SetCV(1, 0, SE);
            ns.SetCV(1, 1, NE);
            ns.SetCV(0, 1, NW);

            // "u" knots
            ns.SetKnot(0, 0, 0.0);
            ns.SetKnot(0, 1, 1.0);

            // "v" knots
            ns.SetKnot(1, 0, 0.0);
            ns.SetKnot(1, 1, 1.0);

            return(ns);
        }
        private static OnSurface CreateNurbsSurface(On3dPoint SW, On3dPoint SE, On3dPoint NE, On3dPoint NW)
        {
            OnNurbsSurface pNurbsSurface = new OnNurbsSurface(
                3,                                 // dimension (>= 1)
                false,                             // not rational
                2,                                 // "u" order (>= 2)
                2,                                 // "v" order (>= 2)
                2,                                 // number of control vertices in "u" dir (>= order)
                2                                  // number of control vertices in "v" dir (>= order)
                );

            // corner CVs in counter clockwise order starting in the south west
            pNurbsSurface.SetCV(0, 0, SW);
            pNurbsSurface.SetCV(1, 0, SE);
            pNurbsSurface.SetCV(1, 1, NE);
            pNurbsSurface.SetCV(0, 1, NW);
            // "u" knots
            pNurbsSurface.SetKnot(0, 0, 0.0);
            pNurbsSurface.SetKnot(0, 1, 1.0);
            // "v" knots
            pNurbsSurface.SetKnot(1, 0, 0.0);
            pNurbsSurface.SetKnot(1, 1, 1.0);

            return(pNurbsSurface);
        }
        /// <summary>
        /// TwistedCubeSideSurface
        /// </summary>
        static OnSurface TwistedCubeSideSurface( 
      IOn3dPoint SW, 
      IOn3dPoint SE,
      IOn3dPoint NE,
      IOn3dPoint NW
      )
        {
            OnNurbsSurface ns = new OnNurbsSurface(
            3,     // dimension
            false, // not rational
            2,     // "u" order
            2,     // "v" order
            2,     // number of control vertices in "u" dir
            2      // number of control vertices in "v" dir
            );

              // Corner CVs in counter clockwise order starting in the south west
              ns.SetCV(0, 0, SW);
              ns.SetCV(1, 0, SE);
              ns.SetCV(1, 1, NE);
              ns.SetCV(0, 1, NW);

              // "u" knots
              ns.SetKnot(0, 0, 0.0);
              ns.SetKnot(0, 1, 1.0);

              // "v" knots
              ns.SetKnot(1, 0, 0.0);
              ns.SetKnot(1, 1, 1.0);

              return ns;
        }
        private static OnSurface CreateNurbsSurface(On3dPoint SW, On3dPoint SE, On3dPoint NE, On3dPoint NW)
        {
            OnNurbsSurface pNurbsSurface = new OnNurbsSurface(
                                            3,     // dimension (>= 1)
                                            false, // not rational
                                            2,     // "u" order (>= 2)
                                            2,     // "v" order (>= 2)
                                            2,     // number of control vertices in "u" dir (>= order)
                                            2      // number of control vertices in "v" dir (>= order)
                                            );
              // corner CVs in counter clockwise order starting in the south west
              pNurbsSurface.SetCV(0, 0, SW);
              pNurbsSurface.SetCV(1, 0, SE);
              pNurbsSurface.SetCV(1, 1, NE);
              pNurbsSurface.SetCV(0, 1, NW);
              // "u" knots
              pNurbsSurface.SetKnot(0, 0, 0.0);
              pNurbsSurface.SetKnot(0, 1, 1.0);
              // "v" knots
              pNurbsSurface.SetKnot(1, 0, 0.0);
              pNurbsSurface.SetKnot(1, 1, 1.0);

              return pNurbsSurface;
        }