SOFA API  4ecb558f
Open source framework for multi-physics simuation

Call this method to load an XspFile.

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
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 <>. *
* Authors: The SOFA Team and external contributors (see Authors.txt) *
* *
* Contact information: *
#include <cstddef>
#include <string>
#include <sofa/helper/config.h>
namespace sofa
namespace helper
namespace io
class SOFA_HELPER_API XspLoaderDataHook
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
static bool Load(const std::string& filename,
XspLoaderDataHook& data);
static bool ReadXspContent(std::ifstream &file,
bool hasVectorSpring,
XspLoaderDataHook& data);
} // namespace io
} // namespace helper
} // namespace sofa
const char * data
Definition: XML.h:36
This allow MeshTrian to interact with the messaging system.
Definition: ConstraintAnimationLoop.cpp:81