private string ParseToJson() { var bytes = archive.Serialize_Binary(); encodedData = Convert.ToBase64String(bytes, Base64FormattingOptions.InsertLineBreaks); var ghData = new GHData(); ghData.algo = encodedData; ghData.values = GHInput.ToGHValueList(ghInputs); var json = JsonConvert.SerializeObject(ghData); return(json); }
// Start is called before the first frame update void Start() { client = new RestClient(serviceUrl); archive = new GH_Archive(); archive.ReadFromFile(Application.streamingAssetsPath + "\\" + ghFile); var root = archive.GetRootNode; var def = root.FindChunk("Definition") as GH_Chunk; var objs = def.FindChunk("DefinitionObjects") as GH_Chunk; if (objs != null) { int count = objs.GetInt32("ObjectCount"); var inputGuids = new List <Guid>(); var inputNames = new List <string>(); for (int i = 0; i < count; i++) { var obj = objs.FindChunk("Object", i) as GH_Chunk; var container = obj.FindChunk("Container") as GH_Chunk; var name = container.GetString("Name"); if (name == "Group") { var nickname = container.GetString("NickName"); if (nickname.IndexOf("RH_IN:") != -1) { var inputname = nickname.Replace("RH_IN:", ""); var itemguid = container.GetGuid("ID", 0); inputNames.Add(inputname); inputGuids.Add(itemguid); } } } for (int i = 0; i < count; i++) { var obj = objs.FindChunk("Object", i) as GH_Chunk; var container = obj.FindChunk("Container") as GH_Chunk; var instanceguid = container.GetGuid("InstanceGuid"); if (inputGuids.Contains(instanceguid)) { var index = inputGuids.IndexOf(instanceguid); var inputName = inputNames[index]; var componetName = container.GetString("Name"); object value = null; switch (componetName) { case ("Point"): value = new float[] { 0.5f, 0.5f, 0.5f }; break; case ("Number"): value = 0.5f; break; case ("Integer"): value = 10; break; default: break; } var ghInput = new GHInput(componetName, inputName, value); ghInputs.Add(ghInput); } } } SendGHData(); }