three-render-objects
Advanced tools
Comparing version 1.0.3 to 1.0.4
@@ -102,12 +102,15 @@ 'use strict'; | ||
// Update tooltip and trigger onHover events | ||
var raycaster = new three$1.Raycaster(); | ||
raycaster.linePrecision = state.lineHoverPrecision; | ||
var topObject = null; | ||
if (!state.tbDragging) { | ||
var raycaster = new three$1.Raycaster(); | ||
raycaster.linePrecision = state.lineHoverPrecision; | ||
raycaster.setFromCamera(state.mousePos, state.camera); | ||
var intersects = raycaster.intersectObjects(state.objects, true).map(function (_ref) { | ||
var object = _ref.object; | ||
return object; | ||
}).sort(state.hoverOrderComparator); | ||
raycaster.setFromCamera(state.mousePos, state.camera); | ||
var intersects = raycaster.intersectObjects(state.objects, true).map(function (_ref) { | ||
var object = _ref.object; | ||
return object; | ||
}).sort(state.hoverOrderComparator); | ||
var topObject = intersects.length ? intersects[0] : null; | ||
topObject = !state.tbDragging && intersects.length ? intersects[0] : null; | ||
} | ||
@@ -251,2 +254,7 @@ if (topObject !== state.hoverObj) { | ||
state.container.addEventListener("click", function (ev) { | ||
if (state.ignoreOneClick) { | ||
state.ignoreOneClick = false; // because of tbControls end event | ||
return; | ||
} | ||
if (state.hoverObj) { | ||
@@ -265,2 +273,15 @@ state.onClick(state.hoverObj); | ||
state.tbControls.maxDistance = 50000; | ||
state.tbControls.addEventListener('start', function () { | ||
return state.tbEngaged = true; | ||
}); | ||
state.tbControls.addEventListener('change', function () { | ||
if (state.tbEngaged) { | ||
state.tbDragging = true; | ||
state.ignoreOneClick = true; | ||
} | ||
}); | ||
state.tbControls.addEventListener('end', function () { | ||
state.tbEngaged = false; | ||
state.tbDragging = false; | ||
}); | ||
@@ -267,0 +288,0 @@ state.renderer.setSize(state.width, state.height); |
@@ -98,12 +98,15 @@ import { WebGLRenderer, Scene, PerspectiveCamera, Raycaster, Vector2, Vector3, Color } from 'three'; | ||
// Update tooltip and trigger onHover events | ||
var raycaster = new three.Raycaster(); | ||
raycaster.linePrecision = state.lineHoverPrecision; | ||
var topObject = null; | ||
if (!state.tbDragging) { | ||
var raycaster = new three.Raycaster(); | ||
raycaster.linePrecision = state.lineHoverPrecision; | ||
raycaster.setFromCamera(state.mousePos, state.camera); | ||
var intersects = raycaster.intersectObjects(state.objects, true).map(function (_ref) { | ||
var object = _ref.object; | ||
return object; | ||
}).sort(state.hoverOrderComparator); | ||
raycaster.setFromCamera(state.mousePos, state.camera); | ||
var intersects = raycaster.intersectObjects(state.objects, true).map(function (_ref) { | ||
var object = _ref.object; | ||
return object; | ||
}).sort(state.hoverOrderComparator); | ||
var topObject = intersects.length ? intersects[0] : null; | ||
topObject = !state.tbDragging && intersects.length ? intersects[0] : null; | ||
} | ||
@@ -247,2 +250,7 @@ if (topObject !== state.hoverObj) { | ||
state.container.addEventListener("click", function (ev) { | ||
if (state.ignoreOneClick) { | ||
state.ignoreOneClick = false; // because of tbControls end event | ||
return; | ||
} | ||
if (state.hoverObj) { | ||
@@ -261,2 +269,15 @@ state.onClick(state.hoverObj); | ||
state.tbControls.maxDistance = 50000; | ||
state.tbControls.addEventListener('start', function () { | ||
return state.tbEngaged = true; | ||
}); | ||
state.tbControls.addEventListener('change', function () { | ||
if (state.tbEngaged) { | ||
state.tbDragging = true; | ||
state.ignoreOneClick = true; | ||
} | ||
}); | ||
state.tbControls.addEventListener('end', function () { | ||
state.tbEngaged = false; | ||
state.tbDragging = false; | ||
}); | ||
@@ -263,0 +284,0 @@ state.renderer.setSize(state.width, state.height); |
{ | ||
"name": "three-render-objects", | ||
"version": "1.0.3", | ||
"version": "1.0.4", | ||
"description": "Easy way to render ThreeJS objects with built-in interaction defaults", | ||
@@ -5,0 +5,0 @@ "unpkg": "dist/three-render-objects.min.js", |
@@ -67,11 +67,14 @@ import { | ||
// Update tooltip and trigger onHover events | ||
const raycaster = new three.Raycaster(); | ||
raycaster.linePrecision = state.lineHoverPrecision; | ||
let topObject = null; | ||
if (!state.tbDragging) { | ||
const raycaster = new three.Raycaster(); | ||
raycaster.linePrecision = state.lineHoverPrecision; | ||
raycaster.setFromCamera(state.mousePos, state.camera); | ||
const intersects = raycaster.intersectObjects(state.objects, true) | ||
.map(({ object }) => object) | ||
.sort(state.hoverOrderComparator); | ||
raycaster.setFromCamera(state.mousePos, state.camera); | ||
const intersects = raycaster.intersectObjects(state.objects, true) | ||
.map(({ object }) => object) | ||
.sort(state.hoverOrderComparator); | ||
const topObject = intersects.length ? intersects[0] : null; | ||
topObject = (!state.tbDragging && intersects.length) ? intersects[0] : null; | ||
} | ||
@@ -201,5 +204,10 @@ if (topObject !== state.hoverObj) { | ||
state.container.addEventListener("click", ev => { | ||
if (state.hoverObj) { | ||
if (state.ignoreOneClick) { | ||
state.ignoreOneClick = false; // because of tbControls end event | ||
return; | ||
} | ||
if (state.hoverObj) { | ||
state.onClick(state.hoverObj); | ||
} | ||
} | ||
}, false); | ||
@@ -215,2 +223,13 @@ | ||
state.tbControls.maxDistance = 50000; | ||
state.tbControls.addEventListener('start', () => state.tbEngaged = true); | ||
state.tbControls.addEventListener('change', () => { | ||
if (state.tbEngaged) { | ||
state.tbDragging = true; | ||
state.ignoreOneClick = true; | ||
} | ||
}); | ||
state.tbControls.addEventListener('end', () => { | ||
state.tbEngaged = false; | ||
state.tbDragging = false; | ||
}); | ||
@@ -217,0 +236,0 @@ state.renderer.setSize(state.width, state.height); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
1754163
10190