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]()