public void onPaint( Graphics2D console )
{
long time = Host.singleton.getTurn();
Iterator iterator = this.iterator();
while( iterator.hasNext() )
{
CombatWave wave = ( CombatWave ) iterator.next();
double radius1 = wave.getRadius( time - 1 );
double radius2 = wave.getRadius( time );
double radius3 = wave.getRadius( time + 1 );
console.setColor( Color.darkGray );
GraphicalDebugger.singleton.drawRing( console, wave, radius1 );
GraphicalDebugger.singleton.drawRing( console, wave, radius2 );
GraphicalDebugger.singleton.drawRing( console, wave, radius3 );
Iterator firingAngleIterator = wave.getFiringAngleIterator();
while( firingAngleIterator.hasNext() )
{
FiringAngle firingAngle = ( FiringAngle ) firingAngleIterator.next();
StaticPosition point1 = new StaticPositionImpl( wave, firingAngle.getFiringAngle(), radius1 );
StaticPosition point2 = new StaticPositionImpl( wave, firingAngle.getFiringAngle(), radius2 );
StaticPosition point3 = new StaticPositionImpl( wave, firingAngle.getFiringAngle(), radius3 );
console.setColor( Color.red );
GraphicalDebugger.singleton.drawLine( console, point1, point2 );
console.setColor( Color.yellow );
GraphicalDebugger.singleton.drawLine( console, point2, point3 );
}
}
}
package pedersen.debug;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import java.util.Iterator;
import java.util.List;
import pedersen.physics.StaticPosition;
public class GraphicalDebugger
{
//:://////////////////////////////////////
//:: Constructors
//:://////////////////////////////////////
private GraphicalDebugger()
{
}
//:://////////////////////////////////////
//:: Methods
//:://////////////////////////////////////
public void init( double newMaxY )
{
this.maxY = newMaxY;
}
public void drawVehicleHitBox( Graphics2D console, StaticPosition center )
{
console.draw( new Rectangle2D.Double( center.getX() - 18.0, this.maxY - center.getY() - 18.0, 36.0, 36.0 ) );
}
public void drawRing( Graphics2D console, StaticPosition center, double radius )
{
console.draw( new Ellipse2D.Double( center.getX() - radius, this.maxY - center.getY() - radius, radius + radius, radius + radius ) );
}
public void drawRings( Graphics2D console, List centers, double radius )
{
Iterator iterator = centers.iterator();
while( iterator.hasNext() )
{
this.drawRing( console, (StaticPosition)iterator.next(), radius );
}
}
public void drawLine( Graphics2D console, StaticPosition a, StaticPosition b )
{
console.draw( new Line2D.Double( a.getX(), this.maxY - a.getY(), b.getX(), this.maxY - b.getY() ) );
}
public void drawRenderableLineSegment( Graphics2D console, RenderableLineSegment line )
{
console.setColor( line.color );
console.draw( new Line2D.Double( line.x1, this.maxY - line.y1, line.x2, this.maxY - line.y2 ) );
}
public void drawRenderableLineSegments( Graphics2D console, List lines )
{
Iterator iterator = lines.iterator();
while( iterator.hasNext() )
{
this.drawRenderableLineSegment( console, (RenderableLineSegment)iterator.next() );
}
}
//:://////////////////////////////////////
//:: Instance Variables
//:://////////////////////////////////////
private double maxY = 0.0;
//:://////////////////////////////////////
//:: Static Constants
//:://////////////////////////////////////
public static final GraphicalDebugger singleton = new GraphicalDebugger( );
}
package pedersen.debug;
import java.awt.Color;
import pedersen.physics.StaticPosition;
public class RenderableLineSegment
{
public RenderableLineSegment( StaticPosition start, StaticPosition end, Color newColor )
{
this.x1 = start.getX();
this.y1 = start.getY();
this.x2 = end.getX();
this.y2 = end.getY();
this.color = newColor;
}
public final double x1;
public final double y1;
public final double x2;
public final double y2;
public final Color color;
}
Thanks. It think i will have a busy evening --Loki