Call this method to load an XspFile.
- Parameters
-
filename | the name of the file in the RessourceRepository to read data from. |
data | pass a object of this type (or inherit one) to load the file in caller's data structures |
- Returns
- wheter the loading succeded.
class MyXspLoader : public XspLoaderDataHook { std::vector<double> mx; public: void addMass(SReal px, SReal py, SReal pz, SReal, SReal, SReal, SReal, SReal, bool, bool) override { mx.push_back(px); } void finalizeLoading(bool isOk) override { if(!isOk) mx.clear(); } };
MyXspLoader loadedData; XspLoader::Load("myfile.xs3", loadedData);
#ifndef SOFA_HELPER_IO_XSPLOADER_H
#define SOFA_HELPER_IO_XSPLOADER_H
#include <cstddef>
#include <string>
#include <sofa/helper/config.h>
{
class SOFA_HELPER_API XspLoaderDataHook
{
public:
virtual ~XspLoaderDataHook();
virtual void finalizeLoading(bool isOk) { SOFA_UNUSED(isOk); }
virtual void setNumMasses(size_t ) {}
virtual void setNumSprings(size_t ) {}
virtual void setGravity(SReal , SReal , SReal ) {}
virtual void setViscosity(SReal ) {}
virtual void addMass(SReal , SReal , SReal , SReal , SReal , SReal , SReal , SReal , bool , bool ) {}
virtual void addSpring(size_t , size_t , SReal , SReal , SReal ) {}
virtual void addVectorSpring(size_t m1, size_t m2, SReal ks, SReal kd, SReal initpos, SReal , SReal , SReal ) { addSpring(m1, m2, ks, kd, initpos); }
};
class SOFA_HELPER_API XspLoader
{
public:
static bool Load(const std::string& filename,
XspLoaderDataHook& data);
private:
static bool ReadXspContent(std::ifstream &file,
bool hasVectorSpring,
XspLoaderDataHook& data);
};
}
#endif
This allow MeshTrian to interact with the messaging system.
Definition: MeshLoader.h:31