igeo

## Class ICompoundField

- java.lang.Object
- - igeo.IObject
  - - igeo.IAgent
    - - igeo.IField
      - - igeo.I3DField
        - - igeo.ICompoundField

- All Implemented Interfaces:
    I3DFieldI, IDynamics, IFieldI, ISubobject

      public class ICompoundField
      extends I3DField

  manage multiple fields; included field should be point / curve / surface based field because it needs to measure distance to check which is closest.
  Author:
    Satoru Sugihara

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `java.util.ArrayList<ICurveFieldGeo>` | `curveFields`
    `java.util.ArrayList<I3DFieldI>` | `otherFields`
    `java.util.ArrayList<IPointFieldGeo>` | `pointFields`
    `java.util.ArrayList<ISurfaceFieldGeo>` | `surfaceFields`

    - ### Fields inherited from class igeo.I3DField

      `field`

    - ### Fields inherited from class igeo.IField

      `targetClasses`

    - ### Fields inherited from class igeo.IAgent

      `alive, duration, interactOverridden, localDynamics, parent, targets, time`

    - ### Fields inherited from class igeo.IObject

      `attribute, dynamics, graphics, parameter, server, userData`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ICompoundField()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ICompoundField` | `add(I3DFieldI field)`
    `IVecI` | `get(IVecI pt)` get field value at 3D location
    `IVecI` | `get(IVecI pt, IVecI vel)` default field vector ignoreing velocity
    `ICompoundField` | `remove(I3DFieldI field)`

    - ### Methods inherited from class igeo.I3DField

      `applyField, bidirectional, constantIntensity, decay, del, del, field, gauss, gaussian, gaussianDecay, intensity, intensity, linear, linearDecay, noDecay, threshold, threshold`

    - ### Methods inherited from class igeo.IField

      `clr, clr, clr, clr, clr, clr, clr, clr, clr, clr, clr, clr, clr, clr, clr, clr, clr, clr, clr, clr, clr, hide, hsb, hsb, hsb, hsb, interact, isTarget, isTargetClass, layer, name, setColor, setColor, setColor, setColor, setColor, setColor, setColor, setColor, setColor, setColor, setColor, setColor, setColor, setColor, setHSBColor, setHSBColor, setHSBColor, setHSBColor, show, target, target, targetClass, targetClass, weight, weight`

    - ### Methods inherited from class igeo.IAgent

      `addDynamics, alive, deletDynamics, deleteDynamics, deleteDynamics, duration, duration, dynamicsNum, getDynamics, initAgent, interact, localDynamics, parent, parent, postinteract, postupdate, preinteract, preupdate, removeTarget, removeTarget, setColor, setColor, setColor, setColor, target, target, targetNum, targets, time, time, update, updateGraphic, updateTarget`

    - ### Methods inherited from class igeo.IObject

      `addUserData, addUserData, alpha, alphaInt, attr, attr, attr, awtColor, blue, blueInt, brightness, castStringHashMap, clearDynamics, clearGraphics, clr, cp, createGraphic, defaultAttribute, deleteGraphic, dup, getAWTColor, getColor, getGraphic, getGraphic, getParameter, graphicsNum, gray, grayInt, green, greenInt, grey, greyInt, hue, initGraphic, initObject, isValid, isVisible, layer, layer, name, red, redInt, resetGraphic, saturation, server, setColor, setColor, setParameter, setTexture, syncColor, syncGraphic, syncVisibility, syncWeight, texture, userData, userData, userData, userDataNum, visible, weight`

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

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

- - ### Field Detail

    - #### pointFields

          public java.util.ArrayList<IPointFieldGeo> pointFields

    - #### curveFields

          public java.util.ArrayList<ICurveFieldGeo> curveFields

    - #### surfaceFields

          public java.util.ArrayList<ISurfaceFieldGeo> surfaceFields

    - #### otherFields

          public java.util.ArrayList<I3DFieldI> otherFields

  - ### Constructor Detail

    - #### ICompoundField

          public ICompoundField()

  - ### Method Detail

    - #### add

          public ICompoundField add(I3DFieldI field)

    - #### remove

          public ICompoundField remove(I3DFieldI field)

    - #### get

          public IVecI get(IVecI pt)

      Description copied from interface: `I3DFieldI`
      get field value at 3D location
      Specified by:
        `get` in interface `I3DFieldI`
      Specified by:
        `get` in interface `IFieldI`
      Overrides:
        `get` in class `I3DField`

    - #### get

          public IVecI get(IVecI pt,
                  IVecI vel)

      Description copied from class: `IField`
      default field vector ignoreing velocity
      Specified by:
        `get` in interface `I3DFieldI`
      Specified by:
        `get` in interface `IFieldI`
      Overrides:
        `get` in class `I3DField`