public static void WriteLabelWorkingSet(long fileId_inp, bool overwrite_inp) { var LabelClassInfos = Labeling.GetAllIdsNamesAndMaterials(); int status = 0; ulong[] dims = new ulong[2]; dims[0] = 2; dims[1] = (ulong)LabelClassInfos.Count; long group_id = 0; if (overwrite_inp) { group_id = H5G.open(fileId_inp, "labelWorkingSet"); } else { group_id = H5G.create(fileId_inp, "labelWorkingSet"); } for (int i = 0; i < LabelClassInfos.Count; i++) { GCHandle labelID = GCHandle.Alloc(LabelClassInfos.ElementAt(i).Key, GCHandleType.Pinned); string labelClassName = LabelClassInfos.ElementAt(i).Value.Item1; long attr_id = H5A.open(group_id, labelClassName); if (attr_id >= 0) { //attribute exists status = H5A.write(attr_id, H5T.NATIVE_UINT32, labelID.AddrOfPinnedObject()); } else { //attribute has to be created attr_id = H5A.create(group_id, LabelClassInfos.ElementAt(i).Value.Item1, H5T.NATIVE_UINT32, H5S.create(H5S.class_t.SCALAR)); status = H5A.write(attr_id, H5T.NATIVE_UINT32, labelID.AddrOfPinnedObject()); } status = H5A.close(attr_id); } status = H5G.close(group_id); }
private void RefreshLabelClassView() { for (int i = 0; i < Instance.labelClassItems.Count; i++) { Destroy(Instance.labelClassItems[i]); } Instance.labelClassItems.Clear(); var classInfos = Labeling.GetAllIdsNamesAndMaterials(); foreach (var classInfo in classInfos) { GameObject classItem = Instantiate(labelClassItemPrefab, Instance.labelClassView.content.transform); var attributes = classItem.GetComponent <LabelClassItem>(); attributes.ClassName = classInfo.Value.Item1; attributes.ClassID = classInfo.Key; attributes.ClassColor = classInfo.Value.Item2.color; Instance.labelClassItems.Add(classItem); } }