ballwar.model.paint
Class ImagePaintStrategy

java.lang.Object
  extended by ballwar.model.paint.APaintStrategy
      extended by ballwar.model.paint.ImagePaintStrategy
All Implemented Interfaces:
IPaintStrategy
Direct Known Subclasses:
BirdSheepImagePaintStrategy

public class ImagePaintStrategy
extends APaintStrategy

Paint strategy that paints an image from a file, scaled to the host Ball's radius. Note that this class cannot be used by the BallWar system directly as it is missing a no-parameter constructor.


Field Summary
private  double fillFactor
          The percentage of the average of the width and height of the image that defines a unit radius for the image.
private  Image image
          The image to paint
private  ImageObserver imageObs
          ImageObserver needed for some image operations
protected  AffineTransform localAT
          A local affine transform used to transform the image into its unit size and location.
private  double scaleFactor
          Number of times larger than unit size of image
 
Fields inherited from class ballwar.model.paint.APaintStrategy
at
 
Fields inherited from interface ballwar.model.IPaintStrategy
NullObject
 
Constructor Summary
ImagePaintStrategy(AffineTransform at, String filename, double fillFactor)
          Constructor that takes an external AffineTransform, the filename of the image to paint and a fill factor of the image.
ImagePaintStrategy(String filename, double fillFactor)
          Constructor that takes the image filename and fill factor.
 
Method Summary
 void init(Ball host)
          Initializes the internal ImageObserver reference from the host Ball Also calculates the net scale factor for the image.
 void paintXfrm(Graphics g, Ball host, AffineTransform at)
          Draws the image on the given Graphics context using the given affine transform in combination with the local affine transform.
 
Methods inherited from class ballwar.model.paint.APaintStrategy
paint, paintCfg
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

imageObs

private ImageObserver imageObs
ImageObserver needed for some image operations


image

private Image image
The image to paint


scaleFactor

private double scaleFactor
Number of times larger than unit size of image


fillFactor

private double fillFactor
The percentage of the average of the width and height of the image that defines a unit radius for the image. This is also the collision bounds of the image in terms of a percentage.


localAT

protected AffineTransform localAT
A local affine transform used to transform the image into its unit size and location.

Constructor Detail

ImagePaintStrategy

public ImagePaintStrategy(String filename,
                          double fillFactor)
Constructor that takes the image filename and fill factor. An AffineTransform is instantiated for internal use. GIF, JPG, PNG and any other file that can be loaded by an ImageIcon object can be used, including animated GIF's as the above files are.

Parameters:
filename - The filename of the image file to use.
fillFactor - The ratio of the desired average radius of the image to the actual average of the image's width and height.

ImagePaintStrategy

public ImagePaintStrategy(AffineTransform at,
                          String filename,
                          double fillFactor)
Constructor that takes an external AffineTransform, the filename of the image to paint and a fill factor of the image.

Parameters:
at - The AffineTransform to use internally.
filename - The filename of the image file to use.
fillFactor - The ratio of the desired average radius of the image to the actual average of the image's width and height.
Method Detail

paintXfrm

public void paintXfrm(Graphics g,
                      Ball host,
                      AffineTransform at)
Draws the image on the given Graphics context using the given affine transform in combination with the local affine transform.

Parameters:
g - The graphics context to paint on
host - The host Ball
at - The AffineTransform to use.

init

public void init(Ball host)
Initializes the internal ImageObserver reference from the host Ball Also calculates the net scale factor for the image.

Specified by:
init in interface IPaintStrategy
Overrides:
init in class APaintStrategy
Parameters:
host - The host Ball