Currently Renderer is tightly coupled with DataKeeper and Viewport. Projector instance is a child of DataKeeper. For new modules there is always a question where they should belong and sometimes it's not an easy one to answer. To decouple modules signal-slot concept can be used. Following issue #21 Boost.Signal2 must be used. Architecture must be the following:
Modules knows nothing of each other
Each module has public API including signals that describe module's features
Each module must protect its thread-sensitive data
GlobeViewer knows about every module and create their instances
GlobeViewer defines signal-slot connections (immediately after module creation)
Currently Renderer is tightly coupled with DataKeeper and Viewport. Projector instance is a child of DataKeeper. For new modules there is always a question where they should belong and sometimes it's not an easy one to answer. To decouple modules signal-slot concept can be used. Following issue #21 Boost.Signal2 must be used. Architecture must be the following:
This issue must be resolved ASAP.