RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package rlpark.plugin.robot.internal.disco.datagroup; 00002 00003 00004 import rlpark.plugin.robot.internal.disco.datatype.ScalarReader; 00005 import rlpark.plugin.robot.internal.disco.datatype.ScalarWriter; 00006 import rlpark.plugin.robot.internal.disco.drops.Drop; 00007 import rlpark.plugin.robot.internal.disco.drops.DropData; 00008 import rlpark.plugin.robot.internal.sync.LiteByteBuffer; 00009 import rlpark.plugin.robot.internal.sync.ScalarInterpreter; 00010 00011 public class DropScalarGroup extends DataGroup implements ScalarInterpreter { 00012 public DropScalarGroup(Drop drop) { 00013 this("", drop); 00014 } 00015 00016 public DropScalarGroup(String prefix, Drop drop) { 00017 super(prefix, drop); 00018 } 00019 00020 @Override 00021 protected boolean isDataSelected(DropData data) { 00022 return data instanceof ScalarReader; 00023 } 00024 00025 public void set(int[] values) { 00026 double[] doubleValues = new double[values.length]; 00027 for (int i = 0; i < doubleValues.length; i++) 00028 doubleValues[i] = values[i]; 00029 set(doubleValues); 00030 } 00031 00032 public void set(double... values) { 00033 assert values.length == dropDatas.length; 00034 for (int i = 0; i < values.length; i++) 00035 ((ScalarWriter) dropDatas[i]).setDouble(values[i]); 00036 } 00037 00038 @Override 00039 public void interpret(LiteByteBuffer buffer, double[] values) { 00040 assert values.length == dropDatas.length; 00041 for (int i = 0; i < values.length; i++) 00042 values[i] = ((ScalarReader) dropDatas[i]).getDouble(buffer); 00043 } 00044 00045 public void interpret(LiteByteBuffer buffer, int[] values) { 00046 assert values.length == dropDatas.length; 00047 for (int i = 0; i < values.length; i++) 00048 values[i] = ((ScalarReader) dropDatas[i]).getInt(buffer); 00049 } 00050 }