@@ -12,8 +12,13 @@ export default function createLabelPipeline(
12
12
useSampleDistance = false
13
13
) {
14
14
let labelMapData ;
15
-
16
- let { colorLUT, globalOpacity, visible } = options ;
15
+ let {
16
+ colorLUT,
17
+ globalOpacity,
18
+ visible,
19
+ renderOutline,
20
+ outlineThickness,
21
+ } = options ;
17
22
18
23
if ( visible === undefined ) {
19
24
visible = false ;
@@ -23,6 +28,10 @@ export default function createLabelPipeline(
23
28
globalOpacity = 1.0 ;
24
29
}
25
30
31
+ if ( outlineThickness === undefined ) {
32
+ outlineThickness = 3 ;
33
+ }
34
+
26
35
if ( paintFilterLabelMapImageData ) {
27
36
labelMapData = paintFilterLabelMapImageData ;
28
37
} else {
@@ -66,8 +75,9 @@ export default function createLabelPipeline(
66
75
labelMap . actor . setMapper ( labelMap . mapper ) ;
67
76
labelMap . actor . setVisibility ( visible ) ;
68
77
labelMap . ofun . addPoint ( 0 , 0 ) ;
78
+ labelMap . ofun . addPoint ( 1 , 1.0 ) ;
69
79
70
- // set up labelMap color and opacity mapping
80
+ // Set up labelMap color and opacity mapping
71
81
if ( colorLUT ) {
72
82
// TODO -> It seems to crash if you set it higher than 256??
73
83
const numColors = Math . min ( 256 , colorLUT . length ) ;
@@ -82,8 +92,9 @@ export default function createLabelPipeline(
82
92
color [ 2 ] / 255
83
93
) ;
84
94
95
+ // Set the opacity per label.
85
96
const segmentOpacity = ( color [ 3 ] / 255 ) * globalOpacity ;
86
- labelMap . ofun . addPointLong ( i , segmentOpacity , 0.5 , 1.0 ) ;
97
+ labelMap . ofun . addPoint ( 1 , segmentOpacity , 0.5 , 1.0 ) ;
87
98
}
88
99
} else {
89
100
// Some default.
@@ -95,8 +106,14 @@ export default function createLabelPipeline(
95
106
96
107
labelMap . actor . getProperty ( ) . setRGBTransferFunction ( 0 , labelMap . cfun ) ;
97
108
labelMap . actor . getProperty ( ) . setScalarOpacity ( 0 , labelMap . ofun ) ;
98
-
99
109
labelMap . actor . getProperty ( ) . setInterpolationTypeToNearest ( ) ;
110
+
111
+ if ( renderOutline ) {
112
+ labelMap . actor . getProperty ( ) . setUseLabelOutline ( true ) ;
113
+ labelMap . actor . getProperty ( ) . setLabelOutlineThickness ( outlineThickness ) ;
114
+ }
115
+
116
+ labelMap . ofun . setClamping ( false ) ;
100
117
labelMap . actor . getProperty ( ) . setScalarOpacityUnitDistance ( 0 , 0.1 ) ;
101
118
labelMap . actor . getProperty ( ) . setUseGradientOpacity ( 0 , false ) ;
102
119
0 commit comments