org.apache.batik.ext.awt.geom
Class RectListManager

java.lang.Object
  extended by org.apache.batik.ext.awt.geom.RectListManager
All Implemented Interfaces:
Iterable, Collection

public class RectListManager
extends Object
implements Collection

RectListManager is a class to manage a list of rectangular regions. This class contains methods to add new rectangles to the List, to merge rectangles in the list (based on a cost function), and functions to subract one RectListManager from another. The main purpose of this class is to manage dirty regions on a display (for this reason it uses Rectangle not Rectangle2D).


Field Summary
static Comparator comparator
          The comparator used to sort the elements of this List.
 
Constructor Summary
RectListManager()
          Construct an initially empty RectListManager.
RectListManager(Collection rects)
          Construct a RectListManager from a Collection of Rectangles
RectListManager(int capacity)
          Construct an initially empty RectListManager, with initial capacity.
RectListManager(Rectangle rect)
          Construct a RectListManager with one rectangle
RectListManager(Rectangle[] rects)
          Construct a RectListManager from an Array of Rectangles
RectListManager(Rectangle[] rects, int off, int sz)
          Construct a RectListManager from an Array of Rectangles
RectListManager(RectListManager rlm)
          Construct a RectListManager from another RectListManager (data is copied).
 
Method Summary
 boolean add(Object o)
           
 void add(Rectangle rect)
          Ensures that this collection contains the specified element
protected  void add(Rectangle rect, int l, int r)
          Ensures that this collection contains the specified element l is the lower bound index for insertion r is upper bound index for insertion.
 void add(RectListManager rlm)
          Adds the contents of rlm to this RectListManager.
 boolean addAll(Collection c)
           
 void clear()
           
 Object clone()
          Standard Object clone method.
 boolean contains(Object o)
           
 boolean containsAll(Collection c)
          Returns true if this collection contains all of the elements in the specified collection.
 boolean containsAll(RectListManager rlm)
           
 RectListManager copy()
          Similar to clone only strongly typed
 void dump()
           
 void ensureCapacity(int sz)
           
 Rectangle getBounds()
           
protected  void insertRects(Rectangle[] rects, int srcPos, int dstPos, int len)
           
 boolean isEmpty()
          Returns true if this collection contains no elements.
 Iterator iterator()
          Returns an iterator over the elements in this collection
 ListIterator listIterator()
          Returns a list iterator of the elements in this list (in proper sequence).
 void mergeRects(int overhead, int lineOverhead)
           
 boolean remove(Object o)
          Removes a single instance of the specified element from this collection, if it is present.
 boolean remove(Rectangle rect)
          Removes a single instance of the specified Rectangle from this collection, if it is present.
 boolean removeAll(Collection c)
           
 boolean removeAll(RectListManager rlm)
           
 boolean retainAll(Collection c)
           
 boolean retainAll(RectListManager rlm)
           
 int size()
          Returns the number of elements currently stored in this collection.
protected  void splitRect(Rectangle r, Rectangle sr, Rectangle[] splits)
           
 void subtract(RectListManager rlm, int overhead, int lineOverhead)
           
 Object[] toArray()
           
 Object[] toArray(Object[] a)
          fill the given array a with values from my internal rects.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Collection
equals, hashCode
 

Field Detail

comparator

public static Comparator comparator
The comparator used to sort the elements of this List. Sorts on x value of Rectangle.

Constructor Detail

RectListManager

public RectListManager(Collection rects)
Construct a RectListManager from a Collection of Rectangles

Parameters:
rects - Collection that must only contain rectangles.

RectListManager

public RectListManager(Rectangle[] rects)
Construct a RectListManager from an Array of Rectangles

Parameters:
rects - Array of Rectangles, must not contain any null entries.

RectListManager

public RectListManager(Rectangle[] rects,
                       int off,
                       int sz)
Construct a RectListManager from an Array of Rectangles

Parameters:
rects - Array of Rectangles, must not contain any null entries in the range [off, off+sz-1].
off - The offset to start copying from in rects.
sz - The number of entries to copy from rects.

RectListManager

public RectListManager(RectListManager rlm)
Construct a RectListManager from another RectListManager (data is copied).

Parameters:
rlm - RectListManager to copy.

RectListManager

public RectListManager(Rectangle rect)
Construct a RectListManager with one rectangle

Parameters:
rect - The rectangle to put in this rlm.

RectListManager

public RectListManager()
Construct an initially empty RectListManager.


RectListManager

public RectListManager(int capacity)
Construct an initially empty RectListManager, with initial capacity.

Parameters:
capacity - The inital capacity for the list. Setting this appropriately can save reallocations.
Method Detail

dump

public void dump()

getBounds

public Rectangle getBounds()

clone

public Object clone()
             throws CloneNotSupportedException
Standard Object clone method.

Overrides:
clone in class Object
Throws:
CloneNotSupportedException

copy

public RectListManager copy()
Similar to clone only strongly typed


size

public int size()
Returns the number of elements currently stored in this collection.

Specified by:
size in interface Collection

isEmpty

public boolean isEmpty()
Returns true if this collection contains no elements.

Specified by:
isEmpty in interface Collection

clear

public void clear()
Specified by:
clear in interface Collection

iterator

public Iterator iterator()
Returns an iterator over the elements in this collection

Specified by:
iterator in interface Iterable
Specified by:
iterator in interface Collection

listIterator

public ListIterator listIterator()
Returns a list iterator of the elements in this list (in proper sequence).


toArray

public Object[] toArray()
Specified by:
toArray in interface Collection

toArray

public Object[] toArray(Object[] a)
fill the given array a with values from my internal rects. when a is not large enough, a new array is allocated, filled and returned. the method works only, when a is a Object[] or a Rectange[]. When this is not the case, the a[] is just cleared.

Specified by:
toArray in interface Collection
Parameters:
a - array to fill (must not be null!)
Returns:
the content of rects, either in a[] or a fresh array.

add

public boolean add(Object o)
Specified by:
add in interface Collection

add

public void add(Rectangle rect)
Ensures that this collection contains the specified element

Parameters:
rect - The rectangle to add

add

protected void add(Rectangle rect,
                   int l,
                   int r)
Ensures that this collection contains the specified element l is the lower bound index for insertion r is upper bound index for insertion.

Parameters:
rect - The rectangle to add
l - the lowest possible index for a rect with greater 'x' coord.
r - the highest possible index for a rect with greater 'x' coord.

addAll

public boolean addAll(Collection c)
Specified by:
addAll in interface Collection

contains

public boolean contains(Object o)
Specified by:
contains in interface Collection

containsAll

public boolean containsAll(Collection c)
Returns true if this collection contains all of the elements in the specified collection.

Specified by:
containsAll in interface Collection

containsAll

public boolean containsAll(RectListManager rlm)

remove

public boolean remove(Object o)
Removes a single instance of the specified element from this collection, if it is present.

Specified by:
remove in interface Collection
Parameters:
o - Object to remove an matching instance of.

remove

public boolean remove(Rectangle rect)
Removes a single instance of the specified Rectangle from this collection, if it is present.

Parameters:
rect - Rectangle to remove an matching instance of.

removeAll

public boolean removeAll(Collection c)
Specified by:
removeAll in interface Collection

removeAll

public boolean removeAll(RectListManager rlm)

retainAll

public boolean retainAll(Collection c)
Specified by:
retainAll in interface Collection

retainAll

public boolean retainAll(RectListManager rlm)

add

public void add(RectListManager rlm)
Adds the contents of rlm to this RectListManager. No collapsing of rectangles is done here the contents are simply added (you should generally call 'mergeRects' some time after this operation before using the contents of this RectListManager.

Parameters:
rlm - The RectListManager to add the contents of.

mergeRects

public void mergeRects(int overhead,
                       int lineOverhead)

subtract

public void subtract(RectListManager rlm,
                     int overhead,
                     int lineOverhead)

splitRect

protected void splitRect(Rectangle r,
                         Rectangle sr,
                         Rectangle[] splits)

insertRects

protected void insertRects(Rectangle[] rects,
                           int srcPos,
                           int dstPos,
                           int len)

ensureCapacity

public void ensureCapacity(int sz)


Copyright © 2008 Apache Software Foundation. All Rights Reserved.