jvx.cellular

## Class PnCellOperator

- java.lang.Object
- - jv.object.PsObject
  - - jvx.project.PjWorkshop
    - - jvx.cellular.PnCellOperator

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.lang.Runnable, PsUpdateIf, PjWorkshopIf, PvPickListenerIf
  Direct Known Subclasses:
    PnMinesweeper

      public class PnCellOperator
      extends PjWorkshop
      implements PvPickListenerIf, java.lang.Runnable

  Implements a cellular automata on the triangles of an element set.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `CORONA`
    `static int` | `LIFE`
    `static int` | `MAJORITY`
    `static int` | `NEIGHBOUR`

    - ### Fields inherited from class jv.object.PsObject

      `HAS_BOUNDARY_PANEL, HAS_CONFIG_PANEL, HAS_INFO_PANEL, HAS_LABEL_PANEL, HAS_MATERIAL_PANEL, HAS_TEXTURE_PANEL, HAS_VECTOR_PANEL, INSPECTOR_INFO, INSPECTOR_INFO_EXT, IS_DELETED, IS_FIXED, IS_FOCUSSED, IS_PICKED, IS_SELECTED, IS_USED, NUM_TAGS`

    - ### Fields inherited from interface jv.project.PjWorkshopIf

      `MODE_BUG, MODE_STANDARD, MODE_VALIDATE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PnCellOperator()` Constructor
    `PnCellOperator(PgElementSet geom)` Deprecated. use constructor prj=new PnCellOperator();prj.setGeometry(geom);prj.reset();

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `cellOperator(int index)` Call the appointed operating rule for a given cell.
    `void` | `clear()` Set all elements to state "0".
    `void` | `close()` Remove pick focus and update from cell operator, reset elementSet's colors to global element color and destroy dialog window.
    `void` | `compute()` For all cells call cell operating method.
    `void` | `dragDisplay(PvPickEvent pos)` Drag a location in the display with 2d display and 3d world coordinates.
    `void` | `dragInitial(PvPickEvent pos)` Drag an arbitrary point along a geometry, point may lie inside an element.
    `void` | `dragVertex(PgGeometryIf geom, int vertexIndex, PdVector vertex)` Drag a picked vertex of a geometry.
    `void` | `evaluate()` For all elements of the ElementSet show the cell values.
    `java.awt.Color` | `getColor(int i)` Return color for a given cell state.
    `int` | `getNumLoops()` Get the number of operating loops.
    `int` | `getNumStates()` return number of possible states of a cell.
    `int` | `getState(int elemNr)` Return state number of a given element.
    `void` | `init()` Initialization
    `void` | `makeCoronaInfluence()` For all cells store all cells touching vertices of the cell itself.
    `void` | `makeInfluence()` Set list of influencing cells for all cells of the elementSet.
    `void` | `makeNeighbourInfluence()` For all cells store cell itself and all neighbour cells.
    `void` | `markElement(int elemNr)` Set an element to the next state.
    `void` | `markElement(int elemNr, int value)` Set an element to a given state.
    `void` | `markGlider(int elemNr, int dir)` Set a glider upon an elementSet with quadrilateral connectivity.
    `void` | `markVertices(PvPickEvent markBox)` Mark a set of vertices of a geometry within a given bounding box.
    `void` | `pickDisplay(PvPickEvent pos)` Get a location in the display with 2d display and 3d world coordinates.
    `void` | `pickInitial(PvPickEvent pos)` Mark picked element to be a living cell.
    `void` | `pickVertex(PgGeometryIf geom, int vertexIndex, PdVector vertex)` Get a picked vertex of a geometry.
    `void` | `releasePick()` Remove pick focus from cell operator.
    `void` | `requestPick()` Set pick focus upon cell operator.
    `void` | `reset()` Reset workshop and geometry to original state.
    `void` | `restoreColors()` Reset the ElementSet's element colors to state before calling cell operator.
    `int` | `ruleOfLife(int index)` Evaluate rule of life: Dead cells with exactly three living influencing cells are set alive, living cells with three or four living influencing cells stay alive, all other cells are dead.
    `int` | `ruleOfMajority(int index)` Every cell is set to the state of the majority state in the influence area.
    `void` | `run()` Do cell operating until `m_numLoops` are done or until a call of stop().
    `void` | `selectGeometry(PgGeometryIf geom)` This workshop is informed when the currently active geometry changes in the display.
    `void` | `setColor(int i, java.awt.Color aColor)` Define color for a cell state.
    `void` | `setColors()` Set colors of all elements of the elementSet according to their states.
    `void` | `setCurrLoop(int currLoop)` Set number of current operating loop.
    `void` | `setElementTags()` Set tag for all elements of the elementSet according to their states.
    `void` | `setGeometry(PgElementSet geom)` Assign a geometry on which this workshop operates.
    `void` | `setInfluence(int inf)` Choose an influence area.
    `void` | `setInfluence(java.lang.String aString)` Deprecated. use setInfluence(int)
    `void` | `setNumLoops(int numLoops)` Set the number of operating loops.
    `void` | `setNumStates(int anInt)` Define number of possible states of a cell.
    `void` | `setOutputType(int aType)` Appoint the way of viewing element states.
    `void` | `setRule(int aRule)` Select an operating rule.
    `void` | `setRule(java.lang.String aString)` Deprecated. use setRule(int)
    `void` | `start()` Start cell operator in separate thread.
    `void` | `stop()` Stop cell operator in separate thread.
    `void` | `unmarkVertices(PvPickEvent markBox)` Unmark a set of vertices of a geometry within a given bounding box.
    `boolean` | `update(java.lang.Object event)` Update the class whenever a child has changed.

    - ### Methods inherited from class jvx.project.PjWorkshop

      `cancel, getDisplay, getDisplays, getGeometry, getMode, getSavedGeometry, getViewer, isModal, isStandalone, ok, removeGeometry, setDisplay, setDisplays, setGeometry, setModal, setMode, setStandalone, setViewer`

    - ### Methods inherited from class jv.object.PsObject

      `addInspector, addUpdateListener, assureInspector, clearTag, clone, clone, clone, copy, getFather, getInfoPanel, getInspector, getName, getNumObjects, getSymbol, hasInspector, hasTag, hasUpdateListener, instanceOf, instanceOf, newInspector, newInspector, removeInspector, removeInspector, removeUpdateListener, setName, setParent, setSymbol, setTag, toString, updatePanels`

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

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface jv.project.PvPickListenerIf

      `getName`

    - ### Methods inherited from interface jv.object.PsUpdateIf

      `getFather, getName, setParent`

- - ### Field Detail

    - #### LIFE

          public static final int LIFE

      See Also:
        Constant Field Values

    - #### MAJORITY

          public static final int MAJORITY

      See Also:
        Constant Field Values

    - #### NEIGHBOUR

          public static final int NEIGHBOUR

      See Also:
        Constant Field Values

    - #### CORONA

          public static final int CORONA

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### PnCellOperator

          public PnCellOperator()

      Constructor

    - #### PnCellOperator

          public PnCellOperator(PgElementSet geom)

      Deprecated. use constructor prj=new PnCellOperator();prj.setGeometry(geom);prj.reset();
      Constructor.

  - ### Method Detail

    - #### init

          public void init()

      Initialization
      Overrides:
        `init` in class `PjWorkshop`

    - #### reset

          public void reset()

      Reset workshop and geometry to original state.
      Overrides:
        `reset` in class `PjWorkshop`

    - #### update

          public boolean update(java.lang.Object event)

      Update the class whenever a child has changed. Method is usually invoked from the children.
      Specified by:
        `update` in interface `PsUpdateIf`
      Overrides:
        `update` in class `PjWorkshop`
      Parameters:
        `event` - sender of this update.
      Returns:
        true if update was correctly handled by superclass.
      See Also:
        `PsObject.setParent(PsUpdateIf)`, `PsObject.getFather()`, `PsObject.addUpdateListener(PsUpdateIf)`

    - #### setGeometry

          public void setGeometry(PgElementSet geom)

      Assign a geometry on which this workshop operates.

    - #### close

          public void close()

      Remove pick focus and update from cell operator, reset elementSet's colors to global element color and destroy dialog window.
      Overrides:
        `close` in class `PjWorkshop`

    - #### requestPick

          public void requestPick()

      Set pick focus upon cell operator.

    - #### releasePick

          public void releasePick()

      Remove pick focus from cell operator.

    - #### pickInitial

          public void pickInitial(PvPickEvent pos)

      Mark picked element to be a living cell.
      Specified by:
        `pickInitial` in interface `PvPickListenerIf`
      Parameters:
        `pos` - Pick event issued by the display
      See Also:
        `PvPickListenerIf`

    - #### selectGeometry

          public void selectGeometry(PgGeometryIf geom)

      This workshop is informed when the currently active geometry changes in the display. This method is automatically invoked from a display if this workshop is registered as pick listener.

      This method does nothing and must be overwritten.

      Specified by:
        `selectGeometry` in interface `PvPickListenerIf`
      Parameters:
        `geom` - Now selected geometry of display.

    - #### pickDisplay

          public void pickDisplay(PvPickEvent pos)

      Get a location in the display with 2d display and 3d world coordinates. Point may be independent of any geometry.

      This method does nothing and must be overwritten.

      Specified by:
        `pickDisplay` in interface `PvPickListenerIf`
      Parameters:
        `pos` - Pick event issued by the display
      See Also:
        `PvPickListenerIf`

    - #### dragDisplay

          public void dragDisplay(PvPickEvent pos)

      Drag a location in the display with 2d display and 3d world coordinates. Point may be independent of any geometry.

      This method invokes `pickDisplay(PvPickEvent)`.

      Specified by:
        `dragDisplay` in interface `PvPickListenerIf`
      Parameters:
        `pos` - Pick event issued by the display
      See Also:
        `PvPickListenerIf`

    - #### dragInitial

          public void dragInitial(PvPickEvent pos)

      Drag an arbitrary point along a geometry, point may lie inside an element.

      This method invokes `pickInitial(PvPickEvent)` and should be overwritten.

      Specified by:
        `dragInitial` in interface `PvPickListenerIf`
      Parameters:
        `pos` - Pick event issued by the display
      See Also:
        `PvPickListenerIf`

    - #### pickVertex

          public void pickVertex(PgGeometryIf geom,
                        int vertexIndex,
                        PdVector vertex)

      Get a picked vertex of a geometry.

      This method does nothing and must be overwritten.

      Specified by:
        `pickVertex` in interface `PvPickListenerIf`
      Parameters:
        `geom` - Picked geometry on which vertex lies
        `vertexIndex` - Index of vertex in vertex array of geometry
        `vertex` - 3d coordinates of vertex position
      See Also:
        `PvPickListenerIf`

    - #### dragVertex

          public void dragVertex(PgGeometryIf geom,
                        int vertexIndex,
                        PdVector vertex)

      Drag a picked vertex of a geometry.

      This method invokes `pickVertex(PgGeometryIf,int,PdVector)` and should be overwritten.

      Specified by:
        `dragVertex` in interface `PvPickListenerIf`
      Parameters:
        `geom` - Picked geometry on which vertex lies
        `vertexIndex` - Index of vertex in vertex array of geometry
        `vertex` - 3d coordinates of vertex position

    - #### markVertices

          public void markVertices(PvPickEvent markBox)

      Mark a set of vertices of a geometry within a given bounding box.
      Specified by:
        `markVertices` in interface `PvPickListenerIf`
      Parameters:
        `markBox` - contains four coplanar points on the bounding prism, and direction of prism.

    - #### unmarkVertices

          public void unmarkVertices(PvPickEvent markBox)

      Unmark a set of vertices of a geometry within a given bounding box.
      Specified by:
        `unmarkVertices` in interface `PvPickListenerIf`
      Parameters:
        `markBox` - contains four coplanar points on the bounding prism, and direction of prism.

    - #### setNumStates

          public void setNumStates(int anInt)

      Define number of possible states of a cell.

    - #### getNumStates

          public int getNumStates()

      return number of possible states of a cell.

    - #### setRule

          public void setRule(int aRule)

      Select an operating rule.
      Since:
        JavaView 2.34

    - #### setRule

          public void setRule(java.lang.String aString)

      Deprecated. use setRule(int)
      Choose an operating rule.

    - #### setInfluence

          public void setInfluence(int inf)

      Choose an influence area.
      Since:
        JavaView 2.34

    - #### setInfluence

          public void setInfluence(java.lang.String aString)

      Deprecated. use setInfluence(int)
      Choose an influence area.

    - #### getColor

          public java.awt.Color getColor(int i)

      Return color for a given cell state.

    - #### setColor

          public void setColor(int i,
                      java.awt.Color aColor)

      Define color for a cell state.

    - #### getNumLoops

          public int getNumLoops()

      Get the number of operating loops.
      Since:
        JavaView 2.48.007

    - #### setNumLoops

          public void setNumLoops(int numLoops)

      Set the number of operating loops.

    - #### setCurrLoop

          public void setCurrLoop(int currLoop)

      Set number of current operating loop.

    - #### markElement

          public void markElement(int elemNr)

      Set an element to the next state.

    - #### markElement

          public void markElement(int elemNr,
                         int value)

      Set an element to a given state.

    - #### markGlider

          public void markGlider(int elemNr,
                        int dir)

      Set a glider upon an elementSet with quadrilateral connectivity.

    - #### clear

          public void clear()

      Set all elements to state "0".

    - #### getState

          public int getState(int elemNr)

      Return state number of a given element.

    - #### makeInfluence

          public void makeInfluence()

      Set list of influencing cells for all cells of the elementSet.

    - #### makeNeighbourInfluence

          public void makeNeighbourInfluence()

      For all cells store cell itself and all neighbour cells.

    - #### makeCoronaInfluence

          public void makeCoronaInfluence()

      For all cells store all cells touching vertices of the cell itself.

    - #### compute

          public void compute()

      For all cells call cell operating method.

    - #### evaluate

          public void evaluate()

      For all elements of the ElementSet show the cell values.

    - #### setOutputType

          public void setOutputType(int aType)

      Appoint the way of viewing element states.

    - #### setColors

          public void setColors()

      Set colors of all elements of the elementSet according to their states.

    - #### restoreColors

          public void restoreColors()

      Reset the ElementSet's element colors to state before calling cell operator.

    - #### setElementTags

          public void setElementTags()

      Set tag for all elements of the elementSet according to their states.

    - #### cellOperator

          public int cellOperator(int index)

      Call the appointed operating rule for a given cell.

    - #### ruleOfLife

          public int ruleOfLife(int index)

      Evaluate rule of life: Dead cells with exactly three living influencing cells are set alive, living cells with three or four living influencing cells stay alive, all other cells are dead.

    - #### ruleOfMajority

          public int ruleOfMajority(int index)

      Every cell is set to the state of the majority state in the influence area.

    - #### start

          public void start()

      Start cell operator in separate thread.

    - #### stop

          public void stop()

      Stop cell operator in separate thread.

    - #### run

          public void run()

      Do cell operating until `m_numLoops` are done or until a call of stop().
      Specified by:
        `run` in interface `java.lang.Runnable`

"

The software JavaView? is copyright protected. All Rights Reserved.
"