SDSX domain model for 3D models

From FSDeveloper Wiki
Jump to: navigation, search

This document contains an overview of the domain model (data model) used for 3D objects.

Notice saving to and loading from various formats like MDL (FSX/FS9), BGL (libraries and FS9/FS8 scenery files) is not covered in this document as these are operations on the domain model, not part of the model itself.

Class Diagram

File:SDSX-ClassDiagram3DModel.png

The Model contains one PartContainer (TODO: Update diagram as it indicates it can have several). This specific PartContainer will be instantiated with [Lazy Loading]. A PartContainer contains a collection of Parts, where a Part can be another PartContainer (for example a RotationTransform), a light, a TriangleSet, an AttachPoint, or a Platform. Each part can have one or more display conditions which must all be valid for the part to display in Flight Simulator.

A TriangleSet is a part consisting of a number of triangles (with 3 vertexes per triangle obviously), a material, and optionally a number of textures in a TextureSet.

TODO: Should we have a TextuerSet, or simply include all textures directly in the TriangleSet, adding a flag to each to indicate the textuer purpose (nightmap etc):

While conditional display is not directly supported for all types of model parts (platform and attach points) the domain model still allows it, as it is possible to simulate the effect by adding an animation moving the object far below the surface when it should not be displayed. Notice this is extremely unlikely to be supported in the first versions of SDSX, but disallowing it in the domain model would result in both more complexity of the domain model, and problems with future development.