working click 1 snap
parent
7176bee65d
commit
33f572e3c2
|
@ -246,11 +246,14 @@ class Sketch {
|
||||||
drawClear.call(this)
|
drawClear.call(this)
|
||||||
}
|
}
|
||||||
this.mode = "line"
|
this.mode = "line"
|
||||||
|
this.snap = true
|
||||||
this.canvas.addEventListener('pointerdown', this.drawOnClick1, { once: true })
|
this.canvas.addEventListener('pointerdown', this.drawOnClick1, { once: true })
|
||||||
break;
|
break;
|
||||||
case 'a':
|
case 'a':
|
||||||
this.mode = "arc"
|
this.mode = "arc"
|
||||||
|
this.snap = true
|
||||||
this.canvas.addEventListener('pointerdown', this.drawOnClick1, { once: true })
|
this.canvas.addEventListener('pointerdown', this.drawOnClick1, { once: true })
|
||||||
|
// this.canvas.addEventListener('pointerdown', this.drawOnClick1, { once: true })
|
||||||
break;
|
break;
|
||||||
case 'p':
|
case 'p':
|
||||||
this.mode = "point"
|
this.mode = "point"
|
||||||
|
|
|
@ -31,11 +31,41 @@ export function drawOnClick1(e) {
|
||||||
p1.userData.constraints.push(this.c_id)
|
p1.userData.constraints.push(this.c_id)
|
||||||
this.obj3d.children[this.obj3d.children.length - 2].userData.constraints.push(this.c_id)
|
this.obj3d.children[this.obj3d.children.length - 2].userData.constraints.push(this.c_id)
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if (this.hovered.length) {
|
||||||
|
|
||||||
|
this.constraints.set(++this.c_id, //??? why incremennt before not after
|
||||||
|
[
|
||||||
|
'points_coincident', -1,
|
||||||
|
[this.hovered[this.hovered.length - 1].name, this.toPush[0].name, -1, -1]
|
||||||
|
]
|
||||||
|
)
|
||||||
|
this.updateOtherBuffers()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} else if (this.mode == "arc") {
|
} else if (this.mode == "arc") {
|
||||||
this.toPush = drawArc(mouseLoc)
|
this.toPush = drawArc(mouseLoc)
|
||||||
|
|
||||||
|
if (this.hovered.length) {
|
||||||
|
this.constraints.set(++this.c_id, //??? why incremennt before not after
|
||||||
|
[
|
||||||
|
'points_coincident', -1,
|
||||||
|
[this.hovered[this.hovered.length - 1].name, this.toPush[0].name, -1, -1]
|
||||||
|
]
|
||||||
|
)
|
||||||
|
this.updateOtherBuffers()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} else if (this.mode == 'point') {
|
} else if (this.mode == 'point') {
|
||||||
this.toPush = drawPoint(mouseLoc)
|
this.toPush = drawPoint(mouseLoc)
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,6 @@ let ptLoc
|
||||||
export function onHover(e) {
|
export function onHover(e) {
|
||||||
if ((this.mode && this.mode != 'dimension' && !this.snap) || e.buttons) return
|
if ((this.mode && this.mode != 'dimension' && !this.snap) || e.buttons) return
|
||||||
// if (( this.mode && this.mode!='dimension') || e.buttons) return
|
// if (( this.mode && this.mode!='dimension') || e.buttons) return
|
||||||
// console.log('here')
|
|
||||||
|
|
||||||
raycaster.setFromCamera(
|
raycaster.setFromCamera(
|
||||||
new THREE.Vector2(
|
new THREE.Vector2(
|
||||||
|
@ -35,6 +34,7 @@ export function onHover(e) {
|
||||||
|
|
||||||
const thresh = this.snap ? 1 : 0.0001
|
const thresh = this.snap ? 1 : 0.0001
|
||||||
if (hoverPts.length) {
|
if (hoverPts.length) {
|
||||||
|
console.log('here', hoverPts)
|
||||||
let minDist = Infinity;
|
let minDist = Infinity;
|
||||||
for (let i = 0; i < hoverPts.length; i++) {
|
for (let i = 0; i < hoverPts.length; i++) {
|
||||||
if (!hoverPts[i].distanceToRay) continue;
|
if (!hoverPts[i].distanceToRay) continue;
|
||||||
|
@ -47,7 +47,7 @@ export function onHover(e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!idx.length) {
|
if (!idx.length && !this.snap) {
|
||||||
idx.push(0)
|
idx.push(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,9 +70,9 @@ export function onHover(e) {
|
||||||
for (let x = 0; x < idx.length; x++) {
|
for (let x = 0; x < idx.length; x++) {
|
||||||
let obj = hoverPts[idx[x]].object
|
let obj = hoverPts[idx[x]].object
|
||||||
|
|
||||||
if (!this.snap || (this.snap && x < idx.length-1) ) {
|
// if (!this.snap || (this.snap && x < idx.length-1) ) {
|
||||||
setHover(obj, 1, false)
|
setHover(obj, 1, false)
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (this.obj3d.userData.type != 'sketch' && obj.userData.type == 'point') {
|
if (this.obj3d.userData.type != 'sketch' && obj.userData.type == 'point') {
|
||||||
ptLoc = obj.geometry.attributes.position.array
|
ptLoc = obj.geometry.attributes.position.array
|
||||||
|
|
Loading…
Reference in New Issue