VASSAL.counters
Class FreeRotator

java.lang.Object
  |
  +--VASSAL.counters.Decorator
        |
        +--VASSAL.counters.FreeRotator
All Implemented Interfaces:
Drawable, EditablePiece, java.util.EventListener, GamePiece, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, StateMergeable

public class FreeRotator
extends Decorator
implements EditablePiece, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, Drawable

A Decorator that rotates a GamePiece to an arbitrary angle


Field Summary
static java.lang.String ID
           
 
Fields inherited from class VASSAL.counters.Decorator
piece
 
Constructor Summary
FreeRotator()
           
FreeRotator(java.lang.String type, GamePiece inner)
           
 
Method Summary
 void beginInteractiveRotate()
           
 java.awt.Rectangle boundingBox()
          The area which this GamePiece occupies when drawn at the point (0,0)
 void draw(java.awt.Graphics g, int x, int y, java.awt.Component obs, double zoom)
          Draw this GamePiece
 void draw(java.awt.Graphics g, Map map)
           
 double getAngle()
           
 double getAngleInRadians()
           
 java.lang.String getDescription()
          A plain-English description of this type of piece
 PieceEditor getEditor()
          Get the configurer for this trait
 HelpFile getHelpFile()
           
 java.lang.String getName()
          The plain English name for this piece
 java.awt.Rectangle getRotatedBounds()
           
 java.awt.Image getRotatedImage(double angle, java.awt.Component obs)
           
 java.awt.Shape getShape()
          The shape of the piece from the user's viewpoint.
 void mouseClicked(java.awt.event.MouseEvent e)
           
 void mouseDragged(java.awt.event.MouseEvent e)
           
 void mouseEntered(java.awt.event.MouseEvent e)
           
 void mouseExited(java.awt.event.MouseEvent e)
           
 void mouseMoved(java.awt.event.MouseEvent e)
           
 void mousePressed(java.awt.event.MouseEvent e)
           
 void mouseReleased(java.awt.event.MouseEvent e)
           
 KeyCommand[] myGetKeyCommands()
           
 java.lang.String myGetState()
           
 java.lang.String myGetType()
           
 Command myKeyEvent(javax.swing.KeyStroke stroke)
          The response of this trait alone to the given KeyStroke
 void mySetState(java.lang.String state)
          Set just the state of this trait
 void mySetType(java.lang.String type)
          Set the type information for this piece.
 void setAngle(double angle)
           
 void setInner(GamePiece p)
          Set the inner GamePiece
 void setPivot(int x, int y)
          The point around which the piece will pivot while rotating interactively
 void setProperty(java.lang.Object key, java.lang.Object val)
          Other properties, possibly game-specific, can be associated with a piece.
 
Methods inherited from class VASSAL.counters.Decorator
getDecorator, getId, getInner, getInnermost, getKeyCommands, getMap, getOutermost, getParent, getPosition, getProperty, getState, getType, keyEvent, mergeState, setId, setMap, setParent, setPosition, setState
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface VASSAL.counters.GamePiece
getId, getMap, getParent, getPosition, getProperty, getState, getType, keyEvent, setId, setMap, setParent, setPosition, setState
 

Field Detail

ID

public static final java.lang.String ID
Constructor Detail

FreeRotator

public FreeRotator()

FreeRotator

public FreeRotator(java.lang.String type,
                   GamePiece inner)
Method Detail

getName

public java.lang.String getName()
Description copied from interface: GamePiece
The plain English name for this piece
Specified by:
getName in interface GamePiece

setInner

public void setInner(GamePiece p)
Description copied from class: Decorator
Set the inner GamePiece
Overrides:
setInner in class Decorator

boundingBox

public java.awt.Rectangle boundingBox()
Description copied from interface: GamePiece
The area which this GamePiece occupies when drawn at the point (0,0)
Specified by:
boundingBox in interface GamePiece

getAngle

public double getAngle()

setAngle

public void setAngle(double angle)

getRotatedBounds

public java.awt.Rectangle getRotatedBounds()

getShape

public java.awt.Shape getShape()
Description copied from interface: GamePiece
The shape of the piece from the user's viewpoint. This defines the area in which the user must click to select or move the piece, for example. Like GamePiece.boundingBox(), it assumes the position is (0,0) and must be translated to the actual location where the piece is being drawn.
Specified by:
getShape in interface GamePiece

getAngleInRadians

public double getAngleInRadians()

mySetType

public void mySetType(java.lang.String type)
Description copied from interface: EditablePiece
Set the type information for this piece. See Decorator.myGetType()
Specified by:
mySetType in interface EditablePiece

draw

public void draw(java.awt.Graphics g,
                 int x,
                 int y,
                 java.awt.Component obs,
                 double zoom)
Description copied from interface: GamePiece
Draw this GamePiece
Specified by:
draw in interface GamePiece
Following copied from interface: VASSAL.counters.GamePiece
Parameters:
g -  
x - x-location of the center of the piece
y - y-location of the center of the piece
obs - the Component on which this piece is being drawn
zoom - the scaling factor.

draw

public void draw(java.awt.Graphics g,
                 Map map)
Specified by:
draw in interface Drawable

myGetType

public java.lang.String myGetType()
Overrides:
myGetType in class Decorator
Following copied from class: VASSAL.counters.Decorator
Returns:
the type of this trait alone
See Also:
Decorator.getType()

myGetState

public java.lang.String myGetState()
Overrides:
myGetState in class Decorator
Following copied from class: VASSAL.counters.Decorator
Returns:
the state of this trait alone
See Also:
Decorator.getState()

mySetState

public void mySetState(java.lang.String state)
Description copied from class: Decorator
Set just the state of this trait
Overrides:
mySetState in class Decorator
Following copied from class: VASSAL.counters.Decorator
See Also:
Decorator.myGetState()

myGetKeyCommands

public KeyCommand[] myGetKeyCommands()
Overrides:
myGetKeyCommands in class Decorator
Following copied from class: VASSAL.counters.Decorator
Returns:
the commands for this trait alone
See Also:
Decorator.getKeyCommands()

myKeyEvent

public Command myKeyEvent(javax.swing.KeyStroke stroke)
Description copied from class: Decorator
The response of this trait alone to the given KeyStroke
Overrides:
myKeyEvent in class Decorator
Following copied from class: VASSAL.counters.Decorator
Parameters:
stroke -  
Returns:
null if no effect
See Also:
Decorator.keyEvent(javax.swing.KeyStroke)

beginInteractiveRotate

public void beginInteractiveRotate()

setPivot

public void setPivot(int x,
                     int y)
The point around which the piece will pivot while rotating interactively

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Specified by:
mouseExited in interface java.awt.event.MouseListener

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Specified by:
mouseReleased in interface java.awt.event.MouseListener

setProperty

public void setProperty(java.lang.Object key,
                        java.lang.Object val)
Description copied from interface: GamePiece
Other properties, possibly game-specific, can be associated with a piece. The properties may or may not need to be encoded in the piece's GamePiece.getState() method.
Specified by:
setProperty in interface GamePiece
Overrides:
setProperty in class Decorator

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener

getRotatedImage

public java.awt.Image getRotatedImage(double angle,
                                      java.awt.Component obs)

getDescription

public java.lang.String getDescription()
Description copied from interface: EditablePiece
A plain-English description of this type of piece
Specified by:
getDescription in interface EditablePiece

getHelpFile

public HelpFile getHelpFile()
Specified by:
getHelpFile in interface EditablePiece

getEditor

public PieceEditor getEditor()
Description copied from interface: EditablePiece
Get the configurer for this trait
Specified by:
getEditor in interface EditablePiece
Overrides:
getEditor in class Decorator