igeo

## Class IDynamicsBase

- java.lang.Object
- - igeo.IDynamicsBase

- All Implemented Interfaces:
    IDynamics, ISubobject
  Direct Known Subclasses:
    IAgentTracker, ILineAgentGeo, IParticleDirectionLink, IParticleDistanceLink, IParticleGeo, ISpacingEqualizer, ISpring, IStick, IStraightener, IString, ITensileNet.IParticleCoupler, ITension, ITensionOnCurve, ITrajectoryGeo

      public class IDynamicsBase
      extends java.lang.Object
      implements IDynamics

  Implementation of IDynamics. It provides management of parent IObject and targets to be updated.
  Author:
    Satoru Sugihara

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `IObject` | `parent` parent
    `java.util.ArrayList<IObject>` | `targets` target objects to be updated by dynamic object

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IDynamicsBase()` automatically registered in default IDynamicServer
    `IDynamicsBase(IDynamicsBase d)`
    `IDynamicsBase(IObject parent)`
    `IDynamicsBase(IServerI server)` registered in specified IDynamicServer.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `initDynamicsBase()`
    `void` | `initDynamicsBase(IObject parent)`
    `void` | `initDynamicsBase(IServerI server)` if null is provided at server, this will not be added to any server, not even the default one
    `void` | `interact(java.util.ArrayList<IDynamics> dynamics)` behavior definition of interaction with other dynamic objects.
    `java.util.ArrayList<IDynamics>` | `localDynamics()` IDynamicsBase doesn't implement local dynamics feature
    `IObject` | `parent()` getting parent object
    `IDynamicsBase` | `parent(IObject par)` setting parent object
    `void` | `postinteract(java.util.ArrayList<IDynamics> dynamics)` executed after interact(ArrayList<IDynamics>).
    `void` | `postupdate()` executed after update().
    `void` | `preinteract(java.util.ArrayList<IDynamics> dynamics)` executed before interact(ArrayList<IDynamics>).
    `void` | `preupdate()` executed before update().
    `IDynamicsBase` | `removeTarget(int i)` remove target object.
    `IDynamicsBase` | `removeTarget(IObject obj)` remove target object.
    `IObject` | `target(int i)` get target object.
    `IDynamicsBase` | `target(IObject targetObj)` add terget object to be updated by this dynamic object.
    `int` | `targetNum()` get total target number.
    `java.util.ArrayList<IObject>` | `targets()` get all target objects.
    `void` | `update()` behavior definition of updating dynamics in each time frame
    `void` | `updateTarget()` update all terget objects (should be called when the dynamic object is updated).

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

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

- - ### Field Detail

    - #### parent

          public IObject parent

      parent

    - #### targets

          public java.util.ArrayList<IObject> targets

      target objects to be updated by dynamic object

  - ### Constructor Detail

    - #### IDynamicsBase

          public IDynamicsBase()

      automatically registered in default IDynamicServer

    - #### IDynamicsBase

          public IDynamicsBase(IServerI server)

      registered in specified IDynamicServer. not registered if the server is null.

    - #### IDynamicsBase

          public IDynamicsBase(IObject parent)

    - #### IDynamicsBase

          public IDynamicsBase(IDynamicsBase d)

  - ### Method Detail

    - #### initDynamicsBase

          public void initDynamicsBase()

    - #### initDynamicsBase

          public void initDynamicsBase(IServerI server)

      if null is provided at server, this will not be added to any server, not even the default one

    - #### initDynamicsBase

          public void initDynamicsBase(IObject parent)

    - #### parent

          public IObject parent()

      Description copied from interface: `ISubobject`
      getting parent object
      Specified by:
        `parent` in interface `ISubobject`

    - #### parent

          public IDynamicsBase parent(IObject par)

      Description copied from interface: `ISubobject`
      setting parent object
      Specified by:
        `parent` in interface `ISubobject`

    - #### localDynamics

          public java.util.ArrayList<IDynamics> localDynamics()

      IDynamicsBase doesn't implement local dynamics feature
      Specified by:
        `localDynamics` in interface `IDynamics`

    - #### target

          public IDynamicsBase target(IObject targetObj)

      add terget object to be updated by this dynamic object.
      Specified by:
        `target` in interface `IDynamics`

    - #### targetNum

          public int targetNum()

      get total target number.
      Specified by:
        `targetNum` in interface `IDynamics`

    - #### target

          public IObject target(int i)

      get target object.
      Specified by:
        `target` in interface `IDynamics`

    - #### targets

          public java.util.ArrayList<IObject> targets()

      get all target objects.
      Specified by:
        `targets` in interface `IDynamics`

    - #### removeTarget

          public IDynamicsBase removeTarget(int i)

      remove target object.
      Specified by:
        `removeTarget` in interface `IDynamics`

    - #### removeTarget

          public IDynamicsBase removeTarget(IObject obj)

      remove target object.
      Specified by:
        `removeTarget` in interface `IDynamics`

    - #### updateTarget

          public void updateTarget()

      update all terget objects (should be called when the dynamic object is updated).
      Specified by:
        `updateTarget` in interface `IDynamics`

    - #### interact

          public void interact(java.util.ArrayList<IDynamics> dynamics)

      behavior definition of interaction with other dynamic objects. The server puts all dynamic objects including itself.
      Specified by:
        `interact` in interface `IDynamics`

    - #### update

          public void update()

      behavior definition of updating dynamics in each time frame
      Specified by:
        `update` in interface `IDynamics`

    - #### preinteract

          public void preinteract(java.util.ArrayList<IDynamics> dynamics)

      Description copied from interface: `IDynamics`
      executed before interact(ArrayList<IDynamics>). behavior can be changed by IConfig.enablePreinteract and IConfig.loopPreinteract.
      Specified by:
        `preinteract` in interface `IDynamics`

    - #### postinteract

          public void postinteract(java.util.ArrayList<IDynamics> dynamics)

      Description copied from interface: `IDynamics`
      executed after interact(ArrayList<IDynamics>). behavior can be changed by IConfig.enablePostinteract and IConfig.loopPostinteract. If IConfig.loopPostinteract is false, preupdate is executed before post interact (updated 2012/08/26).
      Specified by:
        `postinteract` in interface `IDynamics`

    - #### preupdate

          public void preupdate()

      Description copied from interface: `IDynamics`
      executed before update(). behavior can be changed by IConfig.enablePreupdate and IConfig.loopPreupdate. If IConfig.loopPreupdate is false, preupdate is executed before post interact (updated 2012/08/26).
      Specified by:
        `preupdate` in interface `IDynamics`

    - #### postupdate

          public void postupdate()

      Description copied from interface: `IDynamics`
      executed after update(). behavior can be changed by IConfig.enablePostupdate and IConfig.loopPostupdate.
      Specified by:
        `postupdate` in interface `IDynamics`