A shape that is drawn as a line between two points.
Lines have no volume, and therefore cannot collide with each other. However,
lines can still be involved in collisions with other shapes that do have
volume, such as RectangleShape
, OvalShape
, and
ImageShape to name a few.
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
LineShape()
Creates a new
LineShape with default position and size. | ||||||||||
|
LineShape(PointF point1, PointF point2)
Creates a new
LineShape between two points. | ||||||||||
|
LineShape(float x1, float y1, float x2, float y2)
Creates a new
LineShape between two points. | ||||||||||
|
LineShape(RectF bounds)
Creates a new
LineShape that starts at the top-left corner of
the specified rectangle and ends at the bottom-right corner. |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
boolean
|
contains(float x, float y)
Gets a value indicating whether the specified pixel location is contained in the receiver. | ||||||||||
void
|
draw(Canvas canvas)
Subclasses must implement this method to define how the shape is to be
drawn on the canvas.
| ||||||||||
RectF
|
getBounds()
Gets the bounding rectangle of the shape.
| ||||||||||
void
|
setBounds(RectF newBounds)
Sets the bounding rectangle of the shape.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
void
|
createFixtures()
This method is intended for internal use only, or by advanced
users subclassing one of the abstract shape types.
|
Methods inherited from
class
sofia.graphics.StrokedShape
| |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Animator<?>
|
animate(long duration)
Gets an animator object that lets the user animate properties of the receiving shape. | ||||||||||
Paint
|
getPaint()
Gets the
Paint object that describes how this shape should be
drawn. | ||||||||||
Paint.Cap
|
getStrokeCap()
Gets the stroke's cap, which determines how to treat the beginning and
end of the stroke.
| ||||||||||
Paint.Join
|
getStrokeJoin()
Gets the stroke's join type.
| ||||||||||
double
|
getStrokeMiter()
Gets the stroke's miter value, which is used to control the behavior of
miter joins when the join angle is sharp.
| ||||||||||
double
|
getStrokeWidth()
Gets the width of the stroke.
| ||||||||||
void
|
setStrokeCap(Paint.Cap newStrokeCap)
Sets the stroke's cap, which determines how to treat the beginning and
end of the stroke.
| ||||||||||
void
|
setStrokeJoin(Paint.Join newStrokeJoin)
Sets the stroke's join type.
| ||||||||||
void
|
setStrokeMiter(double newStrokeMiter)
Sets the stroke's miter value, which is used to control the behavior of
miter joins when the join angle is sharp.
| ||||||||||
void
|
setStrokeWidth(double newStrokeWidth)
Sets the width of the stroke.
|
Methods inherited from
class
sofia.graphics.Shape
| |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
void
|
addFixtureForShape(org.jbox2d.collision.shapes.Shape b2Shape)
This method should only be called internally from within
#createFixtures(Body) in order to create fixtures for the shape
and add them to the shape's internal list of fixtures.
| ||||||||||
void
|
addOther(Shape newShape)
Add another shape to the same view (or composite shape) containing this
shape.
| ||||||||||
Animator<?>
|
animate(long duration)
Gets an animator object that lets the user animate properties of the receiving shape. | ||||||||||
void
|
applyLinearImpulse(float x, float y)
TODO document
| ||||||||||
void
|
conditionallyRepaint()
Called to indicate that the shape needs to be repainted on the screen.
| ||||||||||
boolean
|
contains(PointF point)
Gets a value indicating whether the specified pixel location is
contained in the receiver.
| ||||||||||
boolean
|
contains(float x, float y)
Gets a value indicating whether the specified pixel location is contained in the receiver. | ||||||||||
abstract
void
|
createFixtures()
This method is intended for internal use only, or by advanced
users subclassing one of the abstract shape types.
| ||||||||||
void
|
destroyFixtures()
Destroys the fixtures associated with this shape.
| ||||||||||
abstract
void
|
draw(Canvas canvas)
Subclasses must implement this method to define how the shape is to be
drawn on the canvas.
| ||||||||||
ViewEdges
|
extendsOutside(RectF bounds)
Determine whether any part of this shape extends outside the given
rectangle.
| ||||||||||
int
|
getAlpha()
A convenience method that gets the alpha (opacity) component of the
shape's color.
| ||||||||||
float
|
getAngularDamping()
Gets the angular damping of the shape, which is used to reduce the
angular velocity of the shape.
| ||||||||||
float
|
getAngularVelocity()
Gets the angular velocity of the shape, in degrees per second.
| ||||||||||
Body
|
getB2Body()
For advanced usage only.
| ||||||||||
BodyDef
|
getB2BodyDef()
For advanced usage only. | ||||||||||
abstract
RectF
|
getBounds()
Gets the bounding rectangle of the shape.
| ||||||||||
Color
|
getColor()
Gets the color of the receiver.
| ||||||||||
float
|
getDensity()
Gets the density of the shape.
| ||||||||||
float
|
getFriction()
Gets the coefficient of friction for the shape.
| ||||||||||
float
|
getGravityScale()
Gets the gravity scaling factory for this shape.
| ||||||||||
float
|
getHeight()
Gets the height of the shape, in pixels.
| ||||||||||
float
|
getLeft()
Gets the x-coordinate of the anchor point of the shape's bounding
box (the top-left corner, by default).
| ||||||||||
float
|
getLinearDamping()
Gets the linear damping of the shape, which is used to reduce the
linear velocity of the shape.
| ||||||||||
PointF
|
getLinearVelocity()
Gets the linear velocity of the center of mass of the shape, in
units per second.
| ||||||||||
float
|
getMass()
Gets the mass of this shape (which is the density of the shape multiplied by its surface area). | ||||||||||
Paint
|
getPaint()
Gets the
Paint object that describes how this shape should be
drawn. | ||||||||||
final
ShapeView
|
getParentView()
Gets the parent of the receiver.
| ||||||||||
PointF
|
getPosition()
Gets the location of the centroid of the shape.
| ||||||||||
PointF
|
getPositionAnchor()
Get the current position anchor, which is an offset relative to the
upper left corner of the shape that is used as the shape's "origin"
for the purposes of getting/setting x-y positions.
| ||||||||||
float
|
getRestitution()
Gets the coefficient of restitution, which controls the "bounciness" of
the shape (or in more precise terms, the relationship between the
velocity of the shape before and after a collision).
| ||||||||||
float
|
getRotation()
Gets the current angle of rotation of the shape, in degrees clockwise.
| ||||||||||
final
ShapeField
|
getShapeField()
Gets the
ShapeField that contains this shape. | ||||||||||
ShapeMotion
|
getShapeMotion()
Gets a value indicating how this shape acts with regard to motion in
the physical world.
| ||||||||||
float
|
getTop()
Gets the y-coordinate of the anchor point of the shape's bounding
box (the top-left corner, by default).
| ||||||||||
Matrix
|
getTransform()
Gets the current linear transformation that will be applied to the
shape when it is drawn.
| ||||||||||
float
|
getWidth()
Gets the width of the shape, in pixels.
| ||||||||||
float
|
getX()
Gets the x-coordinate of the centroid of the shape.
| ||||||||||
float
|
getY()
Gets the y-coordinate of the centroid of the shape.
| ||||||||||
int
|
getZIndex()
Gets the z-index of the receiver.
| ||||||||||
boolean
|
intersects(Shape otherShape)
Determine whether this shape intersects another, based on their
bounding boxes.
| ||||||||||
float[]
|
inverseTransformPoint(float x, float y)
Transforms a point on the screen into the original bounds of a shape,
pre-rotation.
| ||||||||||
boolean
|
isActive()
Gets a value indicating whether or not the shape is active.
| ||||||||||
boolean
|
isAwake()
Gets a value indicating whether or not the shape is awake.
| ||||||||||
boolean
|
isBullet()
Gets a value indicating whether this shape is a "bullet." Bullets are
very fast moving objects that require more precise contact/collision
handling than ordinary objects, and they require more processing power
as a result.
| ||||||||||
boolean
|
isFixedRotation()
Gets a value indicating whether this shape's rotation is fixed -- that
is, even under a physical load, the shape will never rotate.
| ||||||||||
boolean
|
isInFrontOf(Shape other)
Returns true if this shape is drawn in front of (later than) the
other shape.
| ||||||||||
boolean
|
isSensor()
Gets a value indicating whether or not the shape is a sensor.
| ||||||||||
boolean
|
isVisible()
Gets a value indicating whether the receiver is visible (drawn on the
screen).
| ||||||||||
void
|
moveBy(float dx, float dy)
Moves the receiver by the specified horizontal and vertical distance.
| ||||||||||
void
|
recreateFixtures()
Destroys and recreates the shape's fixtures.
| ||||||||||
void
|
remove()
Remove this shape from its view (or parent).
| ||||||||||
void
|
rotateBy(float angleDelta)
Increments the shape's rotation by the specified number of degrees,
around the same pivot point that was used previously (or the center
of the shape if no other pivot has been previously used).
| ||||||||||
void
|
setActive(boolean isActive)
Sets a value indicating whether or not the shape is active.
| ||||||||||
void
|
setAlpha(int newAlpha)
A convenience method that sets the alpha (opacity) component of the
shape's color without changing the other color components.
| ||||||||||
void
|
setAngularDamping(float newDamping)
Sets the angular damping of the shape, which is used to reduce the
angular velocity of the shape.
| ||||||||||
void
|
setAngularVelocity(float newVelocity)
Sets the angular velocity of the shape, in degrees per second.
| ||||||||||
abstract
void
|
setBounds(RectF newBounds)
Sets the bounding rectangle of the shape.
| ||||||||||
void
|
setBullet(boolean bullet)
Sets a value indicating whether this shape is a "bullet." Bullets are
very fast moving objects that require more precise contact/collision
handling than ordinary objects, and they require more processing power
as a result.
| ||||||||||
void
|
setColor(Color newColor)
Sets the color of the receiver.
| ||||||||||
void
|
setDensity(float newDensity)
Sets the density of the shape.
| ||||||||||
void
|
setFixedRotation(boolean fixedRotation)
Sets a value indicating whether this shape's rotation is fixed -- that
is, even under a physical load, the shape will never rotate.
| ||||||||||
void
|
setFriction(float newFriction)
Set the coefficient of friction for the shape.
| ||||||||||
void
|
setGravityScale(float gravityScale)
Sets the gravity scaling factor for the shape.
| ||||||||||
void
|
setLeft(float x)
Sets the x-coordinate of the anchor point of the shape's bounding
box (the top-left corner, by default).
| ||||||||||
void
|
setLinearDamping(float newDamping)
Sets the linear damping of the shape, which is used to reduce the
linear velocity of the shape.
| ||||||||||
void
|
setLinearVelocity(PointF newVelocity)
Sets the linear velocity of the center of mass of the shape, in units
per second.
| ||||||||||
void
|
setLinearVelocity(float xVelocity, float yVelocity)
Sets the linear velocity of the center of mass of the shape, in units
per second.
| ||||||||||
void
|
setPosition(float x, float y)
Sets the location of the centroid of the shape.
| ||||||||||
void
|
setPosition(PointF position)
Sets the location of the centroid of the shape.
| ||||||||||
void
|
setPositionAnchor(PointF anchor)
Set the position anchor, which is an offset relative to the
upper left corner of the shape that is used as the shape's "origin"
for the purposes of getting/setting x-y positions.
| ||||||||||
void
|
setRestitution(float newRestitution)
Sets the coefficient of restitution, which controls the "bounciness" of the shape (or in more precise terms, the relationship between the velocity of the shape before and after a collision). | ||||||||||
void
|
setRotation(float newRotation)
Sets the angle of rotation of the shape in degrees clockwise, using
the center of the shape's bounding box as the pivot point.
| ||||||||||
void
|
setSensor(boolean isSensor)
Gets a value indicating whether or not the shape is a sensor.
| ||||||||||
void
|
setShapeMotion(ShapeMotion motion)
Sets a value indicating how this shape acts with regard to motion in
the physical world.
| ||||||||||
void
|
setTop(float y)
Sets the y-coordinate of the anchor point of the shape's bounding
box (the top-left corner, by default).
| ||||||||||
void
|
setVisible(boolean newVisible)
Sets a value indicating whether the receiver is visible (drawn on the
screen).
| ||||||||||
void
|
setZIndex(int newZIndex)
Sets the z-index of the receiver.
| ||||||||||
void
|
stopAnimation()
Stops the current animation for this shape, if there is one.
| ||||||||||
String
|
toString()
Returns a human-readable string representation of the shape.
| ||||||||||
void
|
updateTransform(float x, float y, float angle)
TODO document
| ||||||||||
void
|
updateTransform(float x, float y)
TODO document
| ||||||||||
void
|
updateTransform(float angle)
TODO document
|
Methods inherited from
class
java.lang.Object
| |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Object
|
clone()
| ||||||||||
boolean
|
equals(Object arg0)
| ||||||||||
void
|
finalize()
| ||||||||||
final
Class<?>
|
getClass()
| ||||||||||
int
|
hashCode()
| ||||||||||
final
void
|
notify()
| ||||||||||
final
void
|
notifyAll()
| ||||||||||
String
|
toString()
| ||||||||||
final
void
|
wait()
| ||||||||||
final
void
|
wait(long arg0, int arg1)
| ||||||||||
final
void
|
wait(long arg0)
|
Creates a new LineShape
with default position and size.
Creates a new LineShape
between two points.
Creates a new LineShape
between two points.
Creates a new LineShape
that starts at the top-left corner of
the specified rectangle and ends at the bottom-right corner.
Gets a value indicating whether the specified pixel location is contained in the receiver.
By default, this method checks to see whether the point is located within the bounding rectangle of the shape. Shapes where this would produce incorrect results, such as ovals or lines, override this method accordingly.
This method does take the shape's rotation into
account. This means that if you subclass Shape
and need to
provide logic that is different from the default bounding box behavior,
then you may need to undo the rotation of the incoming point before
testing it against your shape's bounds. The
inverseTransformPoint(float, float)
method has been provided
to simplify this.
True if the shape contains the point, otherwise false.
Subclasses must implement this method to define how the shape is to be
drawn on the canvas. Users should never call this method directly; it is
called as part of the repaint cycle by the ShapeView
that
contains the shape.
Gets the bounding rectangle of the shape. The top-left corner of the bounding rectangle is the shape's origin, and the bottom-right corner is the shape's extent.
The bounding rectangle of the shape.
Sets the bounding rectangle of the shape. The bounding rectangle passed to this method is copied, so changes to it after this method is called will not be reflected by the shape.
This method is intended for internal use only, or by advanced
users subclassing one of the abstract shape types. Subclasses
must override this method to create the necessary fixtures for the body
that this shape represents. Use the getB2Body()
method to access
the body when creating fixtures.