Browse Source

InstancePointManager / LineSegmentManager 重构

master
修宁 6 months ago
parent
commit
07003933da
  1. 12
      src/core/controls/DragControl.ts
  2. 17
      src/core/manager/EntityManager.ts

12
src/core/controls/DragControl.ts

@ -164,11 +164,17 @@ export default class DragControl implements IControls {
*
*/
private getMousePosition(clientX: number, clientY: number): THREE.Vector2 {
const rect = this.domElement.getBoundingClientRect()
// const rect = this.domElement.getBoundingClientRect()
// return new THREE.Vector2(
// ((clientX - rect.left) / rect.width) * 2 - 1,
// ((clientY - rect.top) / rect.height) * -2 + 1
// )
return new THREE.Vector2(
((clientX - rect.left) / rect.width) * 2 - 1,
((clientY - rect.top) / rect.height) * -2 + 1
clientX / this.viewport.renderer.domElement.offsetWidth * 2 - 1,
(clientY / this.viewport.renderer.domElement.offsetHeight * -2 + 1)
)
// _point.x = e.offsetX / this.renderer.domElement.offsetWidth
// _point.y = e.offsetY / this.renderer.domElement.offsetHeight
}
/**

17
src/core/manager/EntityManager.ts

@ -462,11 +462,18 @@ export default class EntityManager {
getObjectByCanvasMouse(event: MouseEvent): Object3DLike[] {
const _domElement = this.viewport.renderer.domElement
const rect = _domElement.getBoundingClientRect()
const _pointer = new Vector2()
_pointer.x = (event.clientX - rect.left) / rect.width * 2 - 1
_pointer.y = -(event.clientY - rect.top) / rect.height * 2 + 1
this.viewport.raycaster.setFromCamera(_pointer, this.viewport.camera)
// const rect = _domElement.getBoundingClientRect()
// const _pointer = new Vector2()
// _pointer.x = (event.clientX - rect.left) / rect.width * 2 - 1
// _pointer.y = -(event.clientY - rect.top) / rect.height * 2 + 1
const _point = new THREE.Vector2()
_point.x = event.offsetX / _domElement.offsetWidth
_point.y = event.offsetY / _domElement.offsetHeight
this.viewport.raycaster.setFromCamera(_point, this.viewport.camera)
const _intersections = this.viewport.raycaster.intersectObjects(this._selectableObjects, true)
if (!_intersections || _intersections.length === 0) {

Loading…
Cancel
Save