Copy elements from other the mesh. More...
#include <StdMeshers_Import_1D.hxx>
Public Types | |
typedef std::map< const SMDS_MeshElement *, const SMDS_MeshElement *, TIDCompare > | TElemElemMap |
typedef std::map< const SMDS_MeshNode *, const SMDS_MeshNode *, TIDCompare > | TNodeNodeMap |
Public Types inherited from SMESH_Algo | |
enum | EMeshError { MEr_OK = 0 , MEr_HOLES , MEr_BAD_ORI , MEr_EMPTY } |
Public Types inherited from SMESH_Hypothesis | |
enum | Hypothesis_Status { HYP_OK = 0 , HYP_MISSING , HYP_CONCURENT , HYP_BAD_PARAMETER , HYP_HIDDEN_ALGO , HYP_HIDING_ALGO , HYP_UNKNOWN_FATAL , HYP_INCOMPATIBLE , HYP_NOTCONFORM , HYP_ALREADY_EXIST , HYP_BAD_DIM , HYP_BAD_SUBSHAPE , HYP_BAD_GEOMETRY , HYP_NEED_SHAPE , HYP_INCOMPAT_HYPS } |
Public Types inherited from SMESHDS_Hypothesis | |
enum | hypothesis_type { PARAM_ALGO , ALGO_0D , ALGO_1D , ALGO_2D , ALGO_3D } |
Public Member Functions | |
virtual bool | CheckHypothesis (SMESH_Mesh &aMesh, const TopoDS_Shape &aShape, SMESH_Hypothesis::Hypothesis_Status &aStatus) |
virtual bool | Compute (SMESH_Mesh &aMesh, const TopoDS_Shape &aShape) |
virtual bool | Evaluate (SMESH_Mesh &aMesh, const TopoDS_Shape &aShape, MapShapeNbElems &aResMap) |
virtual void | SetEventListener (SMESH_subMesh *subMesh) |
Sets event listener to submeshes if necessary. More... | |
StdMeshers_Import_1D (int hypId, int studyId, SMESH_Gen *gen) | |
virtual void | SubmeshRestored (SMESH_subMesh *subMesh) |
Allow algo to do something after persistent restoration. More... | |
Public Member Functions inherited from SMESH_1D_Algo | |
SMESH_1D_Algo (int hypId, int studyId, SMESH_Gen *gen) | |
SMESH_1D_Algo (int hypId, int studyId, SMESH_Gen *gen) | |
virtual | ~SMESH_1D_Algo () |
Public Member Functions inherited from SMESH_Algo | |
virtual void | CancelCompute () |
Sets _computeCanceled to true. It's usage depends on implementation of a particular mesher. More... | |
virtual bool | CheckHypothesis (SMESH_Mesh &aMesh, const TopoDS_Shape &aShape, SMESH_Hypothesis::Hypothesis_Status &aStatus)=0 |
Check hypothesis definition to mesh a shape. More... | |
virtual bool | Compute (SMESH_Mesh &aMesh, const TopoDS_Shape &aShape)=0 |
Computes mesh on a shape. More... | |
virtual bool | Compute (SMESH_Mesh &aMesh, SMESH_MesherHelper *aHelper) |
Computes mesh without geometry. More... | |
virtual bool | Evaluate (SMESH_Mesh &aMesh, const TopoDS_Shape &aShape, MapShapeNbElems &aResMap)=0 |
evaluates size of prospective mesh on a shape More... | |
const std::list< const SMESHDS_Hypothesis * > & | GetAppliedHypothesis (SMESH_Mesh &aMesh, const TopoDS_Shape &aShape, const bool ignoreAuxiliary=true) const |
Returns a list of compatible hypotheses assigned to a shape in a mesh. More... | |
const SMESH_HypoFilter * | GetCompatibleHypoFilter (const bool ignoreAuxiliary) const |
Returns the filter recognizing only compatible hypotheses. More... | |
const std::vector< std::string > & | GetCompatibleHypothesis () |
Returns all types of compatible hypotheses. More... | |
SMESH_ComputeErrorPtr | GetComputeError () const |
return compute error More... | |
const Features & | GetFeatures () const |
virtual double | GetProgress () const |
If possible, returns progress of computation [0.,1.]. More... | |
double | GetProgressByTic () const |
Return compute progress by nb of calls of this method. More... | |
virtual const std::list< const SMESHDS_Hypothesis * > & | GetUsedHypothesis (SMESH_Mesh &aMesh, const TopoDS_Shape &aShape, const bool ignoreAuxiliary=true) const |
Returns a list of compatible hypotheses used to mesh a shape. More... | |
void | InitComputeError () |
initialize compute error etc. before call of Compute() More... | |
virtual std::istream & | LoadFrom (std::istream &load) |
Loads nothing from a stream. More... | |
bool | NeedDiscreteBoundary () const |
bool | NeedLowerHyps (int dim) const |
bool | NeedShape () const |
int | NumberOfPoints (SMESH_Mesh &aMesh, const TopoDS_Wire &W) |
bool | OnlyUnaryInput () const |
virtual std::ostream & | SaveTo (std::ostream &save) |
Saves nothing in a stream. More... | |
virtual void | SetEventListener (SMESH_subMesh *subMesh) |
Sets event listener to submeshes if necessary. More... | |
virtual bool | SetParametersByDefaults (const TDefaults &dflts, const SMESH_Mesh *theMesh=0) |
Initialize my parameter values by default parameters. More... | |
virtual bool | SetParametersByMesh (const SMESH_Mesh *theMesh, const TopoDS_Shape &theShape) |
Just return false as the algorithm does not hold parameters values. More... | |
SMESH_Algo (int hypId, int studyId, SMESH_Gen *gen) | |
Creates algorithm. More... | |
std::vector< SMESH_subMesh * > & | SubMeshesToCompute () |
virtual void | SubmeshRestored (SMESH_subMesh *subMesh) |
Allow algo to do something after persistent restoration. More... | |
bool | SupportSubmeshes () const |
virtual | ~SMESH_Algo () |
Destructor. More... | |
Public Member Functions inherited from SMESH_Hypothesis | |
void | ClearParameters () |
virtual bool | DataDependOnParams () const |
The returned value is used by NotifySubMeshesHypothesisModification() to decide to call subMesh->AlgoStateEngine( MODIF_HYP, hyp ) or not if subMesh is ready to be computed (algo+hyp==OK) but not yet computed. True result is reasonable for example if EventListeners depend on parameters of hypothesis. More... | |
virtual int | GetDim () const |
SMESH_Gen * | GetGen () const |
char * | GetLastParameters () const |
virtual const char * | GetLibName () const |
SMESH_Mesh * | GetMeshByPersistentID (int id) |
Find a mesh with given persistent ID. More... | |
char * | GetParameters () const |
virtual int | GetShapeType () const |
int | GetStudyId () const |
virtual bool | IsAuxiliary () const |
Return true if me is an auxiliary hypothesis. More... | |
virtual void | NotifySubMeshesHypothesisModification () |
void | SetLastParameters (const char *theParameters) |
void | SetLibName (const char *theLibName) |
void | SetParameters (const char *theParameters) |
virtual bool | SetParametersByDefaults (const TDefaults &dflts, const SMESH_Mesh *theMesh=0)=0 |
Initialize my parameter values by default parameters. More... | |
virtual bool | SetParametersByMesh (const SMESH_Mesh *theMesh, const TopoDS_Shape &theShape)=0 |
Initialize my parameter values by the mesh built on the geometry. More... | |
SMESH_Hypothesis (int hypId, int studyId, SMESH_Gen *gen) | |
virtual | ~SMESH_Hypothesis () |
Public Member Functions inherited from SMESHDS_Hypothesis | |
int | GetID () const |
const char * | GetName () const |
int | GetType () const |
bool | IsSameName (const SMESHDS_Hypothesis &other) const |
Compare types of hypotheses. More... | |
virtual std::istream & | LoadFrom (std::istream &load)=0 |
bool | operator!= (const SMESHDS_Hypothesis &other) const |
virtual bool | operator== (const SMESHDS_Hypothesis &other) const |
virtual std::ostream & | SaveTo (std::ostream &save)=0 |
SMESHDS_Hypothesis (int hypId) | |
virtual | ~SMESHDS_Hypothesis () |
Static Public Member Functions | |
static void | getMaps (const SMESH_Mesh *srcMesh, SMESH_Mesh *tgtMesh, TNodeNodeMap *&n2n, TElemElemMap *&e2e) |
Return node-node and element-element maps for import of geiven source mesh. More... | |
static SMESH_subMesh * | getSubMeshOfCopiedMesh (SMESH_Mesh &tgtMesh, SMESH_Mesh &srcMesh) |
Return submesh corresponding to the copied mesh. More... | |
static void | importMesh (const SMESH_Mesh *srcMesh, SMESH_Mesh &tgtMesh, StdMeshers_ImportSource1D *srcHyp, const TopoDS_Shape &tgtShape) |
Copy mesh and groups. More... | |
static void | setEventListener (SMESH_subMesh *subMesh, StdMeshers_ImportSource1D *sourceHyp) |
Set needed event listeners and create a submesh for a copied mesh. More... | |
Static Public Member Functions inherited from SMESH_Algo | |
static GeomAbs_Shape | Continuity (TopoDS_Edge E1, TopoDS_Edge E2) |
Return continuity of two edges. More... | |
static double | EdgeLength (const TopoDS_Edge &E) |
Compute length of an edge. More... | |
static const Features & | GetFeatures (const std::string &algoType) |
Returns a structure describing algorithm features. More... | |
static EMeshError | GetMeshError (SMESH_subMesh *subMesh) |
Finds topological errors of a sub-mesh. More... | |
static bool | GetNodeParamOnEdge (const SMESHDS_Mesh *theMesh, const TopoDS_Edge &theEdge, std::vector< double > &theParams) |
Fill vector of node parameters on geometrical edge, including vertex nodes. More... | |
static bool | GetSortedNodesOnEdge (const SMESHDS_Mesh *theMesh, const TopoDS_Edge &theEdge, const bool ignoreMediumNodes, std::map< double, const SMDS_MeshNode * > &theNodes, const SMDSAbs_ElementType typeToCheck=SMDSAbs_All) |
Fill map of node parameter on geometrical edge to node it-self. More... | |
static bool | IsContinuous (const TopoDS_Edge &E1, const TopoDS_Edge &E2) |
Return true if an edge can be considered as a continuation of another. More... | |
static bool | isDegenerated (const TopoDS_Edge &E) |
Return true if an edge has no 3D curve. More... | |
static bool | IsStraight (const TopoDS_Edge &E, const bool degenResult=false) |
Return true if an edge can be considered straight. More... | |
static const SMDS_MeshNode * | VertexNode (const TopoDS_Vertex &V, const SMESH_Mesh *mesh) |
Return the node built on a vertex. A node moved to other geometry by MergeNodes() is also returned. More... | |
static const SMDS_MeshNode * | VertexNode (const TopoDS_Vertex &V, const SMESHDS_Mesh *meshDS) |
Return the node built on a vertex. More... | |
static const SMDS_MeshNode * | VertexNode (const TopoDS_Vertex &V, const SMESHDS_SubMesh *edgeSM, const SMESH_Mesh *mesh, const bool checkV=true) |
Return the node built on a vertex. A node moved to other geometry by MergeNodes() is also returned. More... | |
Static Public Member Functions inherited from SMESH_Hypothesis | |
static bool | IsStatusFatal (Hypothesis_Status theStatus) |
Additional Inherited Members | |
Protected Member Functions inherited from SMESH_Algo | |
void | addBadInputElement (const SMDS_MeshElement *elem) |
store a bad input element preventing computation, which may be a temporary one i.e. not residing the mesh, then it will be deleted by InitComputeError() More... | |
void | addBadInputElements (const SMESHDS_SubMesh *sm, const bool addNodes=false) |
bool | error (const SMESH_Comment &comment="") |
store COMPERR_ALGO_FAILED error and comment and then return false More... | |
bool | error (int error, const SMESH_Comment &comment="") |
store error and comment and then return ( error == COMPERR_OK ) More... | |
bool | error (SMESH_ComputeErrorPtr error) |
store error and return error->IsOK() More... | |
Copy elements from other the mesh.
typedef std::map<const SMDS_MeshElement*,const SMDS_MeshElement*,TIDCompare> StdMeshers_Import_1D::TElemElemMap |
typedef std::map<const SMDS_MeshNode*, const SMDS_MeshNode*, TIDCompare> StdMeshers_Import_1D::TNodeNodeMap |
Creates StdMeshers_Import_1D
|
virtual |
Check presence of a hypothesis
Implements SMESH_Algo.
References SMESHDS_Hypothesis::GetName(), SMESH_Mesh::GetSubMesh(), SMESH_Algo::GetUsedHypothesis(), SMESH_Hypothesis::HYP_ALREADY_EXIST, SMESH_Hypothesis::HYP_BAD_PARAMETER, SMESH_Hypothesis::HYP_INCOMPATIBLE, SMESH_Hypothesis::HYP_MISSING, and SMESH_Hypothesis::HYP_OK.
Referenced by SetEventListener().
|
virtual |
Import elements from the other mesh
Implements SMESH_Algo.
References SMESHDS_Mesh::AddEdge(), SMESHDS_Mesh::AddNode(), SMESH_MesherHelper::AddNode(), SMDS_MeshElement::begin_nodes(), SMESH_MesherHelper::CheckNodeU(), SMESH_Algo::error(), SMESHDS_GroupBase::GetElements(), getMaps(), SMESHDS_GroupBase::GetMesh(), SMESH_Hypothesis::GetMeshByPersistentID(), SMESH_Mesh::GetMeshDS(), SMESH_MesherHelper::GetMeshDS(), SMDS_MeshElement::GetNode(), SMESHDS_Mesh::GetPersistentId(), importMesh(), SMESHDS_Mesh::MeshElements(), SMDS_MeshElement::NbNodes(), SMESHDS_Mesh::RemoveNode(), SMESHDS_Mesh::SetMeshElementOnShape(), SMESHDS_Mesh::SetNodeOnEdge(), SMESH_MesherHelper::SetSubShape(), SMDS_MeshNode::setXYZ(), SMESHDS_Mesh::ShapeToIndex(), and SMESH_Algo::VertexNode().
|
virtual |
Predict nb of mesh entities created by Compute()
Implements SMESH_Algo.
References SMESH_MesherHelper::AddNode(), SMESH_Algo::error(), SMESH_subMesh::Evaluate(), SMESHDS_GroupBase::GetElements(), SMDS_MeshElement::GetNode(), SMESH_Mesh::GetSubMesh(), getSubMeshOfCopiedMesh(), SMESH_MesherHelper::MaxTolerance(), and SMDS_MeshInfo::NbEntities().
|
static |
Return node-node and element-element maps for import of geiven source mesh.
Referenced by Compute(), and StdMeshers_Import_1D2D::Compute().
|
static |
Return submesh corresponding to the copied mesh.
References SMESH_Mesh::GetSubMeshContaining().
Referenced by Evaluate(), and StdMeshers_Import_1D2D::Evaluate().
|
static |
Copy mesh and groups.
References SMDS_MeshGroup::Add(), SMESHDS_SubMesh::AddElement(), SMESH_MeshEditor::AddElement(), SMESH_Mesh::AddGroup(), SMESHDS_SubMesh::AddNode(), SMESHDS_Mesh::AddNode(), SMDS_MeshElement::begin_nodes(), SMDS_Mesh::elementsIterator(), SMDS_Mesh::FindElement(), SMESHDS_GroupBase::GetElements(), SMESH_Group::GetGroupDS(), SMESH_Mesh::GetGroups(), SMESH_Mesh::GetMeshDS(), SMESH_Group::GetName(), SMESHDS_GroupBase::GetType(), SMDS_MeshElement::GetType(), SMESH_MeshEditor::ElemFeatures::Init(), SMESHDS_SubMesh::NbElements(), SMDS_MeshNode::NbInverseElements(), SMDS_Mesh::NbNodes(), SMDS_MeshElement::NbNodes(), SMESHDS_SubMesh::NbNodes(), SMDS_Mesh::nodesIterator(), SMESHDS_Group::SMDSGroup(), StdMeshers_ImportSource1D::StoreResultGroups(), SMDS_MeshNode::X(), SMDS_MeshNode::Y(), and SMDS_MeshNode::Z().
Referenced by Compute(), and StdMeshers_Import_1D2D::Compute().
|
virtual |
Sets event listener to submeshes if necessary.
subMesh | - submesh where algo is set |
This method is called when a submesh gets HYP_OK algo_state. After being set, event listener is notified on each event of a submesh. By default none listener is set
subMesh | - submesh where algo is set |
After being set, event listener is notified on each event of a submesh. By default non listener is set
Reimplemented from SMESH_Algo.
References CheckHypothesis(), SMESH_subMesh::GetFather(), SMESH_subMesh::GetSubShape(), and setEventListener().
Referenced by SubmeshRestored().
|
static |
Set needed event listeners and create a submesh for a copied mesh.
This method is called only if a submesh has HYP_OK algo_state.
References StdMeshers_ImportSource1D::GetSourceMeshes().
Referenced by SetEventListener(), and StdMeshers_Import_1D2D::SetEventListener().
|
virtual |
Allow algo to do something after persistent restoration.
subMesh | - restored submesh |
This method is called only if a submesh has HYP_OK algo_state.
Reimplemented from SMESH_Algo.
References SetEventListener().