JavaView© v3.95.000

jvx.geom
Class PnCellOperator

java.lang.Object
  extended byjv.object.PsObject
      extended byjvx.project.PjWorkshop
          extended byjvx.geom.PnCellOperator
All Implemented Interfaces:
java.lang.Cloneable, PjWorkshopIf, PsUpdateIf, PvPickListenerIf, java.lang.Runnable, java.io.Serializable
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
static int CORONA
           
static int LIFE
           
static int MAJORITY
           
static int NEIGHBOUR
           
 
Fields inherited from class jv.object.PsObject
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
 
Constructor Summary
PnCellOperator()
          Constructor
PnCellOperator(PgElementSet geom)
          Deprecated. use constructor prj=new PnCellOperator();prj.setGeometry(geom);prj.reset();
 
Method Summary
 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()
          Initialisation
 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, getSavedGeometry, getViewer, isModal, ok, removeGeometry, setDisplay, setDisplays, setGeometry, setModal, 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()
Initialisation

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.

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

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

JavaView© v3.95.000

The software JavaView© is copyright protected. All Rights Reserved.