Swich geometry sorting to tim sort.
git-svn-id: https://jmonkeyengine.googlecode.com/svn/branches/gradle-restructure@10998 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
75e82e47f2
commit
af58df2fc0
jme3-core/src/main/java/com/jme3
@ -33,7 +33,7 @@ package com.jme3.renderer.queue;
|
||||
|
||||
import com.jme3.renderer.Camera;
|
||||
import com.jme3.scene.Geometry;
|
||||
import com.jme3.util.SortUtil;
|
||||
import com.jme3.util.ListSort;
|
||||
|
||||
/**
|
||||
* This class is a special purpose list of {@link Geometry} objects for render
|
||||
@ -48,7 +48,7 @@ public class GeometryList {
|
||||
private static final int DEFAULT_SIZE = 32;
|
||||
|
||||
private Geometry[] geometries;
|
||||
private Geometry[] geometries2;
|
||||
private ListSort listSort;
|
||||
private int size;
|
||||
private GeometryComparator comparator;
|
||||
|
||||
@ -61,8 +61,8 @@ public class GeometryList {
|
||||
public GeometryList(GeometryComparator comparator) {
|
||||
size = 0;
|
||||
geometries = new Geometry[DEFAULT_SIZE];
|
||||
geometries2 = new Geometry[DEFAULT_SIZE];
|
||||
this.comparator = comparator;
|
||||
listSort = new ListSort<Geometry>();
|
||||
}
|
||||
|
||||
public void setComparator(GeometryComparator comparator) {
|
||||
@ -118,8 +118,6 @@ 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;
|
||||
}
|
||||
@ -141,14 +139,10 @@ 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);
|
||||
|
||||
System.arraycopy(geometries, 0, geometries2, 0, size);
|
||||
SortUtil.msort(geometries2, geometries, 0, size-1, comparator);
|
||||
|
||||
|
||||
if(listSort.getLength() != size){
|
||||
listSort.allocateStack(size);
|
||||
}
|
||||
listSort.sort(geometries,comparator);
|
||||
}
|
||||
}
|
||||
}
|
1012
jme3-core/src/main/java/com/jme3/util/ListSort.java
Normal file
1012
jme3-core/src/main/java/com/jme3/util/ListSort.java
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user