An open API service indexing awesome lists of open source software.

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

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


































```