예제 #1
0
        private Vector3 MapColor(Values.SensorColors color)
        {
            switch (color)
            {
            case Values.SensorColors.Black:
                return((Vector4)Color.black);

            case Values.SensorColors.Blue:
                return((Vector4)Color.blue);

            case Values.SensorColors.Cyan:
                return((Vector4)Color.cyan);

            case Values.SensorColors.Gray:
                return((Vector4)Color.gray);

            case Values.SensorColors.Green:
                return((Vector4)Color.green);

            case Values.SensorColors.Magenta:
                return((Vector4)Color.magenta);

            case Values.SensorColors.Red:
                return((Vector4)Color.red);

            case Values.SensorColors.White:
                return((Vector4)Color.white);

            case Values.SensorColors.Yellow:
                return((Vector4)Color.yellow);

            default:
                return(new Vector3(-1F, -1F, -1F));
            }
        }
예제 #2
0
        public override bool ColorSensor(Values.Sensor sensor, Values.SensorColors color)
        {
            var sensor_color = GetRGBSensorValue(sensor) / 255F;

            switch (color)
            {
            case Values.SensorColors.Unknown:
                bool isUnknown = false;

                foreach (var test_color in AllColors)
                {
                    isUnknown |= (sensor_color - MapColor(test_color)).magnitude < 0.25F;
                }

                return(isUnknown);

            default:
                var distance = (sensor_color - MapColor(color)).magnitude;
                return(distance < 0.25F);
            }
        }
예제 #3
0
 public abstract bool ColorSensor(Values.Sensor sensor, Values.SensorColors color);