igeo

## Class INurbsGeo

- java.lang.Object
- - igeo.IParameterObject
  - - igeo.INurbsGeo

- All Implemented Interfaces:
    ISubobject
  Direct Known Subclasses:
    ICurveGeo, ISurfaceGeo, IVolumeGeo

      public class INurbsGeo
      extends IParameterObject

  Base class of NURBS geometry providing miscellaneous methods to be used in child classes.
  Author:
    Satoru Sugihara
  See Also:
    `ICurveGeo`, `ISurfaceGeo`

- - ### Field Summary

    - ### Fields inherited from class igeo.IParameterObject

      `parent`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `INurbsGeo()` Default constractor doesn't create parent IGElement
    `INurbsGeo(IServerI h)`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static IVecI[]` | `createClosedCP(IVecI[] cpts, int degree)`
    `static IVecI[][][]` | `createClosedCPInU(IVecI[][][] cpts, int udeg)`
    `static IVecI[][]` | `createClosedCPInU(IVecI[][] cpts, int udeg)`
    `static IVecI[][][]` | `createClosedCPInV(IVecI[][][] cpts, int vdeg)`
    `static IVecI[][]` | `createClosedCPInV(IVecI[][] cpts, int vdeg)`
    `static IVecI[][][]` | `createClosedCPInW(IVecI[][][] cpts, int wdeg)`
    `static double[]` | `createClosedKnots(int degree, int num)`
    `static double[]` | `createKnots(int degree, int num)` Creating generic knots.
    `static double[]` | `createKnots(int degree, int num, boolean closed)`
    `static double[]` | `invertKnots(double[] knots)`
    `static boolean` | `isUClosed(IVecI[][][] cpts)`
    `static boolean` | `isValidKnots(double[] knots)`
    `static boolean` | `isVClosed(IVecI[][][] cpts)`
    `static boolean` | `isWClosed(IVecI[][][] cpts)`
    `static void` | `normalizeKnots(double[] knots, double ustart, double uend)`

    - ### Methods inherited from class igeo.IParameterObject

      `createObject, parent, parent`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### INurbsGeo

          INurbsGeo()

      Default constractor doesn't create parent IGElement

    - #### INurbsGeo

          INurbsGeo(IServerI h)

      Parameters:
        `h` - if h is null, this doesn't create parent IGElement

  - ### Method Detail

    - #### normalizeKnots

          public static void normalizeKnots(double[] knots,
                                            double ustart,
                                            double uend)

    - #### createKnots

          public static double[] createKnots(int degree,
                                             int num,
                                             boolean closed)

    - #### createKnots

          public static double[] createKnots(int degree,
                                             int num)

      Creating generic knots. Knot values are already normalized.

    - #### createClosedKnots

          public static double[] createClosedKnots(int degree,
                                                   int num)

    - #### createClosedCP

          public static IVecI[] createClosedCP(IVecI[] cpts,
                                               int degree)

    - #### createClosedCPInU

          public static IVecI[][] createClosedCPInU(IVecI[][] cpts,
                                                    int udeg)

    - #### createClosedCPInV

          public static IVecI[][] createClosedCPInV(IVecI[][] cpts,
                                                    int vdeg)

    - #### isUClosed

          public static boolean isUClosed(IVecI[][][] cpts)

    - #### isVClosed

          public static boolean isVClosed(IVecI[][][] cpts)

    - #### isWClosed

          public static boolean isWClosed(IVecI[][][] cpts)

    - #### createClosedCPInU

          public static IVecI[][][] createClosedCPInU(IVecI[][][] cpts,
                                                      int udeg)

    - #### createClosedCPInV

          public static IVecI[][][] createClosedCPInV(IVecI[][][] cpts,
                                                      int vdeg)

    - #### createClosedCPInW

          public static IVecI[][][] createClosedCPInW(IVecI[][][] cpts,
                                                      int wdeg)

    - #### isValidKnots

          public static boolean isValidKnots(double[] knots)

    - #### invertKnots

          public static double[] invertKnots(double[] knots)