TMink / Digitales-3D-Feldbuch

Mozilla Public License 2.0
2 stars 0 forks source link

Restructure 3D Part #173

Closed TMink closed 7 months ago

TMink commented 11 months ago

Over the last development period the 3D Part was adjusted many times, often more sporadicly, because of the direct demand. This lead to an unhealthy layering of code, which was often not optimized performance wise . In order to provide a stabel Enviroment wich enables the user to use different data types of 3D-Models, functions to manipulate Objects or simply view multiple 3D-Objects at once, the whole 3D-Part will be restructured.

This means:

TMink commented 10 months ago

Updated: Zoom on Objects: Now the zoom is based on the cursor position, rather than the center of the place-object as it was before

TMink commented 7 months ago

Update: Outsourcing and simplyfing to prevent redundandcy: Most of the functions, like object loaders and garbage collection, has been outsourced. These functions were grouped in classes. In addition a parameter list was implemented to centralize them.

3DView:

CameraSetting (file):

ControlSetting (file):

GarbageCollection (file):

Initialisations (file):

ObjectFilter (file):

ObjectLoaders (file):

Tools (file):

UpdateIndexedDB (file):

UpdateLoaclVariables (file):

Utilities (file):

TMink commented 7 months ago

Update: Make functions like loaders more universaly usable. like outside of the 3D-Part The new class Objectloaders inside Objectloaders.js, includes the load function, which will do exactly that. Through the utialization of the different loader types provided by three.js, it is possible to process different postfixes. The differences between the usage of these loaders are often minor, but still so impactfull, that they differ. Beside that, the loader function can now be implemented in every part of the code and used the same way, like places and positions, where models can be loaded in the system.

This image shows the minor impactful difference between both loaders, as an example. Image

TMink commented 7 months ago

Update: Create an overall more stable enviroment wich isn't subsceptible to bugs All knowen bugs are fixed and the new, more structured, layout of the code can be tested and maintained more easily.

TMink commented 7 months ago

Update: support future development processes By choosing simple, easy-to-understand names for variables and functions, in addition to a detailed dokumentation, new features can be implemented musch faster.

Image

TMink commented 7 months ago

Update: Make it easier to create a proper class hierarchy diagram for the code documentation

Image

Image

TMink commented 7 months ago

Update: Zoom on objects The new zoom function lets the user zoom on the cursor position. This should support the interaction.

TMink commented 7 months ago

Every task was processed and documented.