16 #ifndef SURGSIM_PHYSICS_FEM_H 17 #define SURGSIM_PHYSICS_FEM_H 19 #include "SurgSim/DataStructures/Vertices.h" 20 #include "SurgSim/Framework/Asset.h" 21 #include "SurgSim/Physics/FemElementStructs.h" 38 template <
class VertexData,
class Element>
40 public std::enable_shared_from_this<Fem<VertexData, Element>>
49 size_t addElement(std::shared_ptr<Element> element);
57 const std::vector<std::shared_ptr<Element>>&
getElements()
const;
61 std::vector<std::shared_ptr<Element>>&
getElements();
66 std::shared_ptr<Element>
getElement(
size_t id)
const;
89 template <
class PlyType,
class FemType>
102 #include "SurgSim/Physics/Fem-inl.h" 104 #endif // SURGSIM_PHYSICS_FEM_H size_t getBoundaryCondition(size_t id) const
Retrieves a specific boundary condition.
Definition: Fem-inl.h:86
Wraps glewInit() to separate the glew opengl definitions from the osg opengl definitions only imgui n...
Definition: AddRandomSphereBehavior.cpp:36
This class is used to facilitate file loading.
Definition: Asset.h:39
std::vector< std::shared_ptr< Element > > m_elements
Vector of individual elements.
Definition: Fem.h:93
const std::vector< size_t > & getBoundaryConditions() const
Gets entire vector of boundary conditions.
Definition: Fem-inl.h:74
std::shared_ptr< Element > getElement(size_t id) const
Retrieve a specific element from the mesh.
Definition: Fem-inl.h:61
size_t addElement(std::shared_ptr< Element > element)
Adds FEM element to mesh of Element template type.
Definition: Fem-inl.h:35
const std::vector< std::shared_ptr< Element > > & getElements() const
Gets entire FEM element vector.
Definition: Fem-inl.h:49
bool loadFemFile(const std::string &filename)
Shared loading method for all 3 dimensions.
Definition: Fem-inl.h:91
size_t addBoundaryCondition(size_t boundaryCondition)
Add boundary condition to mesh.
Definition: Fem-inl.h:67
std::vector< size_t > m_boundaryConditions
Vector of vertex ids that have boundary conditions.
Definition: Fem.h:96
Fem()
Default constructor.
Definition: Fem-inl.h:30
Base class for a data structure for holding FEM mesh data of different dimensions.
Definition: Fem.h:39
size_t getNumElements() const
Gets number of FEM elements in the mesh.
Definition: Fem-inl.h:42
Base class for mesh structures, handling basic vertex functionality.
Definition: Vertices.h:51