SI_NurbsSurface

Defines a NURBS surface.

This template provides a definition for existing NURBS representations, such as IGES. This ensures that the SI_NurbsSurface representation is compatible with most existing game engines and file formats.

SI_NurbsSurface always stores surface data in IGES format.

| This template corresponds to the CSLNurbsSurface class.

Limitation

Note that if you export a NURBS surface from Softimage that has a different U and V parameterization, the dotXSI file format can only support a single parametrization in both U and V.

Introduced

1.3

Members

Member name | Type | Array size | Description
uvDegree | array int | 2 | Degree of surface in U and V.
uvClosed | array BOOLEAN | 2 | Surface is closed in U.
paramType | int |  | Knot parameterization of the NURBS curves: 0 = uniform 1 = open uniform 2 = non-uniform 3 = chord length 4 = centripetal
nbUVKnots | array int | 2 | Number of IGES knots in U and V.
uKnots | array DOUBLE | nbUKnots | Knots in U.
vKnots | array DOUBLE | nbVKnots | Knots in V.
nbControlPoints | array int | 3 | Total number of IGES control points: • Number of control points in U • Number of control points in V
controlPoints | array vector | nbControlPoints[0] | Surface control points: x, y, z, w

Nested Templates

SI_Material
SI_Texture2D
SI_SubelementUserDataVertex_<userDataTag>
SI_ShapeAnimation (v2.0 only)

Comments

Closed in U or V implies that a surface is periodic (its continuity is degree –1 by formulation and not construction). In IGES format it implies an overlapping of degree control points, not just the last and first ones.

The IGES Nurbs representation implies:

Open curves have an extra order knot at the end and at the start (order = degree + 1).

Closed (periodic) curves have knot spacing overlap and an overlapping of degree control points.

The SI|3D NURBS representation implies:

• Open curves have an extra degree knot at both the end and start, with the number of control points given by:

       nbControlPoints = nbKnots - (degree + 1)

• Closed curves have no overlap:

       nbControlPoints = nbKnots - 1

The following table summarizes how the number of IGES control points and IGES knots are calculated.

Constant name | Open | Closed
nbSoftKnots | nbSoftPoints + degree - 1 | nbSoftPoints + 1
nbIgesPoints | nbSoftPoints | nbSoftPoints + degree
nbIgesKnots | nbSoftKnots | nbSoftKnots + 2*degree

nbSoftPoints is the number of control points in U (or V) for a NURBS surface in SI|3D. This is the number shown in the NURBS Surface Info dialog box.

nbSoftKnots is the number of knots in U (or V) for a NURBS surface in SI|3D.

nbIgesPoints and nbIgesKnots are the numbers of U (or V) points and knots output in a dotXSI file.

Example

    SI_NurbsSurface grid3 {
       1; 1;; // Linear in U, V
       1; 0;; // Closed in U, Open in V
       0;  // Uniform parameterization
       6; 3;; // 6 knots in U, 3 knots in V
       0.000000; 0.000000; 1.000000; 2.000000; 3.000000; 3.000000; ;
       0.000000; 1.000000; 2.000000; ;
       12; 4; 3;; // Number of control points: Total, U, V
    // Control points:
       -1.000000;0.000000;1.000000;1.000000;,
       0.000000;0.000000;1.000000;1.000000;,
       1.000000;0.000000;1.000000;1.000000;,
       -1.000000;0.000000;1.000000;1.000000;,
       -1.000000;0.000000;0.000000;1.000000;,
       0.000000;0.000000;0.000000;1.000000;,
       1.000000;0.000000;0.000000;1.000000;,
       -1.000000;0.000000;0.000000;1.000000;,
       -1.000000;0.000000;-1.000000;1.000000;,
       0.000000;0.000000;-1.000000;1.000000;,
       1.000000;0.000000;-1.000000;1.000000;,
       -1.000000;0.000000;-1.000000;1.000000;;

       SI_Material {
           ...
           SI_Texture2D {
              ...
           }
       }
    }

See also XSI_SurfaceMesh.

Autodesk Softimage v7.5