igeo.gui

## Class ISubsurfaceMesh.SubsurfaceMatrix

- java.lang.Object
- - igeo.gui.ISubsurfaceMesh.SubsurfaceMatrix

- Enclosing class:
    ISubsurfaceMesh

      public static class ISubsurfaceMesh.SubsurfaceMatrix
      extends java.lang.Object

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `java.util.ArrayList<IVec2[]>` | `innerLoop`
    `ISubsurfaceMesh[][]` | `matrix`
    `java.util.ArrayList<IVec2[]>` | `outerLoop`
    `int` | `unum`
    `double[]` | `uvalues`
    `int` | `vnum`
    `double[]` | `vvalues`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SubsurfaceMatrix(double[] uval, double[] vval)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `addDiagonalTrimLine(IVec2 pt1, IVec2 pt2, ISubsurfaceMesh subsurf, int prevU, int prevV, int nextU, int nextV)`
    `protected ISubsurfaceMesh` | `getNextSubsurfaceOnLine(IVec2 linePt1, IVec2 linePt2, int uidx, int vidx)`
    `protected IVec2` | `getPoint(int uidx, int vidx)`
    `protected IVec2` | `getPoint(ISubsurfaceMesh idx)`
    `ISubsurfaceMesh` | `getSubsurface(int uidx, int vidx)`
    `protected ISubsurfaceMesh[]` | `getSubsurfaceOnLine(IVec2 pt1, IVec2 pt2)`
    `protected ISubsurfaceMesh` | `getSubsurfaceOnPoint(IVec2 pt)`
    `IVec2[][]` | `getTriangles()`
    `protected double` | `getU(int uidx)`
    `protected int` | `getUIndex(IVec2 pt)`
    `protected double` | `getV(int vidx)`
    `protected int` | `getVIndex(IVec2 pt)`
    `protected boolean` | `insideIndexRange(ISubsurfaceMesh subsurf, int uIndexRange1, int vIndexRange1, int uIndexRange2, int vIndexRange2)`
    `boolean` | `isDefaultOuterLoop(IVec2[] loop)`
    `boolean` | `isInsideTrimLoop(int uidx, int vidx)`
    `protected boolean` | `isLineOnEdge(IVec2 linePt1, IVec2 linePt2, IVec2 edgePt1, IVec2 edgePt2)`
    `protected boolean` | `isLineOnPoint(IVec2 linePt1, IVec2 linePt2, int uidx, int vidx)`
    `protected boolean` | `isLineOnUEdge(IVec2 linePt1, IVec2 linePt2, int uidx1, int uidx2, int vidx)`
    `protected boolean` | `isLineOnVEdge(IVec2 linePt1, IVec2 linePt2, int uidx, int vidx1, int vidx2)`
    `boolean` | `isSubsurfaceNull(int uidx, int vidx)`
    `void` | `setLoop(IVec2[] loop, boolean isOuterTrim)`

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

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

- - ### Field Detail

    - #### matrix

          public ISubsurfaceMesh[][] matrix

    - #### uvalues

          public double[] uvalues

    - #### vvalues

          public double[] vvalues

    - #### unum

          public int unum

    - #### vnum

          public int vnum

    - #### innerLoop

          public java.util.ArrayList<IVec2[]> innerLoop

    - #### outerLoop

          public java.util.ArrayList<IVec2[]> outerLoop

  - ### Constructor Detail

    - #### SubsurfaceMatrix

          public SubsurfaceMatrix(double[] uval,
                                  double[] vval)

  - ### Method Detail

    - #### isInsideTrimLoop

          public boolean isInsideTrimLoop(int uidx,
                                          int vidx)

    - #### getTriangles

          public IVec2[][] getTriangles()

    - #### getSubsurface

          public ISubsurfaceMesh getSubsurface(int uidx,
                                               int vidx)

    - #### isSubsurfaceNull

          public boolean isSubsurfaceNull(int uidx,
                                          int vidx)

    - #### isDefaultOuterLoop

          public boolean isDefaultOuterLoop(IVec2[] loop)

    - #### setLoop

          public void setLoop(IVec2[] loop,
                              boolean isOuterTrim)

    - #### getSubsurfaceOnPoint

          protected ISubsurfaceMesh getSubsurfaceOnPoint(IVec2 pt)

    - #### insideIndexRange

          protected boolean insideIndexRange(ISubsurfaceMesh subsurf,
                                             int uIndexRange1,
                                             int vIndexRange1,
                                             int uIndexRange2,
                                             int vIndexRange2)

    - #### getSubsurfaceOnLine

          protected ISubsurfaceMesh[] getSubsurfaceOnLine(IVec2 pt1,
                                                          IVec2 pt2)

      Returns:
        aray of SubsurfaceIndex between 2 points not including the index where each point is

    - #### addDiagonalTrimLine

          protected void addDiagonalTrimLine(IVec2 pt1,
                                             IVec2 pt2,
                                             ISubsurfaceMesh subsurf,
                                             int prevU,
                                             int prevV,
                                             int nextU,
                                             int nextV)

    - #### getNextSubsurfaceOnLine

          protected ISubsurfaceMesh getNextSubsurfaceOnLine(IVec2 linePt1,
                                                            IVec2 linePt2,
                                                            int uidx,
                                                            int vidx)

    - #### isLineOnPoint

          protected boolean isLineOnPoint(IVec2 linePt1,
                                          IVec2 linePt2,
                                          int uidx,
                                          int vidx)

    - #### isLineOnEdge

          protected boolean isLineOnEdge(IVec2 linePt1,
                                         IVec2 linePt2,
                                         IVec2 edgePt1,
                                         IVec2 edgePt2)

    - #### isLineOnUEdge

          protected boolean isLineOnUEdge(IVec2 linePt1,
                                          IVec2 linePt2,
                                          int uidx1,
                                          int uidx2,
                                          int vidx)

    - #### isLineOnVEdge

          protected boolean isLineOnVEdge(IVec2 linePt1,
                                          IVec2 linePt2,
                                          int uidx,
                                          int vidx1,
                                          int vidx2)

    - #### getUIndex

          protected int getUIndex(IVec2 pt)

    - #### getVIndex

          protected int getVIndex(IVec2 pt)

    - #### getU

          protected double getU(int uidx)

    - #### getV

          protected double getV(int vidx)

    - #### getPoint

          protected IVec2 getPoint(int uidx,
                                   int vidx)

    - #### getPoint

          protected IVec2 getPoint(ISubsurfaceMesh idx)