diff --git a/src/diagram/diagramObject.ts b/src/diagram/diagramObject.ts index c0ac9d1..2bd5634 100644 --- a/src/diagram/diagramObject.ts +++ b/src/diagram/diagramObject.ts @@ -328,22 +328,15 @@ export class DiagramObject { return false; } }); - - //this._fromMesh.updateFacetData(); - //this._toMesh.updateFacetData(); - - //const positions = this._fromMesh.getFacetLocalPositions(); - const hit0matrix = hit[0].pickedMesh.computeWorldMatrix(true); - const hit1matrix = hit[1].pickedMesh.computeWorldMatrix(true); - const hitpoint0 = Vector3.TransformCoordinates(hit[0].pickedPoint, hit0matrix); - const hitpoint1 = Vector3.TransformCoordinates(hit[1].pickedPoint, hit1matrix); - const distance = Math.abs(hit[0].pickedPoint.subtract(hit[1].pickedPoint).lengthSquared()); - + if (hit[0].pickedMesh.id === this._to) { + hit.reverse(); + } + const distance = Math.abs(hit[0].pickedPoint.subtract(hit[1].pickedPoint).length()); const fromNormal = hit[0].pickedMesh.getFacetNormal(hit[0].faceId); const toNormal = hit[1].pickedMesh.getFacetNormal(hit[1].faceId); - const c = Curve3.CreateCubicBezier(hit[0].pickedPoint, hit[0].pickedPoint.add(fromNormal.normalize().scale(distance * .2)), - hit[1].pickedPoint.add(toNormal.normalize().scale(distance * .2)), + const c = Curve3.CreateCubicBezier(hit[0].pickedPoint, hit[0].pickedPoint.add(fromNormal.normalize().scale(.21 * distance)), + hit[1].pickedPoint.add(toNormal.normalize().scale(.21 * distance)), hit[1].pickedPoint, 40); const p = c.getPoints().flatMap((point) => { return point.asArray() diff --git a/src/diagram/functions/buildMeshFromDiagramEntity.ts b/src/diagram/functions/buildMeshFromDiagramEntity.ts index fe90170..3b92207 100644 --- a/src/diagram/functions/buildMeshFromDiagramEntity.ts +++ b/src/diagram/functions/buildMeshFromDiagramEntity.ts @@ -68,7 +68,9 @@ function createNewInstanceIfNecessary(entity: DiagramEntity, scene: Scene): Abst colorMode: GreasedLineMeshColorMode.COLOR_MODE_MULTIPLY }, scene); (newMesh as GreasedLineMesh).intersectionThreshold = 2; - (newMesh.material as StandardMaterial).emissiveTexture = AnimatedLineTexture.Texture(); + const material = (newMesh.material as StandardMaterial); + material.emissiveTexture = AnimatedLineTexture.Texture(); + material.disableLighting = true; newMesh.setEnabled(false); break; case DiagramTemplates.BOX: diff --git a/src/util/animatedLineTexture.ts b/src/util/animatedLineTexture.ts index 8e9faca..760bcce 100644 --- a/src/util/animatedLineTexture.ts +++ b/src/util/animatedLineTexture.ts @@ -21,7 +21,7 @@ export class AnimatedLineTexture { this._texture.name = 'blue-white-texture'; this._texture.uScale = 30; DefaultScene.Scene.onBeforeRenderObservable.add(() => { - this._texture.uOffset += 0.05 * DefaultScene.Scene.getAnimationRatio() + this._texture.uOffset -= 0.05 * DefaultScene.Scene.getAnimationRatio() }); }