I followed tutorial from this blog and want to create a tool like TransformationExtension.
I found that the model I selected was not immediately centered on the cursor and there was a gap when dragging it.
document.onmousemove = (event) => {
if (!event.ctrlKey) return;
let res = this.viewer.impl.hitTest(
event.clientX,
event.clientY,
true,
null,
[this.viewer.model.getModelId()]
);
let pt = null;
if (res) {
pt = res.intersectPoint;
} else {
pt = viewer.impl.intersectGround(event.clientX, event.clientY);
}
let tr = this.selectedModel.getPlacementTransform();
tr.elements[12] = pt.x;
tr.elements[13] = pt.y;
tr.elements[14] = pt.z;
this.selectedModel.setPlacementTransform(tr);
this.viewer.impl.invalidate(true, true, true);
};