private void generateRenderSetNoCheck(Geometry[] globalGeomList, Set<Geometry> renderSet, Camera cam){ if (length != 0){ int start = getOffset(); int end = start + length; for (int i = start; i < end; i++){ renderSet.add(globalGeomList[i]); } } if (child == null) return; FastOctnode node = child; while (node != null){ node.generateRenderSetNoCheck(globalGeomList, renderSet, cam); node = node.next; } }
public String toStringVerbose(int indent){ String str = "------------------".substring(0,indent) + toString() + "\n"; if (child == null) return str; FastOctnode children = child; while (children != null){ str += children.toStringVerbose(indent+1); children = children.next; } return str; }
findChildBound(tempBox, getSide()); if (result != Camera.FrustumIntersect.Outside){ if (length != 0){ int start = getOffset(); int end = start + length; for (int i = start; i < end; i++){ node.generateRenderSetNoCheck(globalGeomList, renderSet, cam); }else{ node.generateRenderSet(globalGeomList, renderSet, cam, tempBox, false);
public void createFastOctnode(List<Geometry> globalGeomList){ fastNode = new FastOctnode(); if (geoms != null){ Collection<Geometry> geomsColl = Arrays.asList(geoms); List<Geometry> myOptimizedList = GeometryBatchFactory.makeBatches(geomsColl); int startIndex = globalGeomList.size(); globalGeomList.addAll(myOptimizedList); fastNode.setOffset(startIndex); fastNode.length = myOptimizedList.size(); }else{ fastNode.setOffset(0); fastNode.length = 0; } for (int i = 0; i < 8; i++){ if (children[i] != null){ children[i].createFastOctnode(globalGeomList); } } }
public void generateFastOctnodeLinks(Octnode parent, Octnode nextSibling, int side){ fastNode.setSide(side); fastNode.next = nextSibling != null ? nextSibling.fastNode : null; // We set the next sibling property by going in reverse order Octnode prev = null; for (int i = 7; i >= 0; i--){ if (children[i] != null){ children[i].generateFastOctnodeLinks(this, prev, i); prev = children[i]; } } fastNode.child = prev != null ? prev.fastNode : null; }
public void postQueue(RenderQueue rq) { renderSet.clear(); //tree.generateRenderSet(renderSet, cam); fastRoot.generateRenderSet(globalGeoms, renderSet, cam, octBox, true); // System.out.println("Geoms: "+renderSet.size()); int tris = 0; for (Geometry geom : renderSet){ tris += geom.getTriangleCount(); // geom.setMaterial(mat2); rq.addToQueue(geom, geom.getQueueBucket()); } // Matrix4f transform = new Matrix4f(); // transform.setScale(0.2f, 0.2f, 0.2f); // System.out.println("Tris: "+tris); // tree.renderBounds(rq, transform, box, mat); // renderManager.flushQueue(viewPort); }