SOFA API  b3f2f2a4
Open source framework for multi-physics simuation
/builds/workspace/generate-doxygen/master/sofa/Sofa/framework/Helper/src/sofa/helper/io/XspLoader.h

Call this method to load an XspFile.

Parameters
filenamethe name of the file in the RessourceRepository to read data from.
datapass 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);

/******************************************************************************
* SOFA, Simulation Open-Framework Architecture *
* (c) 2006 INRIA, USTL, UJF, CNRS, MGH *
* *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU Lesser General Public License as published by *
* the Free Software Foundation; either version 2.1 of the License, or (at *
* your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, but WITHOUT *
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License *
* for more details. *
* *
* You should have received a copy of the GNU Lesser General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*******************************************************************************
* Authors: The SOFA Team and external contributors (see Authors.txt) *
* *
* Contact information: contact@sofa-framework.org *
******************************************************************************/
#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 /*n*/) {}
virtual void setNumSprings(size_t /*n*/) {}
virtual void setGravity(SReal /*gx*/, SReal /*gy*/, SReal /*gz*/) {}
virtual void setViscosity(SReal /*visc*/) {}
virtual void addMass(SReal /*px*/, SReal /*py*/, SReal /*pz*/, SReal /*vx*/, SReal /*vy*/, SReal /*vz*/, SReal /*mass*/, SReal /*elastic*/, bool /*fixed*/, bool /*surface*/) {}
virtual void addSpring(size_t /*m1*/, size_t /*m2*/, SReal /*ks*/, SReal /*kd*/, SReal /*initpos*/) {}
virtual void addVectorSpring(size_t m1, size_t m2, SReal ks, SReal kd, SReal initpos, SReal /*restx*/, SReal /*resty*/, SReal /*restz*/) { 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);
};
} // namespace sofa::helper::io
#endif
This allow MeshTrian to interact with the messaging system.
Definition: MeshLoader.h:31