Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
GEF3D Coordinate Systems
In GEF, there usually is one global coordinate system and figure-local coordinate systems to deal with. Generally, mouse coordinates can be translate to the global coordinate system and the figure-local coordinate systems in a simple and straightforward fashion, and users of the framework seldomly have to deal with these issues. In GEF3D however, there are more coordinate systems involved and dealing with those can become cumbersome. This article aims to describe the concepts of coordinate systems and coordinate system conversion in GEF3D.
Coordinate Systems
Screen Coordinates
also called mouse coordinates in GEF or window coordinates in OpenGL
Global World Coordinates
3D coordinates in world space
Inverted Coordinate System
origin seems to be in the upper left / front corner
Figure-local 3D Coordinates
Surface Coordinates
2D coordinates on the surface of a 3D host figure
Figure-local 2D Coordinates
only applies to embedded 2D editors
Coordinate Conversion
- global world coordinates <-> figure-local 3D coordinates
- surface coordinates <-> global world coordinates
- screen coordinates + depth value -> global world coordinates
- screen coordinates -> figure-local 3D coordinates
- screen coordinates -> surface coordinates
Embedded 2D GEF Editors
Make Yourself at Home: Creating a Fake 2D Environment
Coordinate conversion, Virtual picking, modified SWT events