igeo

## Interface IFieldI

- All Known Subinterfaces:
    I2DFieldI, I3DFieldI, IScalarFieldI
  All Known Implementing Classes:
    I2DCurveFieldGeo, I2DField, I2DMapField, I2DMapFieldGeo, I2DSurfaceFieldGeo, I2DSurfaceNormalField, I2DSurfaceNormalField.I2DSurfaceNormalFieldGeo, I2DSurfacePositionField, I2DSurfacePositionField.I2DSurfacePositionFieldGeo, I2DSurfaceSlopeField, I2DSurfaceSlopeField.I2DSurfaceSlopeFieldGeo, I2DSurfaceUTangentField, I2DSurfaceUTangentField.I2DSurfaceUTangentFieldGeo, I2DSurfaceVTangentField, I2DSurfaceVTangentField.I2DSurfaceVTangentFieldGeo, I3DField, IAttractor, IAttractorGeo, ICompoundField, ICurveAttractorField, ICurveAttractorField.ICurveAttractorFieldGeo, ICurveCurlField, ICurveCurlField.ICurveCurlFieldGeo, ICurveFieldGeo, ICurvePositionField, ICurvePositionField.ICurvePositionFieldGeo, ICurveTangentField, ICurveTangentField.ICurveTangentFieldGeo, IField, IFieldGeo, IGravity, ILinkedNodeMeshField, ILinkedNodeMeshField.ILinkedNodeMeshFieldGeo, IMeshFieldGeo, IMeshNormalField, IMeshNormalField.IMeshNormalFieldGeo, IPlanarAttractor, IPlanarAttractor.IPlanarAttractorGeo, IPlaneAttractorField, IPlaneAttractorField.IPlaneAttractorFieldGeo, IPlaneFieldGeo, IPointCloudFieldGeo, IPointCurlField, IPointCurlFieldGeo, IPointFieldGeo, IScalarField, ISurfaceAttractorField, ISurfaceAttractorField.ISurfaceAttractorFieldGeo, ISurfaceFieldGeo, ISurfaceNormalField, ISurfaceNormalField.ISurfaceNormalFieldGeo, ISurfacePositionField, ISurfacePositionField.ISurfacePositionFieldGeo, ISurfaceSlopeField, ISurfaceSlopeField.ISurfaceSlopeFieldGeo, ISurfaceUTangentField, ISurfaceUTangentField.ISurfaceUTangentFieldGeo, ISurfaceVTangentField, ISurfaceVTangentField.ISurfaceVTangentFieldGeo

      public interface IFieldI

  abstract field function
  Author:
    Satoru Sugihara

- - ### Method Summary

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

- - ### Method Detail

    - #### get

          IVal get(IVecI pos)

      get field value at 3D location

    - #### get

          IVal get(IVecI pos,
                   IVecI vel)

      get field value at 3D location with velocity

    - #### noDecay

          IFieldI noDecay()

      set no decay

    - #### linearDecay

          IFieldI linearDecay(double threshold)

      set linear decay with threshold; When distance is equal to threshold, output is zero.

    - #### linear

          IFieldI linear(double threshold)

      alias of linearDecay

    - #### gaussianDecay

          IFieldI gaussianDecay(double threshold)

      set Gaussian decay with threshold; Threshold is used as double of standard deviation (when distance is eqaul to threshold, output is 13.5% of original).

    - #### gaussian

          IFieldI gaussian(double threshold)

      alias of gaussianDecay

    - #### gauss

          IFieldI gauss(double threshold)

      alias of gaussianDecay

    - #### decay

          IFieldI decay(IDecay decay,
                        double threshold)

      set custom decay

    - #### constantIntensity

          IFieldI constantIntensity(boolean b)

      if output vector is besed on constant length (intensity) or variable depending geometry when curve or surface tangent is used

    - #### bidirectional

          IFieldI bidirectional(boolean b)

      if bidirectional is on, field force vector is flipped when velocity of particle is going opposite

    - #### threshold

          IFieldI threshold(double t)

      set decay threshold

    - #### threshold

          double threshold()

      get decay threshold

    - #### intensity

          IFieldI intensity(double i)

      set output intensity

    - #### intensity

          double intensity()

      get output intensity

    - #### del

          void del()