Optimized VoxelNode::isLeaf()

Save 2 milliseconds per 100k voxels

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Old code determines isLeaf by iterating _children[] array
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    WARNING! collectStatsForTreesAndVBOs()-->recursing the tree took 10.490000 milliseconds
    _voxelsDirty=no _voxelsInWriteArrays=132331 minDirty=-1 maxDirty=0 
    stats: total 132331, leaves 110410, dirty 0, colored 125459, shouldRender 110487, inVBO 0
    inVBO 132331, nodesInVBOOverExpectedMax 0, duplicateVBOIndex 0
    minInVBO=0 maxInVBO=132330 _voxelsInWriteArrays=132331 _voxelsInReadArrays=132331
    WARNING! collectStatsForTreesAndVBOs() took 12.276000 milliseconds

    WARNING! collectStatsForTreesAndVBOs()-->recursing the tree took 10.397000 milliseconds
    _voxelsDirty=no _voxelsInWriteArrays=132331 minDirty=-1 maxDirty=0 
    stats: total 132331, leaves 110410, dirty 0, colored 125459, shouldRender 110487, inVBO 0
    inVBO 132331, nodesInVBOOverExpectedMax 0, duplicateVBOIndex 0
    minInVBO=0 maxInVBO=132330 _voxelsInWriteArrays=132331 _voxelsInReadArrays=132331
    WARNING! collectStatsForTreesAndVBOs() took 12.157000 milliseconds

    WARNING! collectStatsForTreesAndVBOs()-->recursing the tree took 10.421000 milliseconds
    _voxelsDirty=no _voxelsInWriteArrays=132331 minDirty=-1 maxDirty=0 
    stats: total 132331, leaves 110410, dirty 0, colored 125460, shouldRender 110487, inVBO 0
    inVBO 132331, nodesInVBOOverExpectedMax 0, duplicateVBOIndex 0
    minInVBO=0 maxInVBO=132330 _voxelsInWriteArrays=132331 _voxelsInReadArrays=132331
    WARNING! collectStatsForTreesAndVBOs() took 12.171000 milliseconds


    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// New code determines isLeaf tracking number of children in the array
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    WARNING! collectStatsForTreesAndVBOs()-->recursing the tree took 8.533000 milliseconds
    _voxelsDirty=no _voxelsInWriteArrays=132331 minDirty=-1 maxDirty=0 
    stats: total 132331, leaves 110410, dirty 0, colored 125462, shouldRender 110487, inVBO 0
    inVBO 132331, nodesInVBOOverExpectedMax 0, duplicateVBOIndex 0
    minInVBO=0 maxInVBO=132330 _voxelsInWriteArrays=132331 _voxelsInReadArrays=132331
    WARNING! collectStatsForTreesAndVBOs() took 10.357000 milliseconds

    WARNING! collectStatsForTreesAndVBOs()-->recursing the tree took 8.530000 milliseconds
    _voxelsDirty=no _voxelsInWriteArrays=132331 minDirty=-1 maxDirty=0 
    stats: total 132331, leaves 110410, dirty 0, colored 125460, shouldRender 110487, inVBO 0
    inVBO 132331, nodesInVBOOverExpectedMax 0, duplicateVBOIndex 0
    minInVBO=0 maxInVBO=132330 _voxelsInWriteArrays=132331 _voxelsInReadArrays=132331
    WARNING! collectStatsForTreesAndVBOs() took 10.263000 milliseconds

    WARNING! collectStatsForTreesAndVBOs()-->recursing the tree took 8.510000 milliseconds
    _voxelsDirty=no _voxelsInWriteArrays=132331 minDirty=-1 maxDirty=0 
    stats: total 132331, leaves 110410, dirty 0, colored 125459, shouldRender 110487, inVBO 0
    inVBO 132331, nodesInVBOOverExpectedMax 0, duplicateVBOIndex 0
    minInVBO=0 maxInVBO=132330 _voxelsInWriteArrays=132331 _voxelsInReadArrays=132331
    WARNING! collectStatsForTreesAndVBOs() took 10.245000 milliseconds