EDU.gatech.cc.is.simulation
Interface SimulatedObject

All Known Subinterfaces:
SimulatedLinearObject, SimulatedTerrainObject
All Known Implementing Classes:
CaptureSim, CommN150Sim, MultiForageN150Sim, RescueVanSim, SimpleN150Sim, SocSmallSim, AttractorSim, SquiggleBallSim, ObstacleSim, AttractorPermSim, BinSim, GolfBallSim, SocFieldSmallSim, PolygonObstacleSim

public interface SimulatedObject

If you want to include a new object for TeamBots simulation, you must implement this interface.

Most of these methods are used by other simulated objects to either generate simulated sensor values or reproduce accurate dynamic results.

Copyright (c)2000 Tucker Balch


Method Summary
 boolean checkCollision(Circle2 c)
          determine if the object is intersecting with a specified circle.
 boolean checkCollision(Polygon2 p)
          determine if the object is intersecting with a specified polygon.
 void clearTrail()
          Clear the trail.
 void draw(java.awt.Graphics g, int w, int h, double t, double b, double l, double r)
          Draw the object.
 void draw(Vec2 p, java.awt.Graphics g, int w, int h, double t, double b, double l, double r)
          Draw the object in a specific spot, regardless of where it really is.
 void drawIcon(java.awt.Graphics g, int w, int h, double t, double b, double l, double r)
          Draw the object as an icon.
 void drawID(java.awt.Graphics g, int w, int h, double t, double b, double l, double r)
          Draw the object's ID.
 void drawState(java.awt.Graphics g, int w, int h, double t, double b, double l, double r)
          Draw the object's state.
 void drawTrail(java.awt.Graphics g, int w, int h, double t, double b, double l, double r)
          Draw the object's trail.
 Vec2 getCenter(Vec2 from)
          Find the center point of the object from a particular location.
 Vec2 getClosestPoint(Vec2 from)
          Find the closest point on the object from a particular location.
 int getID()
          Return the id.
 Vec2 getPosition()
          Find the center point of the object in absolute coordinates.
 int getVisionClass()
          Return the vision class of the object.
 void init(double x, double y, double t, double r, java.awt.Color fg, java.awt.Color bg, int vc, int id, long s)
          Initialize a simulated object.
 boolean isObstacle()
          true if the object should be considered an obstacle, false otherwise.
 boolean isPickupable()
          true if the object can be picked up, false otherwise.
 boolean isPushable()
          true if the object is pushable false otherwise.
 void pickUp(SimulatedObject o)
          Try to pick up the object.
 void push(Vec2 d, Vec2 v)
          Try to push the object.
 void putDown(Vec2 p)
          Try to put down the object.
 void quit()
          Clean up.
 void receive(Message m)
          Receive a message.
 void setID(int id)
          Set the id of the object.
 void setTrailLength(int l)
          Set the length of the trail (in movement steps).
 void setVisionClass(int v)
          Change the way the object is perceived by vision hardware.
 void takeStep(long time_increment, SimulatedObject[] all_objects)
          Take a simulated step.
 

Method Detail

init

public void init(double x,
                 double y,
                 double t,
                 double r,
                 java.awt.Color fg,
                 java.awt.Color bg,
                 int vc,
                 int id,
                 long s)
Initialize a simulated object. Called automatically by JavaBotSim.
Parameters:
x - the initial x position.
y - the initial y position.
t - orientation.
r - radius.
fg - the foreground color of the object when drawn.
bg - the background color of the object when drawn.
vc - the vision class of the object - for use by simulated vision.
id - a unique ID number fore the object.
s - random number seed.

takeStep

public void takeStep(long time_increment,
                     SimulatedObject[] all_objects)
Take a simulated step.
Parameters:
time_increment - how much time has elapsed since the last call.
all_objects - the other objects in the simulation.

isObstacle

public boolean isObstacle()
true if the object should be considered an obstacle, false otherwise.
Returns:
true if the object should be considered an obstacle, false otherwise.

isPushable

public boolean isPushable()
true if the object is pushable false otherwise.
Returns:
true if the object is pushable, false otherwise.

isPickupable

public boolean isPickupable()
true if the object can be picked up, false otherwise.
Returns:
true if the object can be picked up, false otherwise.

getClosestPoint

public Vec2 getClosestPoint(Vec2 from)
Find the closest point on the object from a particular location. This is useful for obstacle avoidance and so on.
Parameters:
from - the place from which the point is determined.
Returns:
the closest point.

checkCollision

public boolean checkCollision(Circle2 c)
determine if the object is intersecting with a specified circle. This is useful for obstacle avoidance and so on.
Parameters:
c - the circle which may be intersecting the current object.
Returns:
true if collision detected.

checkCollision

public boolean checkCollision(Polygon2 p)
determine if the object is intersecting with a specified polygon. This is useful for obstacle avoidance and so on.
Parameters:
p - the polygon which may be intersecting the current object.
Returns:
true if collision detected.

getPosition

public Vec2 getPosition()
Find the center point of the object in absolute coordinates.
Returns:
the point.

getCenter

public Vec2 getCenter(Vec2 from)
Find the center point of the object from a particular location.
Parameters:
from - the place from which the point is determined.
Returns:
the center point.

push

public void push(Vec2 d,
                 Vec2 v)
Try to push the object.
Parameters:
d - the direction and distance of the push.
v - the velocity of the push.

pickUp

public void pickUp(SimulatedObject o)
Try to pick up the object.
Parameters:
o - the object picking it up - this is used for drawing purposes.

putDown

public void putDown(Vec2 p)
Try to put down the object.
Parameters:
p - the location of deposit.

setVisionClass

public void setVisionClass(int v)
Change the way the object is perceived by vision hardware. This can be used to make old targets invisible (a simulation hack.... sorry).
Parameters:
v - the new vision class.

getVisionClass

public int getVisionClass()
Return the vision class of the object.
Parameters:
v - the new vision class.

getID

public int getID()
Return the id.

setID

public void setID(int id)
Set the id of the object.
Parameters:
id - the new id.

receive

public void receive(Message m)
Receive a message. This is principally for robot to robot communication. Most objects can safely ignore this.
Parameters:
m - the message.

quit

public void quit()
Clean up.

draw

public void draw(java.awt.Graphics g,
                 int w,
                 int h,
                 double t,
                 double b,
                 double l,
                 double r)
Draw the object.
Parameters:
g - graphics area to draw the object.
w - the width in pixels of g.
h - the height in pixels of g.
t - the y coordinate represented by the top boundary of the drawing area.
b - the y coordinate represented by the bottom boundary of the drawing area.
l - the x coordinate represented by the left boundary of the drawing area.
r - the x coordinate represented by the right boundary of the drawing area.

drawIcon

public void drawIcon(java.awt.Graphics g,
                     int w,
                     int h,
                     double t,
                     double b,
                     double l,
                     double r)
Draw the object as an icon.
Parameters:
g - graphics area to draw the object.
w - the width in pixels of g.
h - the height in pixels of g.
t - the y coordinate represented by the top boundary of the drawing area.
b - the y coordinate represented by the bottom boundary of the drawing area.
l - the x coordinate represented by the left boundary of the drawing area.
r - the x coordinate represented by the right boundary of the drawing area.

drawID

public void drawID(java.awt.Graphics g,
                   int w,
                   int h,
                   double t,
                   double b,
                   double l,
                   double r)
Draw the object's ID.
Parameters:
g - graphics area to draw the object.
w - the width in pixels of g.
h - the height in pixels of g.
t - the y coordinate represented by the top boundary of the drawing area.
b - the y coordinate represented by the bottom boundary of the drawing area.
l - the x coordinate represented by the left boundary of the drawing area.
r - the x coordinate represented by the right boundary of the drawing area.

drawTrail

public void drawTrail(java.awt.Graphics g,
                      int w,
                      int h,
                      double t,
                      double b,
                      double l,
                      double r)
Draw the object's trail.
Parameters:
g - graphics area to draw the object.
w - the width in pixels of g.
h - the height in pixels of g.
t - the y coordinate represented by the top boundary of the drawing area.
b - the y coordinate represented by the bottom boundary of the drawing area.
l - the x coordinate represented by the left boundary of the drawing area.
r - the x coordinate represented by the right boundary of the drawing area.

setTrailLength

public void setTrailLength(int l)
Set the length of the trail (in movement steps). Non-robots can ignore this.
Parameters:
l - int, the length of the trail.

clearTrail

public void clearTrail()
Clear the trail. Non-robots can ignore this.

drawState

public void drawState(java.awt.Graphics g,
                      int w,
                      int h,
                      double t,
                      double b,
                      double l,
                      double r)
Draw the object's state.
Parameters:
g - graphics area to draw the object.
w - the width in pixels of g.
h - the height in pixels of g.
t - the y coordinate represented by the top boundary of the drawing area.
b - the y coordinate represented by the bottom boundary of the drawing area.
l - the x coordinate represented by the left boundary of the drawing area.
r - the x coordinate represented by the right boundary of the drawing area.

draw

public void draw(Vec2 p,
                 java.awt.Graphics g,
                 int w,
                 int h,
                 double t,
                 double b,
                 double l,
                 double r)
Draw the object in a specific spot, regardless of where it really is.
Parameters:
p - location to draw it at.
g - graphics area to draw the object.
w - the width in pixels of g.
h - the height in pixels of g.
t - the y coordinate represented by the top boundary of the drawing area.
b - the y coordinate represented by the bottom boundary of the drawing area.
l - the x coordinate represented by the left boundary of the drawing area.
r - the x coordinate represented by the right boundary of the drawing area.