mirror of
https://github.com/MapMakersAndProgrammers/alternativa3d-archive.git
synced 2025-10-26 01:49:05 -07:00
41 lines
1.2 KiB
ActionScript
41 lines
1.2 KiB
ActionScript
package alternativa.engine3d.sorting {
|
|
|
|
import alternativa.engine3d.*;
|
|
import alternativa.engine3d.core.Face;
|
|
|
|
use namespace alternativa3d;
|
|
|
|
public class FaceNonePrimitive extends NonePrimitive {
|
|
|
|
// Ссылка на грань
|
|
alternativa3d var face:Face;
|
|
|
|
// Хранилище неиспользуемых примитивов
|
|
static private var collector:Array = new Array();
|
|
|
|
// Примитивы на отложенное удаление
|
|
static private var deferred:Array = new Array();
|
|
|
|
static alternativa3d function create():FaceNonePrimitive {
|
|
var primitive:FaceNonePrimitive;
|
|
if ((primitive = collector.pop()) == null) {
|
|
// Если коллектор пуст, создаём новый примитив
|
|
return new FaceNonePrimitive();
|
|
}
|
|
return primitive;
|
|
}
|
|
|
|
static alternativa3d function defer(primitive:FaceNonePrimitive):void {
|
|
deferred.push(primitive);
|
|
}
|
|
|
|
static alternativa3d function destroyDeferred():void {
|
|
var primitive:FaceNonePrimitive;
|
|
while ((primitive = deferred.pop()) != null) {
|
|
primitive.face = null;
|
|
primitive.sortingLevel = null;
|
|
collector.push(primitive);
|
|
}
|
|
}
|
|
}
|
|
} |