コード例 #1
0
        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);
        }
コード例 #2
0
    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);
        }
    }