/** * */ package rampancy.util.data.segmentArray; import rampancy.util.*; /** * @author Matthew Chun-Lum * */ public class RSegmentArray { private RNode[] segmentOrder; private RNode root; /** * Constructor * @param segmentOrder */ public RSegmentArray(RNode[] segmentOrder) { this.segmentOrder = segmentOrder; root = segmentOrder[0].newInstance(this, 0); } /** * Creates a segment using the passed depth value * @param depth * @return the new segment created */ public RNode createSegment(int depth) { return segmentOrder[depth].newInstance(this, depth); } /** * Recursively searches for the appropriate segment for the given state * @param state * @return the appropriate segment for the given state */ public RLeafSegment getSegmentForState(RRobotState state) { return root.getSegmentForState(state); } }