From 36aca9df171359473b5b290add75781170985145 Mon Sep 17 00:00:00 2001 From: Jaime Torrealba Date: Sun, 8 Sep 2024 16:49:23 +0100 Subject: [PATCH 1/5] feat(app): 29074 Add removeLevel method for LOD --- docs/api/en/objects/LOD.html | 8 ++++++++ src/objects/LOD.js | 17 +++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/docs/api/en/objects/LOD.html b/docs/api/en/objects/LOD.html index 314420e229fe16..a7f709e1c2697e 100644 --- a/docs/api/en/objects/LOD.html +++ b/docs/api/en/objects/LOD.html @@ -85,6 +85,14 @@

Adds a mesh that will display at a certain distance and greater. Typically the further away the distance, the lower the detail on the mesh.

+

+ [method:this removeLevel]( [param:Float distance]) +

+

+ distance - Distance of the level to delete.

+ + Remove a existing level, based on the distance from the instance. +

[method:Integer getCurrentLevel]()

Get the currently active LOD level. As index of the levels array.

diff --git a/src/objects/LOD.js b/src/objects/LOD.js index 08fbc102222284..a4747964eab49c 100644 --- a/src/objects/LOD.js +++ b/src/objects/LOD.js @@ -74,6 +74,23 @@ class LOD extends Object3D { } + removeLevel( level ) { + + const levels = this.levels; + levels.map( ( _level, index ) => { + + if ( _level.distance === level ) { + + levels.splice( index, 1 ); + + } + + } ); + + return this; + + } + getCurrentLevel() { return this._currentLevel; From 241ad3f28de5e468f73c6cbb01ef98efb8c146fd Mon Sep 17 00:00:00 2001 From: Jaime Torrealba Date: Sun, 8 Sep 2024 17:32:17 +0100 Subject: [PATCH 2/5] fix: rename parameter --- src/objects/LOD.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/objects/LOD.js b/src/objects/LOD.js index a4747964eab49c..00f7f15c5bac95 100644 --- a/src/objects/LOD.js +++ b/src/objects/LOD.js @@ -74,12 +74,12 @@ class LOD extends Object3D { } - removeLevel( level ) { + removeLevel( distance ) { const levels = this.levels; levels.map( ( _level, index ) => { - if ( _level.distance === level ) { + if ( _level.distance === distance ) { levels.splice( index, 1 ); From c64ae13a6fc7258592711f9bcb5f49334cf1f135 Mon Sep 17 00:00:00 2001 From: Jaime Torrealba Date: Mon, 9 Sep 2024 11:30:25 +0100 Subject: [PATCH 3/5] refactor: using for loop --- src/objects/LOD.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/objects/LOD.js b/src/objects/LOD.js index 00f7f15c5bac95..3a17f544344a9b 100644 --- a/src/objects/LOD.js +++ b/src/objects/LOD.js @@ -77,15 +77,16 @@ class LOD extends Object3D { removeLevel( distance ) { const levels = this.levels; - levels.map( ( _level, index ) => { + for ( let i = 0; i < levels.length; i ++ ) { - if ( _level.distance === distance ) { + if ( levels[ i ].distance === distance ) { - levels.splice( index, 1 ); + levels.splice( i, 1 ); + i --; } - } ); + } return this; From 36b286a02fca46b5ae518685729f61a2796ba0fa Mon Sep 17 00:00:00 2001 From: Jaime Torrealba Date: Wed, 11 Sep 2024 20:28:48 +0100 Subject: [PATCH 4/5] refactor: apply suggestions in method structure --- docs/api/en/objects/LOD.html | 2 +- src/objects/LOD.js | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/api/en/objects/LOD.html b/docs/api/en/objects/LOD.html index a7f709e1c2697e..653debfa5d3442 100644 --- a/docs/api/en/objects/LOD.html +++ b/docs/api/en/objects/LOD.html @@ -86,7 +86,7 @@

the further away the distance, the lower the detail on the mesh.

- [method:this removeLevel]( [param:Float distance]) + [method:Boolean removeLevel]( [param:Float distance])

distance - Distance of the level to delete.

diff --git a/src/objects/LOD.js b/src/objects/LOD.js index 3a17f544344a9b..57bdaa7cc4acba 100644 --- a/src/objects/LOD.js +++ b/src/objects/LOD.js @@ -77,18 +77,21 @@ class LOD extends Object3D { removeLevel( distance ) { const levels = this.levels; + for ( let i = 0; i < levels.length; i ++ ) { if ( levels[ i ].distance === distance ) { - levels.splice( i, 1 ); - i --; + const removedElements = levels.splice( i, 1 ); + this.remove( removedElements[ 0 ].object ); + + return true; } } - return this; + return false; } From 59f2e04ad4b4cc7745105cc8b20ad4f34937652b Mon Sep 17 00:00:00 2001 From: Michael Herzog Date: Wed, 11 Sep 2024 22:22:10 +0200 Subject: [PATCH 5/5] Update LOD.html --- docs/api/en/objects/LOD.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/api/en/objects/LOD.html b/docs/api/en/objects/LOD.html index 653debfa5d3442..49aec0cf64560a 100644 --- a/docs/api/en/objects/LOD.html +++ b/docs/api/en/objects/LOD.html @@ -91,7 +91,8 @@

distance - Distance of the level to delete.

- Remove a existing level, based on the distance from the instance. + Removes an existing level, based on the distance from the camera. + Returns `true` when the level has been removed. Otherwise `false`.

[method:Integer getCurrentLevel]()