|
@@ -78,6 +78,7 @@ THREE.Projector = function () {
|
|
|
var getObject = function ( object ) {
|
|
|
|
|
|
_object = getNextObjectInPool();
|
|
|
+ _object.id = object.id;
|
|
|
_object.object = object;
|
|
|
|
|
|
if ( object.renderDepth !== null ) {
|
|
@@ -240,6 +241,7 @@ THREE.Projector = function () {
|
|
|
|
|
|
_face = getNextFace3InPool();
|
|
|
|
|
|
+ _face.id = object.id;
|
|
|
_face.v1.copy( v1 );
|
|
|
_face.v2.copy( v2 );
|
|
|
_face.v3.copy( v3 );
|
|
@@ -281,6 +283,7 @@ THREE.Projector = function () {
|
|
|
|
|
|
_face = getNextFace4InPool();
|
|
|
|
|
|
+ _face.id = object.id;
|
|
|
_face.v1.copy( v1 );
|
|
|
_face.v2.copy( v2 );
|
|
|
_face.v3.copy( v3 );
|
|
@@ -392,6 +395,8 @@ THREE.Projector = function () {
|
|
|
_clippedVertex2PositionScreen.multiplyScalar( 1 / _clippedVertex2PositionScreen.w );
|
|
|
|
|
|
_line = getNextLineInPool();
|
|
|
+
|
|
|
+ _line.id = object.id;
|
|
|
_line.v1.positionScreen.copy( _clippedVertex1PositionScreen );
|
|
|
_line.v2.positionScreen.copy( _clippedVertex2PositionScreen );
|
|
|
|
|
@@ -432,10 +437,11 @@ THREE.Projector = function () {
|
|
|
if ( _vector4.z > 0 && _vector4.z < 1 ) {
|
|
|
|
|
|
_particle = getNextParticleInPool();
|
|
|
- _particle.object = object;
|
|
|
+ _particle.id = object.id;
|
|
|
_particle.x = _vector4.x / _vector4.w;
|
|
|
_particle.y = _vector4.y / _vector4.w;
|
|
|
_particle.z = _vector4.z;
|
|
|
+ _particle.object = object;
|
|
|
|
|
|
_particle.rotation = object.rotation.z;
|
|
|
|
|
@@ -561,7 +567,19 @@ THREE.Projector = function () {
|
|
|
|
|
|
function painterSort( a, b ) {
|
|
|
|
|
|
- return b.z - a.z;
|
|
|
+ if ( a.z !== b.z ) {
|
|
|
+
|
|
|
+ return b.z - a.z;
|
|
|
+
|
|
|
+ } else if ( a.id !== b.id ) {
|
|
|
+
|
|
|
+ return a.id - b.id;
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|