|
|
|
@ -55,7 +55,7 @@ public class GeometryList { |
|
|
|
|
/** |
|
|
|
|
* Initializes the GeometryList to use the given {@link GeometryComparator} |
|
|
|
|
* to use for comparing geometries. |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* @param comparator The comparator to use. |
|
|
|
|
*/ |
|
|
|
|
public GeometryList(GeometryComparator comparator) { |
|
|
|
@ -65,18 +65,22 @@ public class GeometryList { |
|
|
|
|
this.comparator = comparator; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void setComparator(GeometryComparator comparator) { |
|
|
|
|
this.comparator = comparator; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns the GeometryComparator that this Geometry list uses |
|
|
|
|
* for sorting. |
|
|
|
|
*/ |
|
|
|
|
public GeometryComparator getComparator() { |
|
|
|
|
return comparator; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Set the camera that will be set on the geometry comparators |
|
|
|
|
* Set the camera that will be set on the geometry comparators |
|
|
|
|
* via {@link GeometryComparator#setCamera(com.jme3.renderer.Camera)}. |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* @param cam Camera to use for sorting. |
|
|
|
|
*/ |
|
|
|
|
public void setCamera(Camera cam){ |
|
|
|
@ -85,7 +89,7 @@ public class GeometryList { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns the number of elements in this GeometryList. |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* @return Number of elements in the list |
|
|
|
|
*/ |
|
|
|
|
public int size(){ |
|
|
|
@ -94,7 +98,7 @@ public class GeometryList { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns the element at the given index. |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* @param index The index to lookup |
|
|
|
|
* @return Geometry at the index |
|
|
|
|
*/ |
|
|
|
@ -103,7 +107,7 @@ public class GeometryList { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Adds a geometry to the list. |
|
|
|
|
* Adds a geometry to the list. |
|
|
|
|
* List size is doubled if there is no room. |
|
|
|
|
* |
|
|
|
|
* @param g |
|
|
|
@ -114,7 +118,7 @@ public class GeometryList { |
|
|
|
|
Geometry[] temp = new Geometry[size * 2]; |
|
|
|
|
System.arraycopy(geometries, 0, temp, 0, size); |
|
|
|
|
geometries = temp; // original list replaced by double-size list
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
geometries2 = new Geometry[size * 2]; |
|
|
|
|
} |
|
|
|
|
geometries[size++] = g; |
|
|
|
@ -137,13 +141,13 @@ public class GeometryList { |
|
|
|
|
public void sort() { |
|
|
|
|
if (size > 1) { |
|
|
|
|
// sort the spatial list using the comparator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// SortUtil.qsort(geometries, 0, size, comparator);
|
|
|
|
|
// Arrays.sort(geometries, 0, size, comparator);
|
|
|
|
|
|
|
|
|
|
// Arrays.sort(geometries, 0, size, comparator);
|
|
|
|
|
|
|
|
|
|
System.arraycopy(geometries, 0, geometries2, 0, size); |
|
|
|
|
SortUtil.msort(geometries2, geometries, 0, size-1, comparator); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|