|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.sourceforge.olduvai.accordiondrawer.SplitAxis
public class SplitAxis
A SplitAxis object represents either the X or Y axis of accordionDrawer (set using the horizontal boolean). This is a heavily modified implementation of red-black trees based off of Sun Java's TreeMap class API. This object contains the set of ALL SplitLine objects for this axis as well as the partitionedList of SplitLine objects for this axis.
AccordionDrawer
,
Serialized FormNested Class Summary | |
---|---|
class |
SplitAxis.AxisIterator
Iterator for the SplitAxis class of objects. |
class |
SplitAxis.Debug
Internal class for debugging the split axis class. |
protected class |
SplitAxis.MovingSplitLine
Wrapper class for storing end position and Split line state for a moving split line. |
Field Summary | |
---|---|
private AccordionDrawer |
ad
Link to the accordion drawer using this SplitAxis object |
static boolean |
BLACK
Value for black nodes in CRT implementation of red-black trees. |
private static boolean |
createMax
Used for resizeForest(AbstractRangeList, int, Hashtable, double)
true when the last range was to the left of the max stuck position |
private static boolean |
createMin
Used for resizeForest(AbstractRangeList, int, Hashtable, double)
true when the first range was to the right of the min stuck position |
SplitAxis.Debug |
debug
Object for debugging. |
static double |
defaultMaxStuckValue
Default value of maximum stuck line in X and Y directions. |
static double |
defaultMinStuckValue
Default value of minimum stuck line in X and Y directions. |
static double |
defaultSplitValue
Default value of split line value for all bounded split lines. |
protected boolean |
horizontal
Whether this Split Axis is horizontal (true) or vertical (false). |
protected int |
LEFT
array index for left bounds |
static int |
maxBound
Useful quick index for the array returned from the getBounds() method. |
protected SplitLine |
maxStuckLine
Maximum stuck line for doing direct == comparisons But NOT ACTUALLY IN THE TREE STRUCTURE!! Also stores the current maxStuck Value, which is a world-space bound for the drawing canvas. |
static int |
minBound
Useful quick index for the array returned from the getBounds() method. |
protected SplitLine |
minStuckLine
Minimum stuck line for doing direct == comparisons But NOT ACTUALLY IN THE TREE STRUCTURE!! Also stores the current minStuck Value, which is a world-space bound for the drawing canvas. |
private int |
modCount
The number of structural modifications to the tree. |
protected java.util.TreeSet |
partitionedList
This contains the 'partitioned' list of splitLines to draw, including potentially 'fake' split lines that represent the center line of a single cell (and whose absoluteValue is never referenced, used only for the purposes of their min and max bounds.) |
static boolean |
RED
Value for red nodes in CRT implementation of red-black trees. |
protected int |
RIGHT
array index for right bounds |
private SplitLine |
root
The root split line for the represented treemap object. |
private static long |
serialVersionUID
ID for serialization purposes. |
private int |
size
The number of entries in the tree. |
protected static double |
small
Small number used to avoid division by 0 in computeFinalRelative(double, double, double) . |
private boolean |
staticLines
Hook flag for TJ: true when we use static split lines. |
Constructor Summary | |
---|---|
SplitAxis()
Test constructor. |
|
SplitAxis(AccordionDrawer ad,
boolean horizontal,
double minStuckValue,
double maxStuckValue,
int initLines,
boolean reset,
boolean staticLines)
Constructor for initializing split axes with pre-determined values. |
Method Summary | |
---|---|
void |
addCell(GridCell cell,
SplitLine leftSplitLine)
Set the cell's boundaries given a known left (or top) split line for the cell. |
void |
addCell(GridCell cell,
SplitLine leftSplitLine,
SplitLine rightSplitLine)
Set the cell's boundaries given a known left (or top) split line for the cell. |
void |
animatedReset(java.util.Hashtable newToMove,
int numSteps)
Enqueue SplitTransitions to reset the entire display back to its default position. |
void |
clear()
Removes all mappings from this TreeMap. |
private static boolean |
colorOf(SplitLine p)
Returns the color of a given node (split line) |
private void |
computeAllSL(SplitLine currentSL,
int frameNum)
For debugging: compute positions of all split lines. |
int[] |
computeBoundIndices(StaticSplitLine currRoot)
Gets the indices for the bounds of the given split line |
private static double |
computeFinalAbsolute(double initLeft,
double initMid,
double initRight,
double finalLeft,
double finalRight)
Helper function for moveSplitLineSet. |
private static double |
computeFinalRelative(double finalLeft,
double finalMid,
double finalRight)
Helper function for moveSplitLineSet. |
private SplitLine |
computeLeftBound(SplitLine line)
Computes and returns line's first left bound. |
void |
computePlaceThisFrame(SplitLine splitline,
int frameNum)
Computes a position for the given splitline for the frame number given. |
private SplitLine |
computeRightBound(SplitLine line)
Computes and Returns line's first right bound. |
private SplitLine[] |
createIndexRanges(AbstractRangeList group)
Helper function for resizeForest. |
private void |
decrementSize()
Decrements counters modCount and size . |
private void |
decrementTreeRecursive(SplitLine line)
Ascend recursively decrementing subtree counters as we go. |
void |
deleteEntry(SplitLine p)
Delete node p, and then rebalance the tree. |
private void |
fixAfterDeletion(SplitLine x)
Update the tree structure following a delete operation. |
private void |
fixAfterInsertion(SplitLine x)
Update the tree structure following an insert operation. |
double |
getAbsoluteValue(int index,
int frameNum)
Returns the absolute position of the split line at the specified offset from the left of the tree, in world coordinates. |
double |
getAbsoluteValue(SplitLine line,
int frameNum)
Returns the absolute position of the specified split line. |
SplitLine[] |
getBounds(SplitLine line,
int framenum)
Retrieve left and right first bounds into an array. |
java.util.List<SplitLine> |
getChildren(SplitLine line,
java.util.List<SplitLine> list)
Recursively retrieves an pre-ordered list of the child splitlines of the specified line (min -> max) |
SplitLine |
getMaxBound(SplitLine line,
int framenum)
Retrieve the given line's right (max) Split Line bound. |
int |
getMaxBoundI(SplitLine line,
int framenum)
Get the index of the max bound split line for the given line. |
SplitLine |
getMaxLine()
Get the line in the maximum position in the tree. |
SplitLine |
getMaxLineForPixelValue(double worldPosition,
int frameNum)
Returns the next line greater than the specified world space coordinate for this axis. |
SplitLine |
getMaxLineForPixelValue(int pixelPosition,
int frameNum)
Returns the next line over (successor). |
SplitLine |
getMaxStuckLine()
The max stuck value is a world space double value from 0 .. |
double |
getMaxStuckValue()
The max stuck value is a world space double value from 0 .. |
SplitLine |
getMinBound(SplitLine line,
int framenum)
Retrieve the given line's left (min) Split Line bound. |
int |
getMinBoundI(SplitLine line,
int framenum)
Get the index of the min bound split line for the given line. |
SplitLine |
getMinLine()
Get the line in the minimum position in the tree. |
SplitLine |
getMinLineForPixelValue(double worldLocation,
int frameNum)
This does the same thing as getSplitFromAbsolute and returns a minimum split line given an absolute position. |
SplitLine |
getMinLineForPixelValue(int pixelPosition,
int frameNum)
This does the same thing as getSplitFromAbsolute and returns a minimum split line given an absolute position. |
SplitLine |
getMinStuckLine()
The min stuck value is a world space double value from 0 .. |
double |
getMinStuckValue()
The min stuck value is a world space double value from 0 .. |
SplitLine |
getNextSplit(SplitLine line)
Returns the next splitline greater than the parameter. |
java.util.TreeSet |
getPartitionedList()
Get the partitioned list, the list created prior to rendering to determine the visible objects and culling limit. |
SplitLine |
getPreviousSplit(SplitLine line)
Returns the splitLine previous to the parameter. |
SplitLine |
getRoot()
Gets the root split line for this axis. |
int |
getRootIndex()
Returns ths index of the root split line. |
int |
getSize()
Get the number of split lines on the axis, not including min and max stuck lines. |
SplitLine |
getSplitFromAbsolute(double worldCoords,
double pixelSize,
int frameNum)
Find a split line using absolute values to return the minimum bounding split line at the screen position. |
SplitLine |
getSplitFromIndex(int index)
Returns the split line at the specified offset in the tree. |
private SplitLine |
getSplitFromIndexRecursive(int index,
int fromLeft,
SplitLine node)
Recursive helper function for 'getSplitFromIndex()'. |
int |
getSplitIndex(SplitLine line)
Calculate the index number of any splitline from the left side of the tree. |
int |
getSplitIndexFromAbsolute(double worldCoord,
double pixelSize,
int frameNum)
Wrapper for getSplitFromAbsolute for places where we want the index number instead of a pointer to the SplitLine object. |
private static double |
getTotalExtent(double[] extent)
Helper function for resizeForest. |
boolean |
greaterThan(SplitLine baseLine,
SplitLine comparator)
Returns true if baseLine is a successor to comparator O(2 log n) |
private void |
incrementSize()
Increments counters modCount and size . |
private void |
incrementTreeRecursive(SplitLine line)
Ascend recursively incrementing subtree counters as we go. |
private void |
initSplitValues(int initSize,
boolean staticLines)
This initializes a split line tree (empty) of size 'size'. |
private void |
initStaticSplitSubtree(StaticSplitLine currRoot)
Recursively initialize binary tree structure. |
boolean |
isHorizontal()
Determines if this is a horizontal SplitAxis |
boolean |
isReal(SplitLine line)
Some split lines are 'fake' leaf lines that are created to be loaded into the partitioned set. |
private boolean |
isRoot(SplitLine en)
Checks whether param is the root of this split axis. |
private boolean |
isSplitLeftChild(SplitLine en)
Checks whether parameter is a left child of its parent. |
java.util.Iterator<SplitLine> |
iterator()
Returns an iterator over the axis. |
private static SplitLine |
leftOf(SplitLine p)
Gets the left child of a given split line. |
boolean |
lessThan(SplitLine baseLine,
SplitLine comparator)
Returns true if baseLine is previous to comparator O(2 log n) |
private void |
makePixelRangeRecursive(java.util.TreeSet partitionSet,
SplitLine line,
double pixelSize,
int frameNum)
This is the recursive call that builds the partition list for this SplitAxis object. |
void |
makePixelRanges(double pixelSizeMultiple,
int frameNum)
Create list of SplitLines for this axis that are larger than the specified blockSize (ad.getPixelSize). |
void |
makePixelRanges(int frameNum)
Create list of SplitLines for this axis that are larger than the specified blockSize: AccordionDrawer.getPixelSize(int) . |
void |
moveLine(SplitLine dragLine,
int dragPixelEnd,
SplitLine fixedLine,
int numSteps,
java.util.Hashtable newToMove)
Handles the case of the user drawing an interaction box and dragging on it. |
private void |
moveSplitLineSet(SplitLine currRoot,
SplitAxis.MovingSplitLine[] toMove,
java.util.Hashtable transitions,
int numSteps)
This moves an array of split lines whose final positions have been specified through user interation. |
private static SplitLine |
parentOf(SplitLine p)
Returns the parent of a given node (split line) |
private SplitLine |
previous(SplitLine t)
Returns the previous of the specified Entry, or null if no such. |
protected static void |
print(java.lang.String s)
Error printing function, displays string in stderr. |
boolean |
putAt(SplitLine newSplit,
SplitLine adjacentSplit)
We know which node of the tree we want to insert next to so the metricName is generated inside of this function. |
void |
resetSplitValues()
Wrapper to call resetSplitValuesRecurse() Must call computePlaceThisFrame before drawing anything after a reset. |
private void |
resetSplitValuesRecurse(SplitLine splitline)
Recursively reset a subtree of split line values Previously n log n operation. |
void |
resizeForest(AbstractRangeList group,
int numSteps,
java.util.Hashtable newToMove,
double inflateIncr)
Resize the group by the inflation increment, in the given number of steps, and add the transitions to the hashtable for successive redraws. |
private static SplitLine |
rightOf(SplitLine p)
Gets the right child of a given split line. |
private void |
rotateLeft(SplitLine p)
Based on CLR Do a left rotate at the given node. |
private void |
rotateRight(SplitLine p)
Based on CLR Do a right rotate at the given node. |
private void |
setBounds(SplitLine line)
Depending on whether line is a left or right child node, set the opBound value of line to be the left or right bound. |
private static void |
setColor(SplitLine p,
boolean c)
Sets the value of SplitLine.color for a given split line. |
void |
setMaxStuckValue(double f)
The max stuck value is a world space double value from 0 .. |
void |
setMinStuckValue(double f)
The min stuck value is a world space double value from 0 .. |
private SplitLine |
successor(SplitLine t)
Returns the successor (next) of the specified Entry, or null if no such. |
java.lang.String |
toString()
String output routine for splitaxes, displays SplitLine.toLongString() for root of axis. |
private void |
updateBoundLeftEchelon(SplitLine line)
Repair left subtree following a delete |
private void |
updateBoundRightEchelon(SplitLine line)
Repair right subtree following a delete |
private void |
updateEchelonBounds(SplitLine line)
Repairs tree structure around the given split line following a delete operation. |
void |
updateSubtreeSize(SplitLine currRoot)
Recursively update the size of subtrees under the given current split line. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private transient SplitLine root
private boolean staticLines
private transient int size
private transient int modCount
public static final boolean RED
public static final boolean BLACK
private static final long serialVersionUID
public final SplitAxis.Debug debug
public static final double defaultMinStuckValue
public static final double defaultMaxStuckValue
public static final double defaultSplitValue
protected SplitLine minStuckLine
protected SplitLine maxStuckLine
public static final int minBound
public static final int maxBound
private AccordionDrawer ad
protected boolean horizontal
protected java.util.TreeSet partitionedList
private static boolean createMin
resizeForest(AbstractRangeList, int, Hashtable, double)
true when the first range was to the right of the min stuck position
private static boolean createMax
resizeForest(AbstractRangeList, int, Hashtable, double)
true when the last range was to the left of the max stuck position
protected final int LEFT
protected final int RIGHT
protected static final double small
computeFinalRelative(double, double, double)
.
Constructor Detail |
---|
public SplitAxis(AccordionDrawer ad, boolean horizontal, double minStuckValue, double maxStuckValue, int initLines, boolean reset, boolean staticLines)
initSplitValues(int, boolean)
ad
- Drawer that uses this split axis: ad
horizontal
- True if horizontal axis, false for vertical: horizontal
minStuckValue
- Position of minimum stuck line: minStuckLine
maxStuckValue
- Position of maximum stuck line: maxStuckLine
initLines
- Number of split lines to insert into the axisreset
- True: balance the split line tree after inserting initLines, false: do not balance, use default value for each split line: defaultSplitValue
staticLines
- True if using static split lines (TJ), false otherwise: staticLines
public SplitAxis()
Method Detail |
---|
private void incrementSize()
modCount
and size
.
private void decrementSize()
modCount
and size
.
public void clear()
private static boolean colorOf(SplitLine p)
p
- Split line to get color of.
SplitLine.color
, or BLACK
if split line is null.private static SplitLine parentOf(SplitLine p)
p
- Split line to get parent of.
SplitLine.getParent()
for p, or null if p is null.private static void setColor(SplitLine p, boolean c)
SplitLine.color
for a given split line.
p
- Split line to set.c
- New color value for p.private static SplitLine leftOf(SplitLine p)
p
- Node to get child from.
SplitLine.getLeftChild()
, or null if p is null.private static SplitLine rightOf(SplitLine p)
p
- Node to get child from.
SplitLine.getRightChild()
, or null if p is null.private void fixAfterInsertion(SplitLine x)
x
- Split line that has just been inserted. x changes (ascends) during this function as tree is fixed.private void fixAfterDeletion(SplitLine x)
x
- Parent of split line that has just been removed. x changes (ascends) during this function as tree is fixed.private SplitLine successor(SplitLine t)
t
- Split line to get successor for
private SplitLine previous(SplitLine t)
t
- Split line to get previous for
private void rotateLeft(SplitLine p)
p
- Node to rotate at: this node becomes the left child
of its right child, and gains that child's left child
as its new right child.private void rotateRight(SplitLine p)
p
- Node to rotate at: this node becomes the right child
of its left child, and gains that child's right child
as its new left child.public SplitLine getNextSplit(SplitLine line)
line
-
public SplitLine getPreviousSplit(SplitLine line)
line
- Line to get the previous split for
public SplitLine getSplitFromIndex(int index)
index
- The position of the splitLine in a 'flattened' view of the tree.
private SplitLine getSplitFromIndexRecursive(int index, int fromLeft, SplitLine node)
index
- - the index of the splitLine we are searching forfromLeft
- - how far we are from the left of the tree up until nownode
- - current node in the tree
private void updateEchelonBounds(SplitLine line)
line
- Initial successor to the deleted split lineprivate void updateBoundLeftEchelon(SplitLine line)
line
- Initially the successor to the deleted split line, the children of this line will be repaired.updateEchelonBounds(SplitLine)
private void updateBoundRightEchelon(SplitLine line)
line
- Initially the successor to the deleted split line, the children of this line will be repaired.updateEchelonBounds(SplitLine)
public void deleteEntry(SplitLine p)
p
- SplitLine to deleteprivate void incrementTreeRecursive(SplitLine line)
putAt(SplitLine, SplitLine)
).
line
- The current line in the recursive process to increment.private void decrementTreeRecursive(SplitLine line)
deleteEntry(SplitLine)
).
line
- The current line in the recursive process to decrement.public boolean putAt(SplitLine newSplit, SplitLine adjacentSplit)
newSplit
- The new split line object.adjacentSplit
- The split line you want to insert adjacent to. (Left or Top depending on whether this is a vertical or horizontal split line.) Inserting after minStuckLine is valid.
private void computeAllSL(SplitLine currentSL, int frameNum)
currentSL
- Current split line to compute, recurse on children of this split lineframeNum
- frame number to use for computing locationspublic void animatedReset(java.util.Hashtable newToMove, int numSteps)
newToMove
- Hashtable to act as the current move queue.numSteps
- Number of steps to animate.public void resetSplitValues()
private void resetSplitValuesRecurse(SplitLine splitline)
splitline
- Current subtree root to reset.public int getSplitIndex(SplitLine line)
line
- Line to compute index number for.
private void initSplitValues(int initSize, boolean staticLines)
initSize
- Initial seed size of the split line hierarchystaticLines
- true if we are using static split lines for this axis, false for dynamicpublic int[] computeBoundIndices(StaticSplitLine currRoot)
currRoot
- Split line to compute bounding split lines
LEFT
and RIGHT
bounds of this split lineprivate void initStaticSplitSubtree(StaticSplitLine currRoot)
currRoot
- Current subtree root split line that is being initialized.public void addCell(GridCell cell, SplitLine leftSplitLine)
cell
- The cell whose splitline boundaries are being definedleftSplitLine
- The split line on the left (or top) side of the cellpublic void addCell(GridCell cell, SplitLine leftSplitLine, SplitLine rightSplitLine)
cell
- The cell whose splitline boundaries are being definedleftSplitLine
- The split line on the left (or top) side of the cellrightSplitLine
- The split line on the right (bottom) side of the cellpublic double getAbsoluteValue(SplitLine line, int frameNum)
line
- Split line to get absolute positionframeNum
- Current frame number
public double getAbsoluteValue(int index, int frameNum)
index
- Index of a split line to get the position for.frameNum
- Current frame number.
public int getSplitIndexFromAbsolute(double worldCoord, double pixelSize, int frameNum)
worldCoord
- World coordinate to search for a split line.pixelSize
- Current block size, in world-space coordinates.frameNum
- Current frame number.
public void setMaxStuckValue(double f)
f
- Value from [0,1] that places the max stuck value for this split axis.public void setMinStuckValue(double f)
f
- Value from [0,1] that places the min stuck value for this split axis.public double getMaxStuckValue()
public SplitLine getMaxStuckLine()
public double getMinStuckValue()
public SplitLine getMinStuckLine()
public SplitLine getSplitFromAbsolute(double worldCoords, double pixelSize, int frameNum)
worldCoords
- World coordinate to search for a split line.pixelSize
- Current block size, in world-space coordinates.frameNum
- Current frame number.
public SplitLine getMinLine()
to get the minStuckLine
public SplitLine getMaxLine()
public SplitLine getMinLineForPixelValue(int pixelPosition, int frameNum)
pixelPosition
- Screen space coordinate.frameNum
- Current frame number.
public SplitLine getMinLineForPixelValue(double worldLocation, int frameNum)
worldLocation
- Screen space coordinateframeNum
- Current frame number
public SplitLine getMaxLineForPixelValue(int pixelPosition, int frameNum)
pixelPosition
- Screen-space coordinateframeNum
- Current frame number.
public SplitLine getMaxLineForPixelValue(double worldPosition, int frameNum)
worldPosition
- World-space coordinate.frameNum
- Current frame number.
public boolean isHorizontal()
public int getRootIndex()
private boolean isRoot(SplitLine en)
en
- Split line to test for root.
private boolean isSplitLeftChild(SplitLine en)
en
- Split line to test for being left child
public void computePlaceThisFrame(SplitLine splitline, int frameNum)
splitline
- splitline to compute a location forframeNum
- frame number to check for cached splitline positionspublic java.util.List<SplitLine> getChildren(SplitLine line, java.util.List<SplitLine> list)
line
- Current split line being recursed through.list
- Recursive collector
public void makePixelRanges(int frameNum)
AccordionDrawer.getPixelSize(int)
.
Initializes and fills partitionedList
.
frameNum
- Current frame numberpublic void makePixelRanges(double pixelSizeMultiple, int frameNum)
partitionedList
.
frameNum
- Current frame numberpixelSizeMultiple
- factor used to divide the size of a single pixel to determine block size.private void makePixelRangeRecursive(java.util.TreeSet partitionSet, SplitLine line, double pixelSize, int frameNum)
partitionSet
- TreeSet of SplitLines that represent the partition listline
- splitline, initially the root line then recursively left & right descendspixelSize
- minimal size of a block in absolute [0,1] size. This is what stops the recursion from descending indefinitely.public void resizeForest(AbstractRangeList group, int numSteps, java.util.Hashtable newToMove, double inflateIncr)
moveSplitLineSet(SplitLine, net.sourceforge.olduvai.accordiondrawer.SplitAxis.MovingSplitLine[], Hashtable, int)
to create transitions
from the sanely computed movement distances (stored in an array).
group
- Set of split adjacent split lines usually marked in the same color that are being resizednumSteps
- The number of animated transition stepsnewToMove
- The new transition hash tableinflateIncr
- The inflate increment. All components of group will divide this world-space value among
them, with larger subgroups growing more than smaller ones, size ratios are preserved.private SplitLine[] createIndexRanges(AbstractRangeList group)
group
- Group to parse for split lines to retrieve indices
private static final double getTotalExtent(double[] extent)
extent
- Array of distances to add up.
public void moveLine(SplitLine dragLine, int dragPixelEnd, SplitLine fixedLine, int numSteps, java.util.Hashtable newToMove)
dragLine
- line to be moveddragPixelEnd
- screen coords of destination positionfixedLine
- non-moving line in interaction boxnumSteps
- animation stepsnewToMove
- hashmap to be filled with animated transition stepsprivate static final double computeFinalAbsolute(double initLeft, double initMid, double initRight, double finalLeft, double finalRight)
initLeft
- Left line's initial absolute position.initMid
- Mid line's initial absolute position.initRight
- Right line's initial absolute position.finalLeft
- Left line's final absolute position.finalRight
- Right line's final absolute position.
private static final double computeFinalRelative(double finalLeft, double finalMid, double finalRight)
finalLeft
- Final position for left split linefinalMid
- Final position for mid split linefinalRight
- Final position for right split line
private void moveSplitLineSet(SplitLine currRoot, SplitAxis.MovingSplitLine[] toMove, java.util.Hashtable transitions, int numSteps)
currRoot
- The root of the tree on the first call, left or right descends on recursive callstoMove
- The array of split lines with computed final absolute positions (specified by user or stuck lines)transitions
- The hashtable containing a list of SplitTransition objects that will be used to queue animations later.numSteps
- The number of steps of animation.public boolean lessThan(SplitLine baseLine, SplitLine comparator)
baseLine
- split line to testcomparator
- second split line to compare
public boolean greaterThan(SplitLine baseLine, SplitLine comparator)
baseLine
- split line to testcomparator
- second split line to compare
private void setBounds(SplitLine line)
line
- Split line to repair, will get new opbound valuepublic SplitLine getRoot()
public SplitLine[] getBounds(SplitLine line, int framenum)
line
- split line to get bounds from.framenum
- current frame number.
public boolean isReal(SplitLine line)
line
- Line to be tested.
public SplitLine getMinBound(SplitLine line, int framenum)
line
- Line to get min bound of.framenum
- Current frame number.
public int getMinBoundI(SplitLine line, int framenum)
line
- Line to get min bound of.framenum
- Current frame number.
getMinBound(SplitLine, int)
.public SplitLine getMaxBound(SplitLine line, int framenum)
line
- Line to get max bound of.framenum
- Current frame number.
public int getMaxBoundI(SplitLine line, int framenum)
line
- Line to get max bound of.framenum
- Current frame number.
getMaxBound(SplitLine, int)
.private SplitLine computeRightBound(SplitLine line)
line
- Line to compute right (max) bound of.
private SplitLine computeLeftBound(SplitLine line)
line
- Line to compute left (min) bound of.
public java.util.TreeSet getPartitionedList()
public int getSize()
protected static final void print(java.lang.String s)
s
- String to send to stderr, shortcut for System.err.println(String).public java.lang.String toString()
SplitLine.toLongString()
for root of axis.
toString
in class java.lang.Object
public void updateSubtreeSize(SplitLine currRoot)
currRoot
- Current split line being updatedpublic java.util.Iterator<SplitLine> iterator()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |