Skip to content

Commit 07c42f0

Browse files
committed
fix
1 parent ba9aa7c commit 07c42f0

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

Assets/Scripts/VolumeObject/VolumeRenderedObject.cs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using openDicom.Encoding;
22
using System.Collections.Generic;
3+
using System.Globalization;
34
using System.Linq;
45
using System.Threading;
56
using System.Threading.Tasks;
@@ -160,29 +161,28 @@ public void AddSegmentation(VolumeDataset dataset)
160161
overlayType = OverlayType.Segmentation;
161162

162163
int lastSegmentationId = segmentationLabels.Count > 0 ? segmentationLabels.Max(l => l.id) : 0;
163-
int maxSegmentationId = -1;
164+
int minSegmentationId = int.MaxValue;
165+
int maxSegmentationId = int.MinValue;
164166

165167
if (segmentationLabels.Count == 0)
166168
{
167169
secondaryDataset = dataset;
168-
maxSegmentationId = Mathf.RoundToInt(dataset.GetMaxDataValue());
169170
}
170-
else
171+
for (int i = 0; i < dataset.data.Length; i++)
171172
{
172-
for (int i = 0; i < dataset.data.Length; i++)
173+
int value = Mathf.RoundToInt(dataset.data[i]);
174+
if (value > 0)
173175
{
174-
int value = Mathf.RoundToInt(dataset.data[i]);
175-
if (value > 0)
176-
{
177-
maxSegmentationId = Mathf.Max(maxSegmentationId, value);
178-
secondaryDataset.data[i] = maxSegmentationId + value;
179-
}
176+
minSegmentationId = Mathf.Min(minSegmentationId, value);
177+
maxSegmentationId = Mathf.Max(maxSegmentationId, value);
178+
secondaryDataset.data[i] = lastSegmentationId + value;
180179
}
181-
secondaryDataset.RecalculateBounds();
182-
secondaryDataset.RecreateDataTexture();
183-
secondaryDataset.GetDataTexture().filterMode = FilterMode.Point;
184180
}
185-
for (int i = 1; i <= maxSegmentationId; i++)
181+
secondaryDataset.RecalculateBounds();
182+
secondaryDataset.RecreateDataTexture();
183+
secondaryDataset.GetDataTexture().filterMode = FilterMode.Point;
184+
185+
for (int i = minSegmentationId; i <= maxSegmentationId; i++)
186186
{
187187
int segmentationId = i + lastSegmentationId;
188188
SegmentationLabel segmentationLabel = new SegmentationLabel();

0 commit comments

Comments
 (0)