16 #ifndef SURGSIM_PHYSICS_FEM1DREPRESENTATION_H 17 #define SURGSIM_PHYSICS_FEM1DREPRESENTATION_H 31 namespace DataStructures
33 struct IndexedLocalCoordinate;
49 SURGSIM_STATIC_REGISTRATION(Fem1DRepresentation);
66 void loadFem(
const std::string& fileName)
override;
71 void setFem(std::shared_ptr<SurgSim::Framework::Asset> mesh);
74 std::shared_ptr<Fem1D> getFem()
const;
76 void addExternalGeneralizedForce(std::shared_ptr<Localization> localization,
84 void transformState(std::shared_ptr<SurgSim::Math::OdeState> state,
87 bool doInitialize()
override;
93 std::shared_ptr<Localization> createNodeLocalization(
size_t nodeId);
98 std::shared_ptr<Localization> createElementLocalization(
109 #endif // SURGSIM_PHYSICS_FEM1DREPRESENTATION_H Definition: CompoundShapeToGraphics.cpp:29
A generic (size_t index, Vector coordinate) pair.
Definition: IndexedLocalCoordinate.h:29
Finite Element Model 1D is a fem built with 1D FemElement.
Definition: Fem1DRepresentation.h:54
Finite Element Model (a.k.a FEM) is a deformable model (a set of nodes connected by FemElement)...
Definition: FemRepresentation.h:46
A Location defines a local position w.r.t.
Definition: Location.h:39
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > Matrix
A dynamic size matrix.
Definition: Matrix.h:65
Eigen::Matrix< double, Eigen::Dynamic, 1 > Vector
A dynamic size column vector.
Definition: Vector.h:68
#define SURGSIM_CLASSNAME(ClassName)
Declare the class name of a class with the appropriate function header, do not use quotes...
Definition: Macros.h:21
std::shared_ptr< Fem1D > m_fem
The Fem1DRepresentation's asset as a Fem1D.
Definition: Fem1DRepresentation.h:102
Definitions of small fixed-size square matrix types.
Eigen::Transform< double, 3, Eigen::Isometry > RigidTransform3d
A 3D rigid (isometric) transform, represented as doubles.
Definition: RigidTransform.h:46
Definitions of small fixed-size vector types.