I finished all code required for implementing the focusmanager today. 3D Ray/Polygon intersection and all the associated math. This time I was not able use the OpenGL functions, so I had to manage and implement all matrix math required. Testing was a little bit of a struggle, because of my limited experience with inversed matrices and some bugs in the math code. But finally it worked.
The next step for the Paramatrix is to separate the scene-graph code from the OpenGL view implementation to get ready for implementing the focusmanager core.
The focusmanager will take over the 3D orientation control of the user if the mouse-pointer moves over a so called FocusSensors, specified by the application or admin module (admin module is similar to a window manager).
Z-axis, depth control stays in the users hand by using the mouse-wheel, but the orientation will follow the areas the user will touch (and the mouse-cursor will be reprojected, so that the 2D mouse follows the 3D coordinates).
The first application will be my 3D terminal emulator, where each of the terminals is placed in a cylinder. By touching one of the terminals using the mouse cursor, the focus manager will automatically move the camera to the right position using a quaternion SLERP interpolation.
The next step will be the implementation of user interface components, like buttons. Hopefully I don’t need to implement the complete set of 2D components available (treeviews, ...). I am sure, there are better replacements for the 2D widgets in 3D space.
If you have some ideas, please post it here, I have enabled the comment module. Don’t be disappointed if it is not appearing right after your post, it is moderated.
Comments
Masal diyari
Thanks!