Files
alternativa3d-archive/Alternativa3D6/6.0/alternativa/engine3d/sorting/FaceNonePrimitive.as
Pyogenics ecf60d961b Add A3D6
2024-09-28 17:40:49 +01:00

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);
}
}
}
}