igeo

## Class ISurfaceFieldGeo

- java.lang.Object
- - igeo.IFieldGeo
  - - igeo.ISurfaceFieldGeo

- All Implemented Interfaces:
    I3DFieldI, IFieldI
  Direct Known Subclasses:
    ISurfaceAttractorField.ISurfaceAttractorFieldGeo, ISurfaceNormalField.ISurfaceNormalFieldGeo, ISurfacePositionField.ISurfacePositionFieldGeo, ISurfaceSlopeField.ISurfaceSlopeFieldGeo, ISurfaceUTangentField.ISurfaceUTangentFieldGeo, ISurfaceVTangentField.ISurfaceVTangentFieldGeo

      public class ISurfaceFieldGeo
      extends IFieldGeo
      implements I3DFieldI

  3D vector filed defined by a NURBS surface.
  Author:
    Satoru Sugihara

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class igeo.IFieldGeo

      `IFieldGeo.Decay`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `ISurfaceI` | `fieldSurface`
    `ISurfaceI` | `surface`

    - ### Fields inherited from class igeo.IFieldGeo

      `bidirectional, constantIntensity, customDecay, decay, gaussDecay, intensity, linearDecay, noDecay, threshold`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ISurfaceFieldGeo(ISurfaceI srf, ISurfaceI fieldSrf)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ISurfaceFieldGeo` | `bidirectional(boolean b)` if bidirectional is on, field force vector is flipped when velocity of particle is going opposite
    `ISurfaceFieldGeo` | `constantIntensity(boolean b)` if output vector is besed on constant length (intensity) or variable depending geometry when curve or surface tangent is used
    `void` | `del()`
    `ISurfaceFieldGeo` | `gauss(double threshold)` alias of gaussianDecay
    `ISurfaceFieldGeo` | `gaussian(double threshold)` alias of gaussianDecay
    `ISurfaceFieldGeo` | `gaussianDecay(double threshold)` set Gaussian decay; Threshold is used as double of standard deviation (when distance is eqaul to threshold, output is 13.5% of original).
    `IVecI` | `get(IVecI pos)` get 3D vector field value
    `IVecI` | `get(IVecI pos, IVec2I uv)` get original field value out of curve parameter u
    `IVecI` | `get(IVecI pos, IVecI vel)` get 3D vector field value
    `IVecI` | `get(IVecI pos, IVecI vel, IVec2I uv)` get original field value out of curve parameter u
    `ISurfaceFieldGeo` | `intensity(double i)` set output intensity
    `ISurfaceFieldGeo` | `linear(double threshold)` alias of linearDecay
    `ISurfaceFieldGeo` | `linearDecay(double threshold)` set linear decay; When distance is equal to threshold, output is zero.
    `ISurfaceFieldGeo` | `noDecay()` set no decay
    `ISurfaceFieldGeo` | `threshold(double t)` set decay threshold

    - ### Methods inherited from class igeo.IFieldGeo

      `decay, decay, intensity, threshold`

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

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

    - ### Methods inherited from interface igeo.IFieldI

      `decay, intensity, threshold`

- - ### Field Detail

    - #### surface

          public ISurfaceI surface

    - #### fieldSurface

          public ISurfaceI fieldSurface

  - ### Constructor Detail

    - #### ISurfaceFieldGeo

          public ISurfaceFieldGeo(ISurfaceI srf,
                          ISurfaceI fieldSrf)

  - ### Method Detail

    - #### get

          public IVecI get(IVecI pos,
                  IVec2I uv)

      get original field value out of curve parameter u

    - #### get

          public IVecI get(IVecI pos,
                  IVecI vel,
                  IVec2I uv)

      get original field value out of curve parameter u

    - #### get

          public IVecI get(IVecI pos)

      get 3D vector field value
      Specified by:
        `get` in interface `I3DFieldI`
      Specified by:
        `get` in interface `IFieldI`

    - #### get

          public IVecI get(IVecI pos,
                  IVecI vel)

      get 3D vector field value
      Specified by:
        `get` in interface `I3DFieldI`
      Specified by:
        `get` in interface `IFieldI`
      Parameters:
        `pos` - positio of the input particle
        `vel` - velocity of the input particle

    - #### constantIntensity

          public ISurfaceFieldGeo constantIntensity(boolean b)

      if output vector is besed on constant length (intensity) or variable depending geometry when curve or surface tangent is used
      Specified by:
        `constantIntensity` in interface `IFieldI`
      Overrides:
        `constantIntensity` in class `IFieldGeo`

    - #### bidirectional

          public ISurfaceFieldGeo bidirectional(boolean b)

      if bidirectional is on, field force vector is flipped when velocity of particle is going opposite
      Specified by:
        `bidirectional` in interface `IFieldI`
      Overrides:
        `bidirectional` in class `IFieldGeo`

    - #### noDecay

          public ISurfaceFieldGeo noDecay()

      set no decay
      Specified by:
        `noDecay` in interface `IFieldI`
      Overrides:
        `noDecay` in class `IFieldGeo`

    - #### linearDecay

          public ISurfaceFieldGeo linearDecay(double threshold)

      set linear decay; When distance is equal to threshold, output is zero.
      Specified by:
        `linearDecay` in interface `IFieldI`
      Overrides:
        `linearDecay` in class `IFieldGeo`

    - #### linear

          public ISurfaceFieldGeo linear(double threshold)

      Description copied from class: `IFieldGeo`
      alias of linearDecay
      Specified by:
        `linear` in interface `IFieldI`
      Overrides:
        `linear` in class `IFieldGeo`

    - #### gaussianDecay

          public ISurfaceFieldGeo gaussianDecay(double threshold)

      set Gaussian decay; Threshold is used as double of standard deviation (when distance is eqaul to threshold, output is 13.5% of original).
      Specified by:
        `gaussianDecay` in interface `IFieldI`
      Overrides:
        `gaussianDecay` in class `IFieldGeo`

    - #### gaussian

          public ISurfaceFieldGeo gaussian(double threshold)

      Description copied from class: `IFieldGeo`
      alias of gaussianDecay
      Specified by:
        `gaussian` in interface `IFieldI`
      Overrides:
        `gaussian` in class `IFieldGeo`

    - #### gauss

          public ISurfaceFieldGeo gauss(double threshold)

      Description copied from class: `IFieldGeo`
      alias of gaussianDecay
      Specified by:
        `gauss` in interface `IFieldI`
      Overrides:
        `gauss` in class `IFieldGeo`

    - #### threshold

          public ISurfaceFieldGeo threshold(double t)

      Description copied from class: `IFieldGeo`
      set decay threshold
      Specified by:
        `threshold` in interface `IFieldI`
      Overrides:
        `threshold` in class `IFieldGeo`

    - #### intensity

          public ISurfaceFieldGeo intensity(double i)

      Description copied from class: `IFieldGeo`
      set output intensity
      Specified by:
        `intensity` in interface `IFieldI`
      Overrides:
        `intensity` in class `IFieldGeo`

    - #### del

          public void del()

      Specified by:
        `del` in interface `IFieldI`