public class

ShapeField

extends ShapeSet<ShapeType extends Shape>
java.lang.Object
   ↳ sofia.graphics.ShapeSet<ShapeType extends sofia.graphics.Shape>
     ↳ sofia.graphics.ShapeField

Class Overview

A shape field is a shape set that also provides (optional) real-time physics simulation. By default, a ShapeView creates an empty ShapeField to hold its shapes, but you can also have multiple shape fields in an application and swap them in and out of the view as needed (for example, to represent different levels of a game).

Summary

Public Constructors
ShapeField()
Creates a new, empty shape field with no gravity.
Public Methods
boolean add(Shape shape)
Adds the specified shape to this set if it is not already present.
boolean addAll(Collection<? extends Shape> collection)
Adds all of the shapes in the specified collection to this set if they're not already present.
Shape back()
Gets the backmost shape in the shape set.
void clear()
Removes all of the shapes from this set.
boolean contains(Object object)
Returns true if this set contains the specified shape.
boolean containsAll(Collection<?> collection)
Returns true if this set contains all of the shapes of the specified collection.
boolean equals(Object object)
Compares the specified object with this set for equality.
Shape front()
Gets the frontmost shape in the shape set.
Iterator<Shape> frontToBackIterator()
Access an iterator that traverses the collection from "front" (top) to "back" (bottom) in terms of drawing order.
final World getB2World()
This method is intended for internal and advanced usage only.
PointF getGravity()
Gets the gravity of the physical world represented by this shape view.
ShapeFilter<Shape> getShapes()

Gets a filter that can be used to find shapes that match a certain set of criteria.

final ShapeView getView()
int hashCode()
Returns the hash code value for this set.
boolean isEmpty()
Returns true if this set contains no shapes.
Iterator<Shape> iterator()
Returns an iterator over the shapes in this set.
boolean remove(Object object)
Removes the specified shape from this set if it is present.
boolean removeAll(Collection<?> collection)
Removes from this set all of its shapes that are contained in the specified collection.
boolean retainAll(Collection<?> collection)
Retains only the shapes in this set that are contained in the specified collection.
void setDrawingOrder(ZIndexComparator order)
Change the shape order for this shape set.
void setGravity(float xGravity, float yGravity)
Sets the gravity of the physical world represented by this shape view.
void setGravity(PointF gravity)
Sets the gravity of the physical world represented by this shape view.
int size()
Returns the number of shapes in this set (its cardinality).
<T> T[] toArray(T[] array)

Returns an array containing all of the shapes in this set; the runtime type of the returned array is that of the specified array.

Shape[] toArray()
Returns an array containing all of the shapes in this set.
[Expand]
Inherited Methods
From class sofia.graphics.ShapeSet
From class java.lang.Object
From interface java.lang.Iterable
From interface java.util.Collection
From interface java.util.Set

Public Constructors

public ShapeField ()

Creates a new, empty shape field with no gravity.

Public Methods

public boolean add (Shape shape)

Adds the specified shape to this set if it is not already present.

Parameters
shape the shape to be added to this set
Returns
  • true if this set did not already contain the specified shape

public boolean addAll (Collection<? extends Shape> collection)

Adds all of the shapes in the specified collection to this set if they're not already present.

Parameters
collection the collection containing shapes to be added to this set
Returns
  • true if the set changed as a result of this operation

public Shape back ()

Gets the backmost shape in the shape set. This is the shape that has the lowest z-index, or if multiple shapes have the same z-index, the one that was added least recently to its field.

Returns
  • the backmost shape in the set, or null if the set is empty

public void clear ()

Removes all of the shapes from this set. The set will be empty after this call returns.

public boolean contains (Object object)

Returns true if this set contains the specified shape.

Parameters
object the shape whose presence in this set is to be tested
Returns
  • true if this set contains the specified shape

public boolean containsAll (Collection<?> collection)

Returns true if this set contains all of the shapes of the specified collection.

Parameters
collection the collection to be checked for containment in this set
Returns
  • true if this set contains all of the shapes of the specified collection

public boolean equals (Object object)

Compares the specified object with this set for equality.

Parameters
object the object to be compared for equality with this set
Returns
  • true if the specified object is equal to this set

public Shape front ()

Gets the frontmost shape in the shape set. This is the shape that has the highest z-index, or if multiple shapes have the same z-index, the one that was added most recently to its field.

Returns
  • the frontmost shape in the set, or null if the set is empty

public Iterator<Shape> frontToBackIterator ()

Access an iterator that traverses the collection from "front" (top) to "back" (bottom) in terms of drawing order.

Returns
  • An iterator representing this traversal order.

public final World getB2World ()

This method is intended for internal and advanced usage only. Gets the JBox2D World that manages the physical bodies inside this shape view.

Returns
  • the JBox2D world that manages the physical bodies inside this shape view

public PointF getGravity ()

Gets the gravity of the physical world represented by this shape view.

Returns
  • a PointF object whose x and y components are the horizontal and vertical acceleration due to gravity (in units/sec^2) of the physical world represented by this shape view

public ShapeFilter<Shape> getShapes ()

Gets a filter that can be used to find shapes that match a certain set of criteria. The search criteria are specified by chaining method calls to the returned filter. For example, to find all the red shapes that intersect with a particular rectangular area on the screen, one can write:

     getShapes().withColor(Color.red).intersecting(0, 0, 50, 50)
 

The ShapeFilter object returned by one of these filter chains implements the Iterable interface so you can easily use it in a for-each loop to process the matching shapes. It also supports other convenience methods; see the documentation for ShapeFilter for more information.

Returns
  • a ShapeFilter that matches and allows iteration over the shapes that match a set of criteria

public final ShapeView getView ()

public int hashCode ()

Returns the hash code value for this set.

Returns
  • the hash code value for this set

public boolean isEmpty ()

Returns true if this set contains no shapes.

Returns
  • true if this set contains no shapes

public Iterator<Shape> iterator ()

Returns an iterator over the shapes in this set. The shapes are returned in order from farthest back (lowest z-index) to farthest forward (highest z-index).

Returns
  • an iterator over the shapes in this set

public boolean remove (Object object)

Removes the specified shape from this set if it is present.

Parameters
object the shape to be removed from this set, if present
Returns
  • true if this set contained the specified shape

public boolean removeAll (Collection<?> collection)

Removes from this set all of its shapes that are contained in the specified collection.

Parameters
collection the collection containing shapes to be removed from this set
Returns
  • true if this set changed as a result of the call

public boolean retainAll (Collection<?> collection)

Retains only the shapes in this set that are contained in the specified collection. In other words, removes from this set all of its shapes that are not contained in the specified collection.

Parameters
collection the collection containing shapes to be retained in this set
Returns
  • true if this set changed as a result of the call

public void setDrawingOrder (ZIndexComparator order)

Change the shape order for this shape set.

Parameters
order the new ordering to use

public void setGravity (float xGravity, float yGravity)

Sets the gravity of the physical world represented by this shape view.

Parameters
xGravity the horizontal acceleration due to gravity (in units/sec^2)
yGravity the vertical acceleration due to gravity (in units/sec^2)

public void setGravity (PointF gravity)

Sets the gravity of the physical world represented by this shape view.

Parameters
gravity a PointF whose x and y components are the horizontal and vertical acceleration due to gravity (in units/sec^2) of the physical world represented by this shape view

public int size ()

Returns the number of shapes in this set (its cardinality).

Returns
  • the number of shapes in this set (its cardinality)

public T[] toArray (T[] array)

Returns an array containing all of the shapes in this set; the runtime type of the returned array is that of the specified array. If the set fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this set.

If this set fits in the specified array with room to spare (i.e., the array has more elements than this set), the element in the array immediately following the end of the set is set to null. (This is useful in determining the length of this set only if the caller knows that this set does not contain any null elements.)

The shapes are returned in order from farthest back (lowest z-index) to farthest forward (highest z-index).

Parameters
array the array into which the shapes of this set are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose.

public Shape[] toArray ()

Returns an array containing all of the shapes in this set. The shapes are returned in order from farthest back (lowest z-index) to farthest forward (highest z-index).