private static void ApplyOffsets(CameraControlGetCommand getCmd, CameraControlCommandBase deltaCmd) { Assert.False(deltaCmd.IntData == null && deltaCmd.FloatData == null && deltaCmd.LongData == null && deltaCmd.BoolData == null); if (deltaCmd.IntData != null) { Assert.NotNull(getCmd.IntData); Assert.Equal(getCmd.IntData.Length, deltaCmd.IntData.Length); var newVals = new int[getCmd.IntData.Length]; for (int i = 0; i < newVals.Length; i++) { newVals[i] = getCmd.IntData[i] + deltaCmd.IntData[i]; } getCmd.IntData = newVals; } if (deltaCmd.LongData != null) { Assert.NotNull(getCmd.LongData); Assert.Equal(getCmd.LongData.Length, deltaCmd.LongData.Length); var newVals = new long[getCmd.LongData.Length]; for (int i = 0; i < newVals.Length; i++) { newVals[i] = getCmd.LongData[i] + deltaCmd.LongData[i]; } getCmd.LongData = newVals; } if (deltaCmd.FloatData != null) { Assert.NotNull(getCmd.FloatData); Assert.Equal(getCmd.FloatData.Length, deltaCmd.FloatData.Length); var newVals = new double[getCmd.FloatData.Length]; for (int i = 0; i < getCmd.FloatData.Length; i++) { newVals[i] = getCmd.FloatData[i] + deltaCmd.FloatData[i]; } getCmd.FloatData = newVals; } if (deltaCmd.BoolData != null) { Assert.NotNull(getCmd.BoolData); Assert.Equal(getCmd.BoolData.Length, deltaCmd.BoolData.Length); var newVals = new bool[getCmd.BoolData.Length]; for (int i = 0; i < getCmd.BoolData.Length; i++) { newVals[i] = deltaCmd.BoolData[i] ? !getCmd.BoolData[i] : getCmd.BoolData[i]; } getCmd.BoolData = newVals; } }
private static CameraControlGetCommand CopyCommand(CameraControlCommandBase cmd) { return(new CameraControlGetCommand { Input = cmd.Input, Category = cmd.Category, Parameter = cmd.Parameter, Type = cmd.Type, IntData = cmd.IntData, LongData = cmd.LongData, FloatData = cmd.FloatData, StringData = cmd.StringData, BoolData = cmd.BoolData, }); }