The LabRPS source code
Jump to navigation
Jump to search
The LabRPS source code is managed with git, and is public, open and available under the General Public Licence, version 2 (GPL2) . It can be copied, downloaded, read, analyzed, redistributed and modified by anyone. If you plan to make modifications that you wish to see included into the official code itself, remember that your changes will need to be approved by the LabRPS developers, so it is wise to discuss first your intents and ideas on the forum, to avoid the risk to have your changes rejected for some reason you didn't foresee.
Below are some clues and useful information to get you on tracks if you are interested in exploring the LabRPS code.
- The LabRPS code is programmed in C++. According to the core philosophy of LabRPS, the application document will be exposed to users and can be accessed through the help of scripting languages such as MuParser and QtScript.
- The LabRPS source code is fully multi-platform, and great care is taken to allow to use the application on a biggest possible number of platforms and configurations, and not put existing users in difficult situations. Therefore, as much as possible, new versions of needed components are avoided while they are not widely and easily available on all platforms, and backwards compatibility (the ability to open a file produced with an old version of LabRPS on a newer version) is an important priority.
- The functionality of LabRPS is separated in two different parts, namely Visualization and Simulation. This separation for now is not reflected everywhere in the files structure of the source code. But we are working on it. In future, each of these two parts will be separated as Application, View, and Document.
- Most of LabRPS's simulation functionality is implemented in Plugins. LabRPS without its plugins is just a data visualization application . All the random phenomenon simulation tools are implemented in Plugins. Plugins are written in C++.
- The basic directory structure of the source code is organized like this:
- app: contains the LabRPS application, defines basic structures and base classes for document objects. This directory contains all the source codes about the LabRPS's visualization and simulation.
- pluginapi: contains the LabRPS application programming interfaces (API) that are used to allow plugins to communicate with LabRPS.
- plugin: contains the plugins. Any plugin in this directory will be loaded by LabRPS when starting.
- data: contains LabRPS data such icons, pictures, sample simulation data...