It turns out that implementing a “gizmo” for manipulation of objects in 3D is a fairly difficult task. It’s taken most of my week to get the ‘move’ gizmo working and it’s still not perfect. I’ll also need to add one for rotation and scaling but at least some of the problems are solved.

I think it’s worth the effort though because it makes editing much easier in the 3D view and reduces the need to have multiple viewports. I’d still like to keep the ability to have more than one viewport particularly for editing geometry.

Its easy to get caught up perfecting each feature and then realising how much time it sucks out of the project. Next week I’m going to put some energy into the new “entity” system because it’s the foundation of many new features and although I beleive it will work really well the current state is fairly primitive. Once the new system is in place different “entity” types can be added such as sky, terrain, static meshes, lights and so on. Although I’d like to also have the tools to edit each type (like terrain for example) a good first step is to be able to place them in the scene.