Skip to content

Commit

Permalink
semi implementation of decreasing intensity
Browse files Browse the repository at this point in the history
  • Loading branch information
Tomas1337 committed Aug 8, 2024
1 parent cfd9534 commit a84afdb
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 28 deletions.
16 changes: 4 additions & 12 deletions source/website/erase.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ export class EraserTool extends HighlightTool {
constructor(viewer, settings) {
super(viewer, settings);
this.highlightColor = new THREE.Color('rgba(0, 0, 0, 0)');
this.highlightMeshes = HighlightTool.sharedHighlightMeshes;
}

SetActive(isActive) {
Expand Down Expand Up @@ -57,7 +56,7 @@ export class EraserTool extends HighlightTool {

// Only remove highlights if the mouse button is down
if (this.isMouseDown) {
this.RemoveHighlight(intersection);
this.RemoveHighlight (intersection);
this.viewer.Render();
}
}
Expand All @@ -66,9 +65,8 @@ export class EraserTool extends HighlightTool {
let intersection = this.viewer.GetMeshIntersectionUnderMouse(IntersectionMode.MeshOnly, mouseCoordinates);
if (intersection === null) {
return;
}

this.RemoveHighlight(intersection);
}
this.RemoveHighlight (intersection);
this.viewer.Render();
}

Expand Down Expand Up @@ -132,11 +130,5 @@ export class EraserTool extends HighlightTool {
this.Resize();
}

ClearHighlight() {
HighlightTool.sharedHighlightMeshes.forEach((mesh) => {
this.viewer.RemoveExtraObject(mesh);
});
HighlightTool.sharedHighlightMeshes = [];
this.viewer.Render();
}

}
35 changes: 19 additions & 16 deletions source/website/highlighttool.js
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,6 @@ export class HighlightTool {
overlapping.push(mesh);
}
}

return overlapping;
}

Expand All @@ -301,25 +300,29 @@ export class HighlightTool {
}

let { id: uniqueId } = this.GenerateHighlightMesh(intersection);

let meshToRemove = HighlightTool.sharedHighlightMeshes.find(item => item.id === uniqueId);
let existingMesh = this.FindExistingMeshById(uniqueId);
let currentIntensity = this.intensityMap.get(uniqueId) || 0;

if (meshToRemove) {
this.viewer.RemoveExtraObject(meshToRemove.mesh);

// Update highlightMeshes array
HighlightTool.sharedHighlightMeshes = HighlightTool.sharedHighlightMeshes.filter((item) => item.id !== uniqueId);

// Dispose of the highlight mesh
this.DisposeHighlightMesh(meshToRemove.mesh);

// Update overlappingMeshes
this.overlappingMeshes.delete(uniqueId);
for (let [key, value] of this.overlappingMeshes) {
let filteredValue = value.filter(item => item.id !== uniqueId);
this.overlappingMeshes.set(key, filteredValue);
if (currentIntensity >= 3) {
// Decrease intensity for existing mesh
let newIntensity = Math.max(currentIntensity - (this.intensityIncreaseRate * 0.7), 0);
this.intensityMap.set(uniqueId, newIntensity);
this.UpdateMeshColor(existingMesh);

} else {
this.viewer.RemoveExtraObject(meshToRemove.mesh);
HighlightTool.sharedHighlightMeshes = HighlightTool.sharedHighlightMeshes.filter((item) => item.id !== uniqueId);
this.DisposeHighlightMesh(meshToRemove.mesh);

// Update overlappingMeshes
this.overlappingMeshes.delete(uniqueId);
for (let [key, value] of this.overlappingMeshes) {
let filteredValue = value.filter(item => item.id !== uniqueId);
this.overlappingMeshes.set(key, filteredValue);
}
}

this.viewer.Render();
}
}
Expand Down

0 comments on commit a84afdb

Please sign in to comment.