public static String toString(@NonNull RevTree tree) { String stree = String.format( "%s(%s)[size:%,d, tree nodes:%,d, feature nodes:%,d, subtrees:%,d, buckets: %,d]", tree.getClass().getSimpleName(), // toShortString(tree.getId()), // tree.size(), // tree.treesSize(), // tree.featuresSize(), // tree.numTrees(), // tree.bucketsSize()); StringBuilder sb = new StringBuilder(stree); sb.append("\n[\ntrees:"); tree.forEachTree(n -> sb.append('\n').append(n)); sb.append("\nfeatures:"); tree.forEachFeature(n -> sb.append('\n').append(n)); sb.append("\nbuckets:"); tree.forEachBucket(b -> sb.append("\n").append(b)); sb.append("\n]"); return sb.toString(); }
public static Envelope boundsOf(@NonNull RevTree tree) { Envelope env = new Envelope(); tree.forEachBucket(bucket -> bucket.expand(env)); tree.forEachTree(n -> n.expand(env)); tree.forEachFeature(n -> n.expand(env)); return env; }
public static Envelope boundsOf(RevTree tree) { Envelope env = new Envelope(); tree.forEachBucket(bucket -> bucket.expand(env)); tree.forEachTree(n -> n.expand(env)); tree.forEachFeature(n -> n.expand(env)); return env; }
@Override public void funnel(RevTree from, PrimitiveSink into) { RevObjectTypeFunnel.funnel(TYPE.TREE, into); from.forEachTree(n -> NodeFunnel.funnel(n, into)); from.forEachFeature(n -> NodeFunnel.funnel(n, into)); from.forEachBucket(bucket -> { Funnels.integerFunnel().funnel(bucket.getIndex(), into); ObjectIdFunnel.funnel(bucket.getObjectId(), into); }); }
public void writeTree(RevTree tree, DataOutput data) throws IOException { writeUnsignedVarLong(tree.size(), data); writeUnsignedVarInt(tree.numTrees(), data); Envelope envBuff = new Envelope(); final int nFeatures = tree.featuresSize(); writeUnsignedVarInt(nFeatures, data); tree.forEachFeature(n -> writeNodeQuiet(n, data, envBuff)); final int nTrees = tree.treesSize(); writeUnsignedVarInt(nTrees, data); tree.forEachTree(n -> writeNodeQuiet(n, data, envBuff)); final int nBuckets = tree.bucketsSize(); writeUnsignedVarInt(nBuckets, data); tree.forEachBucket(bucket -> { try { writeBucket(bucket, data, envBuff); } catch (IOException e) { throw new RuntimeException(e); } }); }