Tool analyzing and giving access to a prism geometry treating it like a block, i.e. the four side faces are emulated by division/uniting of missing/excess faces. It also manage associations between block sub-shapes and a mesh. More...
#include <StdMeshers_Prism_3D.hxx>
Public Member Functions | |
| void | Clear () |
| Free allocated memory. More... | |
| SMESH_ComputeErrorPtr | GetError () const |
| Return problem description. More... | |
| bool | GetLayersTransformation (std::vector< gp_Trsf > &trsf, const Prism_3D::TPrismTopo &prism) const |
| Return transformations to get coordinates of nodes of each internal layer by nodes of the bottom. Layer is a set of nodes at a certain step from bottom to top. More... | |
| const TNodeColumn * | GetNodeColumn (const SMDS_MeshNode *node) const |
| Return pointer to column of nodes. More... | |
| const TParam2ColumnMap * | GetParam2ColumnMap (const int baseEdgeID, bool &isReverse) const |
| Return TParam2ColumnMap for a base edge. More... | |
| bool | HasNotQuadElemOnTop () const |
| bool | Init (SMESH_MesherHelper *helper, const Prism_3D::TPrismTopo &prism) |
| Initialization. More... | |
| SMESH_Mesh * | Mesh () const |
| Return pointer to mesh. More... | |
| SMESHDS_Mesh * | MeshDS () const |
| Return pointer to mesh DS. More... | |
| const TopoDS_Shape & | Shape (const int shapeID) const |
| Return a in-block shape. More... | |
| int | ShapeID (const TopoDS_Shape &shape) const |
| Return in-block ID of a shape. More... | |
| StdMeshers_PrismAsBlock () | |
| Constructor. Initialization is needed. More... | |
| SMESH_subMesh * | SubMesh (const int shapeID) const |
| Return submesh of a shape. More... | |
| SMESHDS_SubMesh * | SubMeshDS (const int shapeID) const |
| Return submesh DS of a shape. More... | |
| int | VerticalSize () const |
| Return number of nodes on every vertical edge. More... | |
| ~StdMeshers_PrismAsBlock () | |
Public Member Functions inherited from SMESH_Block | |
| bool | ComputeParameters (const gp_Pnt &thePoint, gp_XYZ &theParams, const int theShapeID=ID_Shell, const gp_XYZ &theParamsHint=gp_XYZ(-1,-1,-1)) |
| Standard_Boolean | Derivatives (const math_Vector &X, math_Matrix &D) |
| double | DistanceReached () const |
| bool | EdgeParameters (const int theEdgeID, const double theU, gp_XYZ &theParams) |
| bool | EdgePoint (const int theEdgeID, const gp_XYZ &theParams, gp_XYZ &thePoint) const |
| bool | EdgeU (const int theEdgeID, const gp_XYZ &theParams, double &theU) const |
| bool | FacePoint (const int theFaceID, const gp_XYZ &theParams, gp_XYZ &thePoint) const |
| bool | FaceUV (const int theFaceID, const gp_XYZ &theParams, gp_XY &theUV) const |
| Standard_Integer | GetStateNumber () |
| double | GetTolerance () const |
| bool | IsToleranceReached () const |
| bool | LoadBlockShapes (const TopoDS_Shell &theShell, const TopoDS_Vertex &theVertex000, const TopoDS_Vertex &theVertex001, TopTools_IndexedMapOfOrientedShape &theShapeIDMap) |
| bool | LoadBlockShapes (const TopTools_IndexedMapOfOrientedShape &theShapeIDMap) |
| Initialize block geometry with shapes from theShapeIDMap. More... | |
| bool | LoadFace (const TopoDS_Face &theFace, const int theFaceID, const TopTools_IndexedMapOfOrientedShape &theShapeIDMap) |
| Load face geometry. More... | |
| bool | LoadMeshBlock (const SMDS_MeshVolume *theVolume, const int theNode000Index, const int theNode001Index, std::vector< const SMDS_MeshNode * > &theOrderedNodes) |
| Standard_Integer | NbEquations () const |
| Standard_Integer | NbVariables () const |
| void | SetTolerance (const double tol) |
| bool | ShellPoint (const gp_XYZ &theParams, gp_XYZ &thePoint) const |
| SMESH_Block () | |
| Standard_Boolean | Value (const math_Vector &X, math_Vector &F) |
| Standard_Boolean | Values (const math_Vector &X, math_Vector &F, math_Matrix &D) |
| bool | VertexParameters (const int theVertexID, gp_XYZ &theParams) |
| bool | VertexPoint (const int theVertexID, gp_XYZ &thePoint) const |
Static Public Member Functions | |
| static bool | IsForwardEdge (SMESHDS_Mesh *meshDS, const TParam2ColumnMap &columnsMap, const TopoDS_Edge &bottomEdge, const int sideFaceID) |
| Check curve orientation of a bootom edge. More... | |
Static Public Member Functions inherited from SMESH_Block | |
| static std::ostream & | DumpShapeID (const int theBlockShapeID, std::ostream &stream) |
| static bool | FindBlockShapes (const TopoDS_Shell &theShell, const TopoDS_Vertex &theVertex000, const TopoDS_Vertex &theVertex001, TopTools_IndexedMapOfOrientedShape &theShapeIDMap) |
| static int | GetCoordIndOnEdge (const int theEdgeID) |
| static void | GetEdgeVertexIDs (const int edgeID, std::vector< int > &vertexVec) |
| static void | GetFaceEdgesIDs (const int faceID, std::vector< int > &edgeVec) |
| static int | GetOrderedEdges (const TopoDS_Face &theFace, std::list< TopoDS_Edge > &theEdges, std::list< int > &theNbEdgesInWires, TopoDS_Vertex theFirstVertex=TopoDS_Vertex(), const bool theShapeAnalysisAlgo=false) |
| Return number of wires and a list of oredered edges. More... | |
| static double * | GetShapeCoef (const int theShapeID) |
| static int | GetShapeIDByParams (const gp_XYZ &theParams) |
| static bool | Insert (const TopoDS_Shape &theShape, const int theShapeID, TopTools_IndexedMapOfOrientedShape &theShapeIDMap) |
| / Insert theShape into theShapeIDMap with theShapeID More... | |
| static bool | IsEdgeID (int theShapeID) |
| static bool | IsFaceID (int theShapeID) |
| static bool | IsForwardEdge (const TopoDS_Edge &theEdge, const TopTools_IndexedMapOfOrientedShape &theShapeIDMap) |
| static bool | IsVertexID (int theShapeID) |
| static int | NbEdges () |
| static int | NbFaces () |
| static int | NbSubShapes () |
| static int | NbVertices () |
| static int | ShapeIndex (int theShapeID) |
| static bool | ShellPoint (const gp_XYZ &theParams, const std::vector< gp_XYZ > &thePointOnShape, gp_XYZ &thePoint) |
Additional Inherited Members | |
Public Types inherited from SMESH_Block | |
| enum | TShapeID { ID_NONE = 0, ID_V000 = 1, ID_V100, ID_V010, ID_V110, ID_V001, ID_V101, ID_V011, ID_V111, ID_Ex00, ID_Ex10, ID_Ex01, ID_Ex11, ID_E0y0, ID_E1y0, ID_E0y1, ID_E1y1, ID_E00z, ID_E10z, ID_E01z, ID_E11z, ID_Fxy0, ID_Fxy1, ID_Fx0z, ID_Fx1z, ID_F0yz, ID_F1yz, ID_Shell, ID_FirstV = ID_V000, ID_FirstE = ID_Ex00, ID_FirstF = ID_Fxy0 } |
Protected Types inherited from SMESH_Block | |
| enum | { SQUARE_DIST = 0, DRV_1, DRV_2, DRV_3 } |
| typedef std::pair< gp_XYZ, gp_XYZ > | TxyzPair |
Protected Member Functions inherited from SMESH_Block | |
| bool | computeParameters (const gp_Pnt &thePoint, gp_XYZ &theParams, const gp_XYZ &theParamsHint, int) |
| double | distance () const |
| bool | findUVAround (const gp_Pnt &thePoint, const gp_XY &theUV, const TFace &tface, gp_XYZ &theParams, int nbGetWorstLimit) |
| Finds parameters corresponding to a given UV of a given face by searching around the starting solution. More... | |
| bool | findUVByHalfDivision (const gp_Pnt &thePoint, const gp_XY &theUV, const TFace &tface, gp_XYZ &theParams) |
| Finds parameters corresponding to a given UV of a given face using half-division. More... | |
| double | funcValue (double sqDist) const |
| void | init () |
| Call it after geometry initialisation. More... | |
| void | refineParametersOnFace (const gp_Pnt &thePoint, gp_XYZ &theParams, int theFaceID) |
| Find more precise solution. More... | |
| bool | saveBetterSolution (const gp_XYZ &theNewParams, gp_XYZ &theParams, double sqDistance) |
| Store a solution if it's better than a previous one. More... | |
Protected Attributes inherited from SMESH_Block | |
| TxyzPair | my3x3x3GridNodes [1000] |
| TEdge | myEdge [12] |
| TFace | myFace [6] |
| int | myFaceIndex |
| double | myFaceParam |
| bool | myGridComputed |
| int | myNbIterations |
| gp_XYZ | myParam |
| gp_XYZ | myPnt [8] |
| gp_XYZ | myPoint |
| bool | mySquareFunc |
| double | mySumDist |
| double | myTolerance |
| double | myValues [4] |
Detailed Description
Tool analyzing and giving access to a prism geometry treating it like a block, i.e. the four side faces are emulated by division/uniting of missing/excess faces. It also manage associations between block sub-shapes and a mesh.
Constructor & Destructor Documentation
◆ StdMeshers_PrismAsBlock()
| StdMeshers_PrismAsBlock::StdMeshers_PrismAsBlock | ( | ) |
Constructor. Initialization is needed.
◆ ~StdMeshers_PrismAsBlock()
| StdMeshers_PrismAsBlock::~StdMeshers_PrismAsBlock | ( | ) |
References Clear().
Member Function Documentation
◆ Clear()
| void StdMeshers_PrismAsBlock::Clear | ( | ) |
Free allocated memory.
Referenced by ~StdMeshers_PrismAsBlock().
◆ GetError()
| SMESH_ComputeErrorPtr StdMeshers_PrismAsBlock::GetError | ( | ) | const |
Return problem description.
◆ GetLayersTransformation()
| bool StdMeshers_PrismAsBlock::GetLayersTransformation | ( | std::vector< gp_Trsf > & | trsf, |
| const Prism_3D::TPrismTopo & | prism | ||
| ) | const |
Return transformations to get coordinates of nodes of each internal layer by nodes of the bottom. Layer is a set of nodes at a certain step from bottom to top.
References GetParam2ColumnMap(), SMESH_Algo::isDegenerated(), SMESH_subMesh::IsEmpty(), MeshDS(), Prism_3D::TPrismTopo::myBottomEdges, Prism_3D::TPrismTopo::myNbEdgesInWires, SubMesh(), and VerticalSize().
◆ GetNodeColumn()
| const TNodeColumn * StdMeshers_PrismAsBlock::GetNodeColumn | ( | const SMDS_MeshNode * | node | ) | const |
Return pointer to column of nodes.
- Parameters
-
node - bottom node from which the returned column goes up
- Return values
-
const TNodeColumn* - the found column
References SMDS_MeshElement::getshapeId().
◆ GetParam2ColumnMap()
| const TParam2ColumnMap* StdMeshers_PrismAsBlock::GetParam2ColumnMap | ( | const int | baseEdgeID, |
| bool & | isReverse | ||
| ) | const |
Return TParam2ColumnMap for a base edge.
- Parameters
-
baseEdgeID - base edge SMESHDS Index isReverse - columns in-block orientation
- Return values
-
const TParam2ColumnMap* - map
Referenced by GetLayersTransformation().
◆ HasNotQuadElemOnTop()
| bool StdMeshers_PrismAsBlock::HasNotQuadElemOnTop | ( | ) | const |
◆ Init()
| bool StdMeshers_PrismAsBlock::Init | ( | SMESH_MesherHelper * | helper, |
| const Prism_3D::TPrismTopo & | thePrism | ||
| ) |
Initialization.
- Parameters
-
helper - helper loaded with mesh and 3D shape prism - prism topology
- Return values
-
bool - false if a mesh or a shape are KO
- Parameters
-
helper - helper loaded with mesh and 3D shape thePrism - a prism data
- Return values
-
bool - false if a mesh or a shape are KO
References SMESH_Block::TEdge::GetCurve(), SMESH_Block::GetEdgeVertexIDs(), SMESH_Block::GetFaceEdgesIDs(), SMESH_MesherHelper::GetMesh(), SMESH_MesherHelper::GetMeshDS(), SMDS_MeshElement::getshapeId(), SMESH_Block::ID_F0yz, SMESH_Block::ID_F1yz, SMESH_Block::ID_FirstE, SMESH_Block::ID_FirstF, SMESH_Block::ID_FirstV, SMESH_Block::ID_Fx0z, SMESH_Block::ID_Fx1z, SMESH_Block::init(), SMESH_Block::Insert(), IsForwardEdge(), SMESH_MesherHelper::LoadNodeColumns(), MeshDS(), Prism_3D::TPrismTopo::myBottom, Prism_3D::TPrismTopo::myBottomEdges, SMESH_Block::myEdge, SMESH_Block::myFace, Prism_3D::TPrismTopo::myNbEdgesInWires, Prism_3D::TPrismTopo::myNotQuadOnTop, SMESH_Block::myPnt, Prism_3D::TPrismTopo::myTop, Prism_3D::TPrismTopo::myWallQuads, SMESH_ComputeError::New(), SMESH_Block::TEdge::Set(), SMESH_Block::TFace::Set(), and SMESHDS_Mesh::ShapeToIndex().
◆ IsForwardEdge()
|
static |
Check curve orientation of a bootom edge.
- Parameters
-
meshDS - mesh DS columnsMap - node columns map of side face bottomEdge - the bootom edge sideFaceID - side face in-block ID
- Return values
-
bool - true if orienation coinside with in-block froward orienation
- Parameters
-
meshDS - mesh DS columnsMap - node columns map of side face bottomEdge - the bootom edge sideFaceID - side face in-block ID
- Return values
-
bool - true if orientation coinside with in-block forward orientation
References SMESH_MesherHelper::GetSubShapeByNode(), SMESH_Block::ID_F0yz, SMESH_Block::ID_Fx1z, and SMESH_MesherHelper::IsClosedEdge().
Referenced by Init().
◆ Mesh()
| SMESH_Mesh* StdMeshers_PrismAsBlock::Mesh | ( | ) | const |
Return pointer to mesh.
- Return values
-
SMESH_Mesh - mesh
◆ MeshDS()
| SMESHDS_Mesh* StdMeshers_PrismAsBlock::MeshDS | ( | ) | const |
Return pointer to mesh DS.
- Return values
-
SMESHDS_Mesh - mesh DS
Referenced by GetLayersTransformation(), and Init().
◆ Shape()
| const TopoDS_Shape& StdMeshers_PrismAsBlock::Shape | ( | const int | shapeID | ) | const |
Return a in-block shape.
- Parameters
-
shapeID - shape given by in-block index
- Return values
-
SMESHDS_SubMesh* - found submesh
◆ ShapeID()
| int StdMeshers_PrismAsBlock::ShapeID | ( | const TopoDS_Shape & | shape | ) | const |
Return in-block ID of a shape.
- Parameters
-
shape - block sub-shape
- Return values
-
int - ID or zero if the shape has no ID
◆ SubMesh()
| SMESH_subMesh* StdMeshers_PrismAsBlock::SubMesh | ( | const int | shapeID | ) | const |
Return submesh of a shape.
- Parameters
-
shapeID - shape given by in-block index
- Return values
-
SMESH_subMesh* - found submesh
Referenced by GetLayersTransformation().
◆ SubMeshDS()
| SMESHDS_SubMesh* StdMeshers_PrismAsBlock::SubMeshDS | ( | const int | shapeID | ) | const |
Return submesh DS of a shape.
- Parameters
-
shapeID - shape given by in-block index
- Return values
-
SMESHDS_SubMesh* - found submesh DS
◆ VerticalSize()
| int StdMeshers_PrismAsBlock::VerticalSize | ( | ) | const |
Return number of nodes on every vertical edge.
- Return values
-
int - number of nodes including end nodes
Referenced by GetLayersTransformation().
The documentation for this class was generated from the following files:
- src/3rdParty/salomesmesh/inc/StdMeshers_Prism_3D.hxx
- src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Prism_3D.cpp
Public Member Functions inherited from
1.8.17