Main.cpp

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 program is free software; you can redistribute it and/or modify it     *
00006 * under the terms of the GNU General Public License as published by the Free  *
00007 * Software Foundation; either version 2 of the License, or (at your option)   *
00008 * any later version.                                                          *
00009 *                                                                             *
00010 * This program 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 General Public License for    *
00013 * more details.                                                               *
00014 *                                                                             *
00015 * You should have received a copy of the GNU General Public License along     *
00016 * with this program; if not, write to the Free Software Foundation, Inc., 51  *
00017 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.                   *
00018 *******************************************************************************
00019 *                            SOFA :: Applications                             *
00020 *                                                                             *
00021 * Authors: M. Adam, J. Allard, B. Andre, P-J. Bensoussan, S. Cotin, C. Duriez,*
00022 * H. Delingette, F. Falipou, F. Faure, S. Fonteneau, L. Heigeas, C. Mendoza,  *
00023 * M. Nesme, P. Neumann, J-P. de la Plata Alcade, F. Poyer and F. Roy          *
00024 *                                                                             *
00025 * Contact information: contact@sofa-framework.org                             *
00026 ******************************************************************************/
00027 #include "GenerateRigid.h"
00028 #include <sofa/component/init.h>
00029 #include <iostream>
00030 #include <fstream>
00031 
00032 using namespace sofa::defaulttype;
00033 
00034 int main(int argc, char** argv)
00035 {
00036     if (argc < 2 || argc > 3)
00037     {
00038         std::cout <<"USAGE: "<<argv[0]<<" inputfile.obj [outputfile.rigid]\n";
00039         return 1;
00040     }
00041 
00042     sofa::component::init();
00043 
00044     sofa::helper::io::Mesh* mesh = sofa::helper::io::Mesh::Create(argv[1]);
00045 
00046     if (mesh == NULL)
00047     {
00048         std::cout << "ERROR loading mesh "<<argv[1]<<std::endl;
00049         return 2;
00050     }
00051 
00052     Vec3d center;
00053     Rigid3Mass mass;
00054 
00055 
00056     projects::GenerateRigid(mass, center, mesh);
00057 
00058     std::ostream* out = &std::cout;
00059     if (argc >= 3)
00060     {
00061         out = new std::ofstream(argv[2]);
00062     }
00063 
00064     out->setf(std::ios::fixed);
00065     out->precision(10);
00066 
00067     *out << "Xsp 3.0\n";
00068     *out << "mass " << mass.mass << "\n";
00069     *out << "volm " << mass.volume << "\n";
00070     *out << "inrt " << mass.inertiaMatrix[0][0] << " " << mass.inertiaMatrix[0][1] << " " << mass.inertiaMatrix[0][2] << " "
00071             << mass.inertiaMatrix[1][0] << " " << mass.inertiaMatrix[1][1] << " " << mass.inertiaMatrix[1][2] << " "
00072             << mass.inertiaMatrix[2][0] << " " << mass.inertiaMatrix[2][1] << " " << mass.inertiaMatrix[2][2] << "\n";
00073     *out << "cntr " << center[0] << " " << center[1] << " " << center[2] << "\n";
00074     *out << std::flush;
00075 
00076     if (out != &std::cout)
00077         delete out;
00078 
00079     return 0;
00080 }

Generated on Sun Nov 23 02:28:26 2008 for Sofa by  doxygen 1.5.7.1