-
Notifications
You must be signed in to change notification settings - Fork 0
Home
This shall be the starting point for the documentation of the povmodeler architecture and design. It will be the only way to keep the povmodeler going even if the maintainer changes again.
The code base contains roughly 280 cpp files nearly complete without any helpfull comment. So one of the first tasks is to get an overview of how these files play together as the povmodeler.
While spreading the source code all over the new directory structure it came to my that this all is a monolithic block of code. This makes it hard to extend the code base with new features, povray and povmodeler ones, or to fix bugs. Whereever one touches a class nearly every other class, involved or not, will be influenced. It nearly impossible to focus on the specific component that needs changes.
One point I found is that e.g. PMPart gets passed into the construction of all and every object in the model specific classes. This will force all toolbar definitions, serializers, whatever, to be seen in these classes. But in these classes e.g. the insertRuleSystem is of interest. Far deeper the dependency goes while having a PMTreeViewItem class pointer incorporated into the model objects.
Adding interfaces here should help to encapsulate the model to make it more like a component.