https://github.com/alxbilger/pluginfinder
PluginFinder is a program loading SOFA simulations in order to find the required SOFA plugins, i.e. the plugins containing all the components of the simulation
https://github.com/alxbilger/pluginfinder
sofa-framework
Last synced: about 1 year ago
JSON representation
PluginFinder is a program loading SOFA simulations in order to find the required SOFA plugins, i.e. the plugins containing all the components of the simulation
- Host: GitHub
- URL: https://github.com/alxbilger/pluginfinder
- Owner: alxbilger
- Created: 2022-04-12T09:47:22.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-21T09:19:44.000Z (over 1 year ago)
- Last Synced: 2024-12-25T18:14:54.145Z (over 1 year ago)
- Topics: sofa-framework
- Language: C++
- Homepage:
- Size: 15.6 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# PluginFinder
PluginFinder is a program loading SOFA simulations in order to find the required SOFA plugins, i.e. the plugins containing all the components of the simulation.
- SOFA: [https://www.sofa-framework.org/](https://www.sofa-framework.org/)
## How it works
It first loads all the SOFA plugins from the list contained in the file `plugin_list.conf` or `plugin_list.conf.default`.
It is a similar mechanism in `runSofa`.
In order to find the required plugins, all the plugins must be loaded.
:warning: A plugin cannot be found if it is not loaded.
It loads one or several simulations sequentially.
For each simulation:
- The simulation is loaded
- All the components (derived from `sofa::core::objectmodel::BaseObject`) are retrieved from the root node
- For each component, it finds the corresponding plugin. The component must be found in the `sofa::core::ObjectFactory`, i.e. the corresponding plugin must be loaded.
- Replace the `` list by the new one.
- The simulation is unloaded
## Limitations
- A plugin cannot be found if it is not loaded
- Limited to XML files
- At least one `` must be present in the scene
## Demo
```
PluginFinder examples\Components\mass\DiagonalMass.scn
```
The following scene
```xml
```
is transformed to:
```xml
```