980
edits
No edit summary |
No edit summary |
||
Line 42: | Line 42: | ||
Second, Flight Simulation involves numerous application domains. Among them are aerodynamics, graphics, geography, geodesy, environment, navigation, networks, audio, video, and human languages. FlightGear addresses all of them and more. Each of these domains has their own view of the world, and many of them are modelled as C++ classes. Full understanding comes from knowing the C++ code, The terminolgy of the domain, and the way the code's authors chose to structure things as objects and methods. | Second, Flight Simulation involves numerous application domains. Among them are aerodynamics, graphics, geography, geodesy, environment, navigation, networks, audio, video, and human languages. FlightGear addresses all of them and more. Each of these domains has their own view of the world, and many of them are modelled as C++ classes. Full understanding comes from knowing the C++ code, The terminolgy of the domain, and the way the code's authors chose to structure things as objects and methods. | ||
== Nasal and the Property Tree= | == Nasal and the Property Tree == | ||
Next, in addition to the complexity introduced by C++ and the application domains, there's Nasal. Finally, to tie it all together, loosely, the property tree. a global object, with individual data items of a key-value store actually stored in a tree because they are conceptually related. The property tree introduced compexity because items in it are not "owned", they're simply created at some point, in either C++, XML processing or Nasal and used wherever the data item is "needed". Connecting the dots through all the code based on identifying individual properties is not all that easy. | Next, in addition to the complexity introduced by C++ and the application domains, there's Nasal. Finally, to tie it all together, loosely, the property tree. a global object, with individual data items of a key-value store actually stored in a tree because they are conceptually related. The property tree introduced compexity because items in it are not "owned", they're simply created at some point, in either C++, XML processing or Nasal and used wherever the data item is "needed". Connecting the dots through all the code based on identifying individual properties is not all that easy. | ||
== Where should I start? C++, Nasal or XML) | == Where should I start? C++, Nasal or XML) == | ||
It's not clear from existing documentation the central role of Nasal scripting and the Property Tree are in the simulation. It's not just C++, Nasal, and the interface between them, understood as computer languages. Knowing the languages and interfaces themselves is vital, but even more important is understanding how scripting is used in FlightGear to create the simulation. If you are struggling as a newcomer to understand FlightGear's C++ code, understanding Nasal's role in driving parts of the simulation and the way it interacts with C++ code is probably one of the first things to do. It's what I'll be doing next. | It's not clear from existing documentation the central role of Nasal scripting and the Property Tree are in the simulation. It's not just C++, Nasal, and the interface between them, understood as computer languages. Knowing the languages and interfaces themselves is vital, but even more important is understanding how scripting is used in FlightGear to create the simulation. If you are struggling as a newcomer to understand FlightGear's C++ code, understanding Nasal's role in driving parts of the simulation and the way it interacts with C++ code is probably one of the first things to do. It's what I'll be doing next. | ||
== FlightGear's DataFlow Diagram == | == FlightGear's DataFlow Diagram == | ||
edits