LMLReader.h

Go to the documentation of this file.
00001 /******************************************************************************
00002 *       SOFA, Simulation Open-Framework Architecture, version 1.0 beta 3      *
00003 *                (c) 2006-2008 MGH, INRIA, USTL, UJF, CNRS                    *
00004 *                                                                             *
00005 * This library is free software; you can redistribute it and/or modify it     *
00006 * under the terms of the GNU Lesser General Public License as published by    *
00007 * the Free Software Foundation; either version 2.1 of the License, or (at     *
00008 * your option) any later version.                                             *
00009 *                                                                             *
00010 * This library is distributed in the hope that it will be useful, but WITHOUT *
00011 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or       *
00012 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License *
00013 * for more details.                                                           *
00014 *                                                                             *
00015 * You should have received a copy of the GNU Lesser General Public License    *
00016 * along with this library; if not, write to the Free Software Foundation,     *
00017 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.          *
00018 *******************************************************************************
00019 *                               SOFA :: Modules                               *
00020 *                                                                             *
00021 * Authors: The SOFA Team and external contributors (see Authors.txt)          *
00022 *                                                                             *
00023 * Contact information: contact@sofa-framework.org                             *
00024 ******************************************************************************/
00025 
00026 /***************************************************************************
00027  *                                                                         *
00028  *   This program is free software; you can redistribute it and/or modify  *
00029  *   it under the terms of the GNU General Public License as published by  *
00030  *   the Free Software Foundation; either version 2 of the License, or     *
00031  *   (at your option) any later version.                                   *
00032  *                                                                         *
00033  ***************************************************************************/
00034 
00035 //-------------------------------------------------------------------------
00036 //                      --   Description   --
00037 //  LMLReader is used to import a LML document to the sofa structure. 
00038 //  It builds forcefields and constraints on the objects of the scene,
00039 //  reading a LML file, and using LMLConstraint and LMLForce classes. 
00040 //-------------------------------------------------------------------------
00041 
00042 #ifndef LMLREADER_H
00043 #define LMLREADER_H
00044 
00045 #include <Loads.h>
00046 #include <map>
00047 
00048 #include "sofa/core/componentmodel/behavior/MechanicalState.h"
00049 #include "sofa/defaulttype/Vec3Types.h"
00050 #include <sofa/simulation/tree/GNode.h>
00051 
00052 namespace sofa
00053 {
00054 
00055 namespace filemanager
00056 {
00057 
00058 namespace pml
00059 {
00060 
00061 using namespace sofa::defaulttype;
00062 using namespace sofa::simulation::tree;
00063 
00064 class PMLReader;
00065 
00066 
00067 class LMLReader {
00068 public :
00069     LMLReader(char* filename=NULL);
00070 
00071     void BuildStructure(const char* filename, PMLReader * pmlreader);
00072     void BuildStructure(Loads * loads, PMLReader * pmlreader);
00073     void BuildStructure(PMLReader * pmlreader);
00074 
00075     void updateStructure(Loads * loads, PMLReader * pmlreader);
00076 
00077     void saveAsLML(const char * filename);
00078 
00079     unsigned int numberOfLoads(){ if(loadsList)return loadsList->numberOfLoads(); else return 0;}
00080 
00081 private :
00082     Loads * loadsList;
00083     const char * lmlFile;
00084 };
00085 
00086 }
00087 } 
00088 }
00089 
00090 #endif //LMLREADER_H

Generated on Sun Nov 23 03:56:14 2008 for Sofa by  doxygen 1.5.7.1