@@ -96,6 +96,7 @@ class CSS2DRenderer {
96
96
_viewMatrix . copy ( camera . matrixWorldInverse ) ;
97
97
_viewProjectionMatrix . multiplyMatrices ( camera . projectionMatrix , _viewMatrix ) ;
98
98
99
+ hideObject ( scene ) ;
99
100
renderObject ( scene , scene , camera ) ;
100
101
zOrder ( scene ) ;
101
102
@@ -114,22 +115,36 @@ class CSS2DRenderer {
114
115
115
116
} ;
116
117
118
+ function hideObject ( object ) {
119
+
120
+ if ( object . isCSS2DObject ) object . element . style . display = 'none' ;
121
+
122
+ for ( let i = 0 , l = object . children . length ; i < l ; i ++ ) {
123
+
124
+ hideObject ( object . children [ i ] ) ;
125
+
126
+ }
127
+ }
128
+
117
129
function renderObject ( object , scene , camera ) {
118
130
131
+ if ( object . visible === false ) return ;
132
+
119
133
if ( object . isCSS2DObject ) {
120
134
121
135
_vector . setFromMatrixPosition ( object . matrixWorld ) ;
122
136
_vector . applyMatrix4 ( _viewProjectionMatrix ) ;
123
137
124
- const visible = ( object . visible === true ) && ( _vector . z >= - 1 && _vector . z <= 1 ) && ( object . layers . test ( camera . layers ) === true ) ;
125
- object . element . style . display = ( visible === true ) ? '' : 'none' ;
138
+ const visible = ( _vector . z >= - 1 && _vector . z <= 1 ) && ( object . layers . test ( camera . layers ) === true ) ;
126
139
127
140
if ( visible === true ) {
128
141
129
142
object . onBeforeRender ( _this , scene , camera ) ;
130
143
131
144
const element = object . element ;
132
145
146
+ element . style . display = '' ;
147
+
133
148
element . style . transform = 'translate(' + ( - 100 * object . center . x ) + '%,' + ( - 100 * object . center . y ) + '%)' + 'translate(' + ( _vector . x * _widthHalf + _widthHalf ) + 'px,' + ( - _vector . y * _heightHalf + _heightHalf ) + 'px)' ;
134
149
135
150
if ( element . parentNode !== domElement ) {
0 commit comments