RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package rlpark.plugin.robot.internal.ranges; 00002 00003 import java.util.HashMap; 00004 import java.util.Map; 00005 00006 import rlpark.plugin.rltoys.envio.observations.Legend; 00007 import rlpark.plugin.rltoys.math.ranges.Range; 00008 import rlpark.plugin.robot.internal.disco.datagroup.DropScalarGroup; 00009 import rlpark.plugin.robot.internal.disco.datatype.Ranged; 00010 import rlpark.plugin.robot.internal.disco.drops.DropData; 00011 00012 public class RangeProvider { 00013 private final Map<String, Range> labelToRanges = new HashMap<String, Range>(); 00014 00015 public RangeProvider(DropScalarGroup datas, Map<String, Range> missing) { 00016 for (DropData drop : datas.drop().dropDatas()) 00017 if (drop instanceof Ranged) 00018 labelToRanges.put(drop.label, ((Ranged) drop).range()); 00019 if (missing != null) 00020 labelToRanges.putAll(missing); 00021 } 00022 00023 public Range[] ranges(Legend legend) { 00024 Range[] ranges = new Range[legend.nbLabels()]; 00025 for (int i = 0; i < ranges.length; i++) { 00026 String label = legend.label(i); 00027 Range range = labelToRanges.get(label); 00028 assert range != null; 00029 ranges[i] = range; 00030 } 00031 return ranges; 00032 } 00033 }