- Messages
- 268
- Country
Let me first go though the project structure as I see it. it is basically a tree structure, where the parent node determines which child nodes are possible (runways only possible under an airport node for example).
Project Node
|
+-- Project Folder
.... |
.... + -- Airport
.......... |
.......... + -- Runway
The project folder is purely administrative - it can be used to separate by area, scenery designer, or whatever the creators of the scenery desire. The Project Node itself inherits from Project Folder and it is hence not required to make any further project nodes.
Clearly in this example, both the airport and the runway has a position. We can simply store these as latitude/longitude and only at the time we write the scenery we will make the runway location an offset from the airport reference point.
3D models (and effects, but for simplicity I'll just mention models in this) are a bit different. The BGL file specifying the placement simply contains a reference to the object. This allow the same model to be placed multiple times without repeating the data as we all know.
The question is how we should model this in our domain model, and how we should present it to the user. While it is given how we should store the final BGL file, we do have the option to transform it when reading from or writing to BGL from our domain model, and we have yet another option to do so when the vew and presenter shows the data to the user.
The problem as far as I can see is (as usual) that we have two use cases:
1) Placement of generic objects at different locations.
2) Placement of specific objects only used in one location.
Use case 1) suggest a userinterface where the user can maintain his object library centrally, and then place these at various locations. Basically maintaining the reference.
Use case 2) suggest the model should be kept within the location specific project folder. It would still be possible to use library objects - but you would do so by placing an object and specify which library and GUID to use. The same library (or model) could be added several places.
As far as I can tell, use case 2) most closely match how my users are thinking as they are really working on specific airports or areas, then moving on to the next when they are done. It gives a problem for generic objects which must be placed in their own Project Node and then placed accross the scenery.
So far my tool has used method 2), and it works for us - but we are not really using library objects. I would like to see some thougts on how to support both usecases efficently in the GUI. We might even split objects in generic and specific - which would also provide the default for how the object should be stored in the BGLS - in library (generic models) or in the same file as the placement (specific models).
Project Node
|
+-- Project Folder
.... |
.... + -- Airport
.......... |
.......... + -- Runway
The project folder is purely administrative - it can be used to separate by area, scenery designer, or whatever the creators of the scenery desire. The Project Node itself inherits from Project Folder and it is hence not required to make any further project nodes.
Clearly in this example, both the airport and the runway has a position. We can simply store these as latitude/longitude and only at the time we write the scenery we will make the runway location an offset from the airport reference point.
3D models (and effects, but for simplicity I'll just mention models in this) are a bit different. The BGL file specifying the placement simply contains a reference to the object. This allow the same model to be placed multiple times without repeating the data as we all know.
The question is how we should model this in our domain model, and how we should present it to the user. While it is given how we should store the final BGL file, we do have the option to transform it when reading from or writing to BGL from our domain model, and we have yet another option to do so when the vew and presenter shows the data to the user.
The problem as far as I can see is (as usual) that we have two use cases:
1) Placement of generic objects at different locations.
2) Placement of specific objects only used in one location.
Use case 1) suggest a userinterface where the user can maintain his object library centrally, and then place these at various locations. Basically maintaining the reference.
Use case 2) suggest the model should be kept within the location specific project folder. It would still be possible to use library objects - but you would do so by placing an object and specify which library and GUID to use. The same library (or model) could be added several places.
As far as I can tell, use case 2) most closely match how my users are thinking as they are really working on specific airports or areas, then moving on to the next when they are done. It gives a problem for generic objects which must be placed in their own Project Node and then placed accross the scenery.
So far my tool has used method 2), and it works for us - but we are not really using library objects. I would like to see some thougts on how to support both usecases efficently in the GUI. We might even split objects in generic and specific - which would also provide the default for how the object should be stored in the BGLS - in library (generic models) or in the same file as the placement (specific models).