Hi @trevordev,
I found, I think, a bug to recover the change of position / rotation / scaling with the observable DragStart and DragEnd which retrieves the same position value for example.
If I start with DragStart, I should recover the position of an object at the start, that's OK, but when we move and release (DragEnd) the position of the object should have changed, but it is the same as with DragStart and yet the object was moved on the stage, but not in the recoverable value in the observable.
A PG is better than a long explanation: (move the X axis (red) and look at the values in the console. the x position is the same as dragStart and dradEnd)
https://www.babylonjs-playground.com/#4TBMBR#8
PS: Using e.dragPlanePoint.x it gets the X position of the gizmo pointer and not the pivot object select (maybe we could get the object selected)
I find it very repetitive to use an observable for each axis. This gives :
This would be shorter :
gizmoManager.gizmos.positionGizmo.Gizmo.dragBehavior.onDragStartObservable.add((e)=>{
console.log(e);
});
gizmoManager.gizmos.positionGizmo.Gizmo.dragBehavior.onDragEndObservable.add((e)=>{
console.log(e);
});
than that :
gizmoManager.gizmos.positionGizmo.xGizmo.dragBehavior.onDragStartObservable.add((e)=>{
console.log(e);
});
gizmoManager.gizmos.positionGizmo.yGizmo.dragBehavior.onDragStartObservable.add((e)=>{
console.log(e);
});
gizmoManager.gizmos.positionGizmo.zGizmo.dragBehavior.onDragStartObservable.add((e)=>{
console.log(e);
});
gizmoManager.gizmos.positionGizmo.xGizmo.dragBehavior.onDragEndObservable.add((e)=>{
console.log(e);
});
gizmoManager.gizmos.positionGizmo.yGizmo.dragBehavior.onDragEndObservable.add((e)=>{
console.log(e);
});
gizmoManager.gizmos.positionGizmo.zGizmo.dragBehavior.onDragEndObservable.add((e)=>{
console.log(e);
});