1
1
2
2
// next step is move these properties to Style class
3
3
// and hide transparent mechanism
4
-
5
4
function ReferLayerProperties ( material , layer ) {
6
5
if ( layer && layer . isGeometryLayer ) {
7
6
let transparent = material . transparent ;
@@ -16,26 +15,31 @@ function ReferLayerProperties(material, layer) {
16
15
get : ( ) => material . layer . opacity ,
17
16
} ) ;
18
17
}
18
+
19
19
if ( material . uniforms && material . uniforms . mode != undefined ) {
20
20
Object . defineProperty ( material . uniforms . mode , 'value' , {
21
21
get : ( ) => material . layer . pntsMode ,
22
22
} ) ;
23
23
}
24
+
24
25
if ( material . uniforms && material . uniforms . shape != undefined ) {
25
26
Object . defineProperty ( material . uniforms . shape , 'value' , {
26
27
get : ( ) => material . layer . pntsShape ,
27
28
} ) ;
28
29
}
30
+
29
31
if ( material . uniforms && material . uniforms . sizeMode != undefined ) {
30
32
Object . defineProperty ( material . uniforms . sizeMode , 'value' , {
31
33
get : ( ) => material . layer . pntsSizeMode ,
32
34
} ) ;
33
35
}
36
+
34
37
if ( material . uniforms && material . uniforms . minAttenuatedSize != undefined ) {
35
38
Object . defineProperty ( material . uniforms . minAttenuatedSize , 'value' , {
36
39
get : ( ) => material . layer . pntsMinAttenuatedSize ,
37
40
} ) ;
38
41
}
42
+
39
43
if ( material . uniforms && material . uniforms . maxAttenuatedSize != undefined ) {
40
44
Object . defineProperty ( material . uniforms . maxAttenuatedSize , 'value' , {
41
45
get : ( ) => material . layer . pntsMaxAttenuatedSize ,
@@ -45,11 +49,13 @@ function ReferLayerProperties(material, layer) {
45
49
Object . defineProperty ( material , 'wireframe' , {
46
50
get : ( ) => material . layer . wireframe ,
47
51
} ) ;
52
+
48
53
Object . defineProperty ( material , 'transparent' , {
49
54
get : ( ) => {
50
- if ( transparent != material . layer . opacity < 1.0 ) {
55
+ const needTransparency = material . userData . needTransparency ?. [ material . mode ] || material . layer . opacity < 1.0 ;
56
+ if ( transparent != needTransparency ) {
51
57
material . needsUpdate = true ;
52
- transparent = material . layer . opacity < 1.0 ;
58
+ transparent = needTransparency ;
53
59
}
54
60
return transparent ;
55
61
} ,
0 commit comments