29 #ifndef NEMOSYS_NUCMESHSHAPEDATA_H_ 30 #define NEMOSYS_NUCMESHSHAPEDATA_H_ 32 #include "nemosys_export.h" 37 #include <SMDSAbs_ElementType.hxx> 43 class SMESH_Hypothesis;
61 const TopoDS_Shape &shape, SMESH_Gen &generator, SMESH_Mesh &
mesh,
62 std::vector<std::unique_ptr<SMESH_Hypothesis>> &generatedHyps)
const {};
70 template <
typename T,
typename Base>
78 for (
auto &modifiedShape : modifiedShapes) {
79 geoMetadata.
getMap()[modifiedShape] =
80 std::shared_ptr<NEM::GEO::ShapeData>{
81 new T{*
static_cast<const T *
>(
this)}};
94 GroupData(std::string groupName, SMDSAbs_ElementType type)
95 : groupName(
std::move(groupName)), type(type) {}
97 void setupAlgos(
const TopoDS_Shape &shape, SMESH_Gen &generator,
99 std::vector<std::unique_ptr<SMESH_Hypothesis>> &generatedHyps)
115 void setupAlgos(
const TopoDS_Shape &shape, SMESH_Gen &generator,
117 std::vector<std::unique_ptr<SMESH_Hypothesis>> &generatedHyps)
129 explicit EdgeSegments(std::string groupName,
int numSegments);
131 void setupAlgos(
const TopoDS_Shape &shape, SMESH_Gen &generator,
133 std::vector<std::unique_ptr<SMESH_Hypothesis>> &generatedHyps)
149 void setupAlgos(
const TopoDS_Shape &shape, SMESH_Gen &generator,
151 std::vector<std::unique_ptr<SMESH_Hypothesis>> &generatedHyps)
165 void setupAlgos(
const TopoDS_Shape &shape, SMESH_Gen &generator,
167 std::vector<std::unique_ptr<SMESH_Hypothesis>> &generatedHyps)
174 #endif // NEMOSYS_NUCMESHSHAPEDATA_H_ GroupData(std::string groupName, SMDSAbs_ElementType type)
SideSetEdge(std::string groupName)
Class to manage TopoDS_Shapes along with metadata.
CRTP pattern to implement NEM::GEO::ShapeData::updateModified by copying.
Class to describe meshing an edge by StdMeshers_NumberOfSegments.
void setupAlgos(const TopoDS_Shape &shape, SMESH_Gen &generator, SMESH_Mesh &mesh, std::vector< std::unique_ptr< SMESH_Hypothesis >> &generatedHyps) const override
Method that is called when a GeoManager instance tries to mesh shape.
void updateModified(const TopoDS_Shape &shape, const TopTools_ListOfShape &modifiedShapes, NEM::GEO::GeoManager &geoMetadata) const override
TriMeshSurface(std::string groupName)
void setupAlgos(const TopoDS_Shape &shape, SMESH_Gen &generator, SMESH_Mesh &mesh, std::vector< std::unique_ptr< SMESH_Hypothesis >> &generatedHyps) const override
Method that is called when a GeoManager instance tries to mesh shape.
QuadMeshSurface(std::string groupName)
Class to hold the material/physical group of a geometry.
std::shared_ptr< meshBase > mesh
Data stored in an instance of GeoManager.
Apply a tri mesh to a face.
Structured quad mesh (assuming edges meshed appropriately) or quad-dominant mesh. ...
virtual void setupAlgos(const TopoDS_Shape &shape, SMESH_Gen &generator, SMESH_Mesh &mesh, std::vector< std::unique_ptr< SMESH_Hypothesis >> &generatedHyps) const
Method that is called when a GeoManager instance tries to mesh shape.