     return null
 
 
-  getBucketAndVoxelIndex : (voxel, zoomStep ) ->
+  getBucketAndVoxelIndex : (voxel, zoomStep, createBucketIfUndefined = false ) ->
 
     address     = @positionToZoomedAddress( voxel, zoomStep )
     voxelOffset = @getVoxelOffset( voxel )
 
     return {
-      bucket : @getBucketDataByZoomedAddress(address, true)
+      bucket : @getBucketDataByZoomedAddress(address, createBucketIfUndefined)
       voxelIndex : @BYTE_OFFSET * @getVoxelIndexByVoxelOffset(voxelOffset) }
 
 

    z * (1 << @BUCKET_SIZE_P * 2)


  getBucketDataByZoomedAddress : (address, createIfNull = false) ->

    if address[3] >= @ZOOM_STEP_COUNT
      return null

      bucket = cube[bucketIndex]
      if bucket? and bucket != @LOADING_PLACEHOLDER
        return bucket
      else if createIfUndefined
        return cube[bucketIndex] = new Uint8Array(@BUCKET_LENGTH)

    return null
