This file is indexed.

/usr/include/sofa/filemanager/sofapml/LMLConstraint.h is in libsofa1-dev 1.0~beta4-12.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/******************************************************************************
*       SOFA, Simulation Open-Framework Architecture, version 1.0 beta 4      *
*                (c) 2006-2009 MGH, INRIA, USTL, UJF, CNRS                    *
*                                                                             *
* This library 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 library 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 library; if not, write to the Free Software Foundation,     *
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.          *
*******************************************************************************
*                               SOFA :: Modules                               *
*                                                                             *
* Authors: The SOFA Team and external contributors (see Authors.txt)          *
*                                                                             *
* Contact information: contact@sofa-framework.org                             *
******************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

//-------------------------------------------------------------------------
//						--   Description   --
//	LMLConstraint imports from a LML file (see LMLReader class) imposed displacements,
//  including translations and fixed points, and traduces it to sofa constraints.
//  It inherits from Constraint sofa core class.
//-------------------------------------------------------------------------

#ifndef LMLCONSTRAINT_H
#define LMLCONSTRAINT_H


#include "sofa/core/componentmodel/behavior/Constraint.h"
#include "sofa/core/componentmodel/behavior/MechanicalState.h"
#include "sofa/core/VisualModel.h"
#include "sofapml.h"

#include <vector>
#include <map>

#include <Loads.h>


namespace sofa
{

namespace filemanager
{

namespace pml
{

using namespace sofa::core;
using namespace sofa::core::componentmodel::behavior;
using namespace std;

template<class DataTypes>
class LMLConstraint : public Constraint<DataTypes>, public VisualModel
{
public :	
	///template types
	typedef typename DataTypes::VecCoord VecCoord;
	typedef typename DataTypes::VecDeriv VecDeriv;
	typedef typename DataTypes::VecCoord::iterator VecCoordIterator;
	typedef typename DataTypes::VecDeriv::iterator VecDerivIterator;
	typedef typename DataTypes::Coord Coord;
	typedef typename DataTypes::Deriv Deriv;

	///constructor
	LMLConstraint(Loads* loadsList, const map<unsigned int, unsigned int> &atomIndexToDOFIndex, MechanicalState<DataTypes> *mm);

	~LMLConstraint(){ /*delete loads;*/}

	/// return the targets list
	std::vector<unsigned int> getTargets() {return targets;}

	///fix or translate a point
	LMLConstraint<DataTypes>* addConstraint(unsigned int index, Deriv trans);
	LMLConstraint<DataTypes>* removeConstraint(int index);

	/// Constraint inherits
	void projectResponse(VecDeriv& dx); ///< project dx to constrained space
	virtual void projectVelocity(VecDeriv& ){} ///< project dx to constrained space (dx models a velocity)
	virtual void projectPosition(VecCoord& x); ///< project x to constrained space (x models a position)

	/// -- VisualModel interface
	void draw();
	void initTextures() { }
	void update() { }

private:

	/// fix a point on the axe specified (0=x, 1=y, 2=z)
	void fixDOF(int index, int axe);

	MechanicalState<DataTypes> * mmodel;
	/// the set of vertex targets
	std::vector<unsigned int> targets; 
	/// list of translations
	VecDeriv translations;
	/// list of fixed directions
	VecDeriv directionsNULLs;
	VecDeriv initPos;

	/// the lml loads
	Loads * loads;
	///link between PML object indexes and sofa Dofs Indexes
	map<unsigned int, unsigned int> atomToDOFIndexes;
};

#if defined(WIN32) && !defined(SOFA_BUILD_FILEMANAGER_PML)
extern template class SOFA_BUILD_FILEMANAGER_PML_API LMLConstraint<Vec3Types>;
#endif

}
}
}
#endif //LMLCONSTRAINT_H