|
|
@@ -494,37 +494,37 @@ class OutlinePass extends Pass {
|
|
|
|
|
|
function VisibilityChangeCallBack( object ) {
|
|
|
|
|
|
- if ( object.isMesh || object.isSprite ) {
|
|
|
+ if ( object.isPoints || object.isLine || object.isLine2 ) {
|
|
|
|
|
|
- // only meshes and sprites are supported by OutlinePass
|
|
|
+ // the visibility of points and lines is always set to false in order to
|
|
|
+ // not affect the outline computation
|
|
|
|
|
|
- if ( ! selectionCache.has( object ) ) {
|
|
|
+ if ( bVisible === true ) {
|
|
|
|
|
|
- const visibility = object.visible;
|
|
|
+ object.visible = visibilityCache.get( object ); // restore
|
|
|
|
|
|
- if ( bVisible === false || visibilityCache.get( object ) === true ) {
|
|
|
+ } else {
|
|
|
|
|
|
- object.visible = bVisible;
|
|
|
+ visibilityCache.set( object, object.visible );
|
|
|
+ object.visible = bVisible;
|
|
|
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
- visibilityCache.set( object, visibility );
|
|
|
+ } else if ( object.isMesh || object.isSprite) {
|
|
|
|
|
|
- }
|
|
|
+ // only meshes and sprites are supported by OutlinePass
|
|
|
|
|
|
- } else if ( object.isPoints || object.isLine ) {
|
|
|
+ if ( ! selectionCache.has( object ) ) {
|
|
|
|
|
|
- // the visibility of points and lines is always set to false in order to
|
|
|
- // not affect the outline computation
|
|
|
+ const visibility = object.visible;
|
|
|
|
|
|
- if ( bVisible === true ) {
|
|
|
+ if ( bVisible === false || visibilityCache.get( object ) === true ) {
|
|
|
|
|
|
- object.visible = visibilityCache.get( object ); // restore
|
|
|
+ object.visible = bVisible;
|
|
|
|
|
|
- } else {
|
|
|
+ }
|
|
|
|
|
|
- visibilityCache.set( object, object.visible );
|
|
|
- object.visible = bVisible;
|
|
|
+ visibilityCache.set( object, visibility );
|
|
|
|
|
|
}
|
|
|
|