3dobs TODOs: - [x] Help menu - [x] About window - [x] File logger - [x] Logger should log to file, console and stdout - [x] Move console to be under objects - [x] Don't have the viewport window be scrollable - [x] Object rotation with left click + mouse movement (very rudimentary implementation, but works) - [x] Camera movement with shift + left click + mouse movement - [x] Ability to change active model - [x] Hide inactive models - [x] Scroll zoom - [x] (BUG) Fix some meshes not rotating around their origin point (in actuality, they don't have an origin point and are only rotating around 0.0, 0.0, 0.0) - First thing that comes to mind is just rotating them around the center_point of the mesh (which is the bounding box's center point) - [x] Default material - [x] Toggle box for different zooms - [x] Increase max zoom-out - [x] Slider for model rotation speed - [x] Smaller console area - [ ] Better object rotation - [ ] Ability to change rotation pivot point (needs raycasting and shit) - [x] There might be memory leaks somewhere (tracked it down to russimp, will have to write my own .obj and .stl readers) - [x] Reset object rotation when changing active model - [x] Drag'n'Drop models - [x] Config for consistent settings between restarts (home dir preferred) - [x] (BUG) when removing a model that's not selected and the selected model is not the last, we select the last one - only select the last one if we removed the selected model - [x] Use filename for the root node - [x] Ship shaders directly in the executable - [x] Have the program accept model files as CLI args - [x] Have it so that when an instance of 3dobs is open, any other file associated with 3dobs is opened in the same instance - [x] Toggle for dis/allowing the one instance option - [x] Show how much memory each loaded model is using - [ ] Move the invisible point lights to be around selected object from all sides so it's nicely illuminated - [x] Shortcuts/keybinds window under the 'Help' menu item - [x] Texture support (basic, but it's there) - [ ] Bring back the regular camera movement (can maybe be a switch between them) (for later)