public void SerializeParameters(UIElementCollection parameterGrid, string shaderName) { ShaderName = shaderName; ClearLists(); foreach (var p in parameterGrid) { if (p is BoolView) { var vm = (p as BoolView).DataContext as BoolViewModel; BoolList.Add(new SerializeHolder <bool>(vm.ShaderName, vm.ContentValue)); } else if (p is IntView) { var vm = (p as IntView).DataContext as IntViewModel; IntList.Add(new SerializeHolder <int>(vm.ShaderName, vm.ContentValue)); } else if (p is FloatView) { var vm = (p as FloatView).DataContext as FloatViewModel; FloatList.Add(new SerializeHolder <float>(vm.ShaderName, vm.ContentValue)); } else if (p is Float2View) { var vm = (p as Float2View).DataContext as Float2ViewModel; Float2List.Add(new SerializeHolder <Float2>(vm.ShaderName, vm.ContentValue)); } else if (p is Float3View) { var vm = (p as Float3View).DataContext as Float3ViewModel; Float3List.Add(new SerializeHolder <Float3>(vm.ShaderName, vm.ContentValue)); } else if (p is Float4View) { var vm = (p as Float4View).DataContext as Float4ViewModel; Float4List.Add(new SerializeHolder <Float4>(vm.ShaderName, vm.ContentValue)); } else if (p is Texture2DView) { var vm = (p as Texture2DView).DataContext as Texture2DViewModel; Texture2DList.Add(new SerializeHolder <string>(vm.ShaderName, vm.FileName)); } } var ofd = new SaveFileDialog(); string baseDirectory = System.AppDomain.CurrentDomain.BaseDirectory; ofd.InitialDirectory = baseDirectory; ofd.DefaultExt = ".xml"; ofd.Filter = "XML files (.xml)|*.xml"; if (ofd.ShowDialog() == true) { using (var f = File.Create(ofd.FileName)) { XmlSer.Serialize(f, this); } } }
private void ClearFields() { IntArrayProp = new int[2]; ComplexProp = new ComplexClass1(); CheckBox = false; Lines = new string[0]; StringProp = ""; CompList.Clear(); CompList.Add(new ComplexClass2(4, 5)); CompList.Add(null); CompList.Add(new ComplexClass2(6, 7)); BoolList.Clear(); BoolList.Add(true); BoolList.Add(false); BoolList.Add(true); SetDebugDisplays(); }
public static BoolList ConvertBoolList(string vec) { BoolList list = new BoolList(); try { string[] resut = vec.Split(s_ListSplitString, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < resut.Length; ++i) { string str = resut[i]; if (str == "true" || str.Length > 0 && char.IsNumber(str[0]) && int.Parse(str) != 0) { list.Add(true); } else { list.Add(false); } } return(list); } catch (System.Exception ex) { LogSystem.Error("ConvertBoolList {0} Exception:{1}/{2}", vec, ex.Message, ex.StackTrace); throw; } }
public void Load(ZipData zip) { var code = new BoolList(); var info = new InfoSource(); this.path = zip.path; for (int i = 0; i < zip.data.Length; i++) { code.Add(zip.data[i]); if (zip.Codes.ContainsKey(code)) { // 一部分複合する.瞬時符号って最高 info.AddRange(zip.Codes[code]); code.Clear(); } } this.byteArray = new byte[zip.byteNumber]; var temp = info.ToByteArray(); for (int i = 0; i < this.byteArray.Length; i++) { byteArray[i] = temp[i]; } /* * for(int i = 0 ; i < byteArray.Length ; i++ ) * { * byte b = 0x00; * for(int j = 0 ; j < 8 ; j++ ){ * b <<= 1; * b |= info[ i * 8 + j ] ? (byte)0x01 : (byte)0x00; * } * byteArray[i] = b; * }*/ }
public void Load(PngData png) { var bytelist = new List <byte>(png.originalData.ToByteArray()); var index = 0; byte[] temp_byte; temp_byte = bytelist.GetRange(index, 4).ToArray(); index += 4; if (temp_byte[0] != (byte)'P') { throw new Exception("P is error"); } if (temp_byte[1] != (byte)'D') { throw new Exception("D is error"); } if (temp_byte[2] != (byte)'C') { throw new Exception("C is error"); } if (temp_byte[3] != (byte)'A') { throw new Exception("A is error"); } temp_byte = bytelist.GetRange(index, 4).ToArray(); index += 4; if (BitConverter.ToInt32(temp_byte, 0) != 1) { throw new Exception("zip type error"); } temp_byte = bytelist.GetRange(index, 4).ToArray(); index += 4; if (ZipData.n_byte != BitConverter.ToInt32(temp_byte, 0)) { throw new Exception("n_byte is error"); } // 元のファイルの文字列の長さ 4byte temp_byte = bytelist.GetRange(index, 4).ToArray(); index += 4; int path_bytes_Length = BitConverter.ToInt32(temp_byte, 0); // 元のファイルの文字列データ path_bytes_Length byte this.path = Encoding.UTF8.GetString(bytelist.GetRange(index, path_bytes_Length).ToArray()); index += path_bytes_Length; temp_byte = bytelist.GetRange(index, 4).ToArray(); index += 4; int Code_Count = BitConverter.ToInt32(temp_byte, 0); temp_byte = bytelist.GetRange(index, 4).ToArray(); index += 4; this.byteNumber = BitConverter.ToInt32(temp_byte, 0); this.Codes = new Dictionary <BoolList, InfoSource>(); this.InvertedCodes = new Dictionary <InfoSource, BoolList>(); for (int i = 0; i < Code_Count; i++) { temp_byte = bytelist.GetRange(index, ZipData.n_byte).ToArray(); index += ZipData.n_byte; var element = new InfoSource(temp_byte); temp_byte = bytelist.GetRange(index, 4).ToArray(); index += 4; var code_length = BitConverter.ToInt32(temp_byte, 0); var code_byte_length = code_length / 8 + (code_length % 8 == 0?0:1); temp_byte = bytelist.GetRange(index, code_byte_length).ToArray(); index += code_byte_length; var boollist_temp = new BoolList(temp_byte); var code = new BoolList(); for (int j = 0; j < code_length; j++) { code.Add(boollist_temp[j]); } this.Codes[code] = element; this.InvertedCodes[element] = code; } temp_byte = bytelist.GetRange(index, 4).ToArray(); index += 4; int dataLength = BitConverter.ToInt32(temp_byte, 0); temp_byte = bytelist.GetRange(index, dataLength / 8 + (dataLength % 8 == 0?0:1)).ToArray(); index += dataLength / 8 + (dataLength % 8 == 0?0:1); var data_temp = new BoolList(temp_byte); this.data = new BoolList(); for (int i = 0; i < dataLength; i++) { this.data.Add(data_temp[i]); } }