Refactor, make selecting elements from the model select the corresponding line from the editor as well default tip

use a parameter to avoid temporarily changing member variables

Made library_role_e an enum class

Use QFileInfo to represent paths

Circular primitive type is now an enum class

remove now unneeded type alias

BasicShader is no longer a class

Split GL preferences that affect GL build to a new build preferences structure, modifying that requires rebuild, modifying render preferences does not

Simplify signature of updateRenderPreferences

More refactor and renaming

Move bezier curve to its own file

Winding is now an enum class winding_e

rename some functions

Grid scaling buttons now work

isConvex renamed to quadrilateral_convexity, refactor, now returns an enum instead of bool

Simplify signature of openModelFromPath

Also connect up the "Delete" action

Also connect up "Select all"

Add undo, redo, cut, copy and paste actions to MainWindow which pass onto the editor widget

I forgot to add files again... this time it's modelsubwindow.h

Removed unused code

Extracted the state of the program into a MainState structure, and extracted local functions of main() into static functions.

Move some recent file handling to MainWindow

`PartRenderer::renderVao` no longer throws if bad array class is given, this is now checked on compile time

The renderer now centers on the grid origin, not the part origin

Hopefully fixed all problems with determining polygon winding

Add settings import and export

Made editor font configurable

Move the about dialog to MainWindow. The hack to retrieve GL extensions is made a bit cleaner

Readd the MainWindow class and renderstyle button handling to it

Use explicit captures in main

Rename forModel -> forEachModel

Add missing 'static' keywords and deleted unused code

Opening recently opened files works again now

Rename ColorButtonPlugin -> ColorEditPlugin

Rename colorbutton.cpp -> coloredit.cpp

Rename ColorButton -> ColorEdit

Change color edit coloring to use only stylesheets to colorise the line edit only

delete commented out code

Changed color button to a line edit+button combination

Fix BFC formatting not working due to being evaluated after comment format

Fix line type 0 format regular expression

Save settings as soon as they are changed, Cancel and Reset buttons revert changes

Merge commit

Add SIG macro

Delete unused code

Remove debug code

Draw mode and make unofficial tools now work again

Fix crashing

Convert text model to CR+LF when saving

Experiment to delete the Model class and rely solely on text documents

Only enable the text editor when having a model open

Add basic syntax highlighting

Delete object editor

fix some issues like subfile references not showing up properly

Replace item view with a text editor

Add copy action

Add missing 0 BFC INVERTNEXT when writing out subfile references

minor fix in main

Make the extrusion axis only visible when extruding

Fix normal of the plane used to find cylinder height

Reduce edittools.cpp further

Fix polygonize not finding the normal properly

Cleanup polygonize a bit

Extract the triangulation and triangle merging code into a new source file and clean it up somewhat

Reduce indent level

Let's try to keep the amount of indents in check...

Allow make a cylinder even if the world position is not on grid

Improve preview of cylinder extrusion

Added rudimentary cylinder extrusion into circle tool.

Improve click handling

Fix right click to delete not really working properly

Use different cursors depending on edit mode

Simplify some code

Fixed ModelId being used to identify both models and elements, added ElementId to identify elements

add comments in colors.h

simplify a bit

Enable drawing clockwise shapes despite mapbox::earcut rewinding them

Add support for BFC CERTIFY statements

minor updates to main window ui

Add select all

Enable cotire again

Move earcut.h outside src/ directory

Fix build warnings, size_type of QVector changes from Qt5 to Qt6 so we need an alias for it

Remove functional.h

oops, that stuff isn't meant to be there yet

Remove ring.h

Remove dead code

cleanup version.h

Reformat about.ui a bit

Add OpenGL information to about page

Add GLM version string to about page

Let's bring GLEW back after all

Fix picking and rendering of selected colors

Work around a Qt bug involving the rendering behavior of the first created sub window

Add tile and cascade subwindows actions

Add scroll bars to the mdi area

Disable language changing for now (translations won't go into 1.0)

Don't create more than one settings editor

Move app icon definition to main.cpp

Make settings editor scrollable

Make settings editor a sub window instead of a dialog

- Add CMake build type to about page and window title

Fix build

Add build system information to the about dialog

Make editing tools disabled until a document is selected

Add missing third party acknowledgements

Add some sort of basic application icon

Add missing file

Show current subwindow title in main window title

Adjust date string

Sort out versions more, add about page

One more hardcoded name

Fix qrc path in mainwindow.ui

Further use APPNAME macro

Define application name and version in CMakeLists

rename ldforge.qrc -> resources.qrc

use project name more in cmakelists

Fix build warnings

Convert all includes to be relative to project root directory. Files that cannot be found in this manner use angle brackets.

Move render layer files to new src/layers/ directory

Add action to make a model unofficial (modifies the !LDRAW_ORG line)

pi is no longer a template

Fix bad use of QOpenGLFunctions

- Made it build under Qt6

Add widgets to object editor

Fix appearance of ColorButton

Move color button into widgets lib

Add x, y, z properties to VectorInput

Rename Vec3Editor to VectorInput

Make LDForge widgets visible in Qt Designer

Move some widgets into a static library

Add object editor into main

I felt that the compiler was too kind to me, so I enabled a big pile of warnings

Done some work on object editor

Fix invertnext not working with circular primitives

fix cylinders being possibly rendered inside out

Use crosshair cursor inside the renderer

improve text rendering

a bit of refactor in mapbox::util::nth

Make the grid black on bright backgrounds

Substitute circular primitives in during file parsing

fix typo

some improvements to dock widget handling

removed some newlines

Fix pick scene rendering: we cannot use glReadPixels when using multisampling, so we need to render the pick scene to a separate frame buffer

Add an option to log opengl messages

Made message log a model

Add a basic message log

Readd axis labels, fix antialiasing

fix various things

Add base code for circular primitives

Add wireframe button

rename LibraryManager -> LibrariesModel

Add About Qt menu entry

refactor

Render line segments during draw mode nicer

remove old todo

Fix crash involving polygon being too empty

GCC doesn't like me using QStringLiteral here

Use Mapbox's ear clipping algorithm to handle drawing any simple polygon

Edit tools: get rid of the preview polygon and render the result-to-be

simplify settings further

Further reduce settings.h

fix comment

Replace config collector with a simpler system

reimplement EditTools as a render layer

Reworked grid program into a render layer

Reimplement the axes program as a layer that can be added to PartRenderer

begin refactor of gl side

Rewrite prune to use graphs rather than O(n²) searches

Rewrite dependency loading

Now builds again

more refactoring, dosn't build yet

remove more dead code

Add model icons back into the list view

well that's embarrassing

More refactor, merged main.h, basics.h and utility.h into one header file basics.h and removed plenty of unused code

Refactor colors.cpp/.h

Concentrate model editing into one coroutine inside main()

Move editing modes tool bar, tool options widget stack and model list view into the main window

Replaced the tab widget with an MDI area

Continue giant refactor

Giant refactor

Fix pick() picking from weird places on the screen with high DPI scaling

fix up things and remove unnecessary code

move drawState to Document

delete unneeded things

added a missing const

simplify further

Simplify PolygonCache

remove dead code

made editing tools not a polymorphic class tree

add missing file

cleanup, gl::Compiler changed to gl::ModelShaders

more work on circle tool + cleanup

work on circle tool

work on circle tool

Added line path tool

Add missing svg icon

- Add editors for string and bool properties

add ui file to object editor

fix build

Handle properties in a generic manner in the object editor

merge

fix saving

Show type of object in the object editor

Simplify parsing (removed header parsing)

add grid actions

show unnamed tabs as "<unnamed>" in the tab list

Fix performance issues in Model::find

Render vertices as spheres

add missing file

Added a toggle for setting whether axes are drawn

Added the delete action

Draw tool now renders the winding of the new polygon

the grid now has less lines

Fix rendering of cursor coordinates on bright background

fixed the grid not being black on startup if settings has bright background color

Render draw tool preview as a line when we only have 2 points

Add icons for tools

only render svg to png if the png does not exist

Icons update

Add document closing

fix crash when loading a file

Add icons from ionicons

improve grid rendering

render the grid with lines

improve rendering of the grid

add missing files

Renamed modeleditcontext.cpp -> modeleditor.cpp

Major refactoring

Clean up Model

extract polygon cache out of Model

work on edit history

reworking

update

remove outdated comment

Use QSaveFile to save the file more safely

Fix handling of "BFC INVERTNEXT" with multiple inner whitespaces

Fix memory corruption involving document tools.

Update document tab label after saving

Saving works now

work on saving

Document and refactor colors.cpp and colors.h

Document model.h

Add documentation to model.cpp

Work on edit history

Merge commit

Add remaining serialize methods

Begin work on edit history

Begin work with serialization

add missing change to document.cpp

Add missing changes to canvas.h

Add documentation

Moved automatic grid adjusting into a new action

added a simple matrix transformation tool

moved ObjectEditor under SelectTool

Move tools under Document instead of MainWindow

esc with draw mode now clears the polygon

refactor

Show concave polygons as red while drawing

added right click support for draw tool

rework rendering of vertices

update

Add vertex rendering

Add vertex map

refactor

fix too long lines

added build-time test for line length

refactor

use QT_NO_KEYWORDS

Draw tool actually adds objects now

stuff

replaced preview layers in favor of overpainting callback

work on editing tools

Move selection logic into select tool

work on draw preview

added preview layer code and fixed build warnings

Add connections

update

stuff

added references to items()

fix build

disable cotire because it's messing up Qt Creator's Clang code model for me

added translations to dependencies in CMakeLists... maybe that's the source of the trouble with translations getting emptied

work on tools

added tool base code

asioita

added a color select dialog

fix warnings

merge commit

add comments

remove dependency on glut, fixes

object editing

finetuning in multiplyfactordialog

added PolygonObject and refactored away a lot of boilerplate

PolygonObjectEditor can now modify the object properly

added a matrix editing widget

fix

refactor, added splitter

added doublespinbox

object editor widgets start to form up

simplification

added a render style for pick scene

fixed signed vs unsigned nonsense in gl::Compiler::idFromColor

added some meta stuff, simplified quadrilateral splitting and tested it

finished splitQuadrilateral theoretically (untested)

document AbstractBasicShaderProgram

negative axes are now drawn in darker color

ldraw::Id is now templated for extra type safety

stretch the grid quadrilateral less, hopefully this makes fragments small enough even on integrated

show axis directions on the screen

Added axes rendering

begin work on axes program

default to XZ

grid autorotation

added a method to find out if the view is perpendicular to grid

document the grid snapping transformations

grid snapping now also works with transformed grids

omg functional programming

update locales

moved GridProgram to Canvas

fixed warning

fixed testing of whether screenToModelCoordinates's result value is behind the camera

use glm::project instead of figuring out the conversion manually...

use glm::unProject to implement screenToModelCoordinates

PartRenderer::modelToScreenCoordinates FINALLY WORKS

grid stuff

made the grid look nicer

added grid program

avoid having the null id in the selection

selection works now

fix some warnings

wrote the id color in terms of the id value in the shader now that I can get the id to the shader properly

added selection highlighting

picking works now

added the pick scene

added configurable line anti-aliasing

added configurable line thickness

made edges white in dark backgrounds

made configurationoptions.txt visible in Qt Creator

added automated configuration collection

added configurable background color

Main color is now configurable

translations

wired renderstyle up

added render style storage

renamed the linetypes namespace to ldraw namespace and added more structures to it

added some sort of lighting

replaced matrix and vertex classes with glm

fix default angle

fix remaining rendering control issues

it works!

added FindGLM.cmake

modelview matrix set up

commit work done on plugging vao to the gl renderer, renders nonsense for now

at least VAOs work now

added debug and release to hgignore

added license

fixed a pile of nonsense that caused subfiles to go haywire

commit work on GL rendering

things

fixed build

added missing files

things

added teapot rendering

things

split quadrilateral and triangle into their own source files

renamings

renamings

added dependency loading

added matrix conversions and datastream operators

fixed translations being updated twice at the same time, that's bad

added saving of splitter state and recent files

major update with many things

added the settings editor

language support

stuff

added regular expressions for the parser

Added lots of code

things

add version

initial commit

(0) tip

mercurial