Setting the pivot does not change the local origin since babylon 3.2. it mainly changes the center of rotation and scale without changing the position which is still based on the local origin: Set and Use a Pivot - Babylon.js Documentation
Here is a link to the pre 3.2 pages on pivots BabylonJS Guide.
Note for examples on page and for all PG examples to be as described the parameter false must be added as a second parameter to all setPivotPoint methods
This would be the ideal way to do this because solution 2 creates problems:
2) Adding a parent
Parent = pivot
Child = box
The pivot is positioned on the corner of the box
This breaks the rest of my code when dragging the boxes.
Ideally, when dragging the child, the parent should re-position with it also. But currently, from what I understand, the child is re-positioned relative to the parent, and the parent stays still.
Is it possible to auto-position the parent based on the position of the child? Or the relationship would have to change?
Not entirely sure what you are trying to achieve. This https://www.babylonjs-playground.com/#L6GCXU#4 sets the pivot at (1, 1, 1) and setting box position places the pivot at that position.
Basically, I am positioning outwards the squares that represent corners, which the user can interact with. The red squares represent the previous box location, which now I repositioned with the pivot.
In this end it looks like this:
And I just noticed a bug with the reflex angle degrees!