OctreeHelper constructor

OctreeHelper(
  1. Octree octree, [
  2. int color = 0xffff00
])

Implementation

factory OctreeHelper(Octree octree, [int color = 0xffff00]){
		List<double> vertices = [];

		void traverse(Octree tree){
			for (int i = 0; i < tree.subTrees.length; i ++) {
				Vector3 min = tree.subTrees[i].box.min;
				Vector3 max = tree.subTrees[i].box.max;
				vertices+=[ max.x, max.y, max.z]; vertices+=[ min.x, max.y, max.z]; // 0, 1
				vertices+=[ min.x, max.y, max.z]; vertices+=[ min.x, min.y, max.z]; // 1, 2
				vertices+=[ min.x, min.y, max.z]; vertices+=[ max.x, min.y, max.z]; // 2, 3
				vertices+=[ max.x, min.y, max.z]; vertices+=[ max.x, max.y, max.z]; // 3, 0

				vertices+=[ max.x, max.y, min.z]; vertices+=[ min.x, max.y, min.z]; // 4, 5
				vertices+=[ min.x, max.y, min.z]; vertices+=[ min.x, min.y, min.z]; // 5, 6
				vertices+=[ min.x, min.y, min.z]; vertices+=[ max.x, min.y, min.z]; // 6, 7
				vertices+=[ max.x, min.y, min.z]; vertices+=[ max.x, max.y, min.z]; // 7, 4

				vertices+=[ max.x, max.y, max.z]; vertices+=[ max.x, max.y, min.z]; // 0, 4
				vertices+=[ min.x, max.y, max.z]; vertices+=[ min.x, max.y, min.z]; // 1, 5
				vertices+=[ min.x, min.y, max.z]; vertices+=[ min.x, min.y, min.z]; // 2, 6
				vertices+=[ max.x, min.y, max.z]; vertices+=[ max.x, min.y, min.z]; // 3, 7

				//traverse(tree.subTrees[i]);
			}
		}

		traverse(octree);

  Float32Array array = Float32Array.fromList(vertices);

		BufferGeometry geometry = BufferGeometry();
		geometry.setAttribute('position', Float32BufferAttribute(array, 3));
  array.dispose();

  var oh = OctreeHelper.create(
    geometry,
    LineBasicMaterial({"color": color, "toneMapped": false})
  );

  oh.octree = octree;
  oh.color = color;
  oh.type = 'OctreeHelper';

  return oh;
}