Background: I'm working on an engine involving manipulating stuffs across real-world semantic maps. Since the map is really large (and the unit length of the engine is different from industrial game engines like UE or unity), sometimes when I zoom out and intend to move something, the arrow/moving plane will shrink until invisible, which makes it impossible to move things around. Same thing happens when translation values become really large (say, 10,000).
Solution: I added up an option, CONSTANCY, which indicates the display mode of gizmo itself. When it's set to SCALE_CONST, the arrow length and plane length will remain world-space constant (becoming larger/smaller when zooming in or not), and it's the default value for added argument - which means that no modification required for existing codes. When it's set to DISPLAY_CONST however, the arrow/plane will remain screen-space constant (no change when zooming in or out).
TODOs: I've done most works for translation and scaling. Rotation is still WIP.
Background: I'm working on an engine involving manipulating stuffs across real-world semantic maps. Since the map is really large (and the unit length of the engine is different from industrial game engines like UE or unity), sometimes when I zoom out and intend to move something, the arrow/moving plane will shrink until invisible, which makes it impossible to move things around. Same thing happens when translation values become really large (say, 10,000).
Solution: I added up an option, CONSTANCY, which indicates the display mode of gizmo itself. When it's set to SCALE_CONST, the arrow length and plane length will remain world-space constant (becoming larger/smaller when zooming in or not), and it's the default value for added argument - which means that no modification required for existing codes. When it's set to DISPLAY_CONST however, the arrow/plane will remain screen-space constant (no change when zooming in or out).
TODOs: I've done most works for translation and scaling. Rotation is still WIP.