MAJOR UPDATE!
Apart from a good number of small bugfixes and some general code clean-up, some exciting new features have found their way into this project
.
First off, as suggested by @Jb_Skaggs, any components of the GUI (toolbars, menu bar, status bar and/or control panels) can now be hidden. Just uncheck the corresponding menu items in Options->Customize->GUI->Show. Ah, but what if you hide the menu bar and want to make further adjustments? No worries, you can Control-right-click in the viewport to bring up a main context menu that contains all menus from the menu bar as submenus (whenever you hide the menu bar, a message dialog will pop up to remind you of this). And there are also hotkeys to hide (Control+Shift+X) or show (Control+Alt+X) all components at once.
Secondly, a couple of very powerful features are snapping and alignment. These are accessible through the same toolbar, as they are somewhat related. These are not only available for objects, but also for the current reference coordinate system and center of transforms.
Snapping is available for objects (when transforming or creating them), for the reference coordinate system and for the center of transforms.
- For transformations, the default is to snap to increments (e.g. angles when rotating), but you can also snap a first point (e.g transform center, object pivot, vertex or polygon center) to a second point.
- When you want to create an object, you can set different snap options for each creation phase. For example, when you create a cone, you might want its origin to snap to a grid point at creation start, but snap to a vertex of some other model when drawing out the base cap. Then you could again snap to a grid point to fix the height (in this case, a different grid plane will automatically be shown to make this possible) and finally you could use an incremental offset to draw out the top cap.
Alignment is available for objects and for the reference coordinate system (represented by the grid).
Itās possible to align to the current view, to another object, to a point/normal on the surface of a model and you can even aim a local object axis at a specific point of another object.
In object creation mode, the construction grid can temporarily be auto-aligned with the surface of a model of your choice; the newly created object will have its pivot at the point you clicked and its local Z-axis will be aligned with the surface normal in that point.
To further assist with object creation, you can now pause any creation phase by going into navigation mode to get a better view and make the rest of the creation process more comfortable.
It is even possible now to skip any (Tab key) or all (Enter key) creation phases entirely, in which case the current defaults for e.g. base size, radius, height etc. will be used to auto-complete the object.
As mentioned above, alignment/snapping can be applied to the reference coordinate system and transform center, but custom transform values can also be set for them using a dialog, and these can be stored and recalled at any time for even more control.
And now for something entirely different.
One of the most useful mesh modelling tools is undoubtedly the ability to extrude polygons.
For those of you who have (im)patiently been waiting for such a tool to appear in this project, I have good news: the polygon extrusion and inset tool has arrived
!
Although the results might not always be what you wanted/expected, Iām still quite pleased with what I have accomplished:
- there do not seem to be any bugs;
- the geometry shader I implemented to preview the results seems to work very well;
- concave polygons and regions are inset correctly;
- holes and self-intersecting borders of selected regions are not a problem.
For the geometry shader, Iām happy to have found a way to prevent it from generating unwanted internal polygons (extruded from diagonals and shared edges); even though itās just a preview, that would have looked really bad.
Here are some pics.
A box with the tool applied to it, twice in succession:
- inset without extrusion;
- negative extrusion (intrusion?) without inset:

A goblet, extruded from a flat cylinder:

Happy modelling
!