mirror of
https://github.com/MapMakersAndProgrammers/alternativa3d-archive.git
synced 2025-10-26 09:49:07 -07:00
49 lines
1.3 KiB
ActionScript
49 lines
1.3 KiB
ActionScript
package alternativa.engine3d.sorting {
|
|
|
|
import alternativa.engine3d.*;
|
|
|
|
use namespace alternativa3d;
|
|
|
|
public class BSPNode extends Node {
|
|
|
|
// Дочерние полигональные ветки
|
|
alternativa3d var frontBSP:BSPNode;
|
|
alternativa3d var backBSP:BSPNode;
|
|
|
|
// Дочерние точечные ноды
|
|
alternativa3d var frontDistance:DistanceNode;
|
|
alternativa3d var backDistance:DistanceNode;
|
|
|
|
// Хранилище неиспользуемых нод
|
|
static private var collector:Array = new Array();
|
|
|
|
static alternativa3d function create():BSPNode {
|
|
var node:BSPNode;
|
|
if ((node = collector.pop()) == null) {
|
|
// Если коллектор пуст, создаём новую ноду
|
|
return new BSPNode();
|
|
}
|
|
return node;
|
|
}
|
|
|
|
static alternativa3d function destroy(node:BSPNode):void {
|
|
// Удаляем ссылку на уровень
|
|
node.sortingLevel = null;
|
|
// Отправляем ноду в коллектор
|
|
collector.push(node);
|
|
}
|
|
/*
|
|
override alternativa3d function addBSPPrimitive(primitive:FaceBSPPrimitive):void {
|
|
|
|
}
|
|
|
|
override alternativa3d function addDistancePrimitive(primitive:DistancePrimitive):void {
|
|
|
|
}
|
|
|
|
alternativa3d function removePrimitive(primitive:FaceBSPPrimitive):void {
|
|
|
|
}
|
|
*/
|
|
}
|
|
} |