mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-28 18:30:35 +05:00
PAL13639 (EDF PAL 317 : SMESH : Create "0D Hypothesis")
ignore shape orientation at hypothesis addition/removal
This commit is contained in:
parent
926b45eef1
commit
ad9b0aac3a
@ -105,18 +105,18 @@ void SMESHDS_Mesh::ShapeToMesh(const TopoDS_Shape & S)
|
||||
//=======================================================================
|
||||
|
||||
bool SMESHDS_Mesh::AddHypothesis(const TopoDS_Shape & SS,
|
||||
const SMESHDS_Hypothesis * H)
|
||||
const SMESHDS_Hypothesis * H)
|
||||
{
|
||||
list<const SMESHDS_Hypothesis *>& alist=myShapeToHypothesis[SS];
|
||||
list<const SMESHDS_Hypothesis *>& alist=
|
||||
myShapeToHypothesis[SS.Oriented(TopAbs_FORWARD)]; // ignore orientation of SS
|
||||
|
||||
//Check if the Hypothesis is still present
|
||||
list<const SMESHDS_Hypothesis*>::iterator ith=alist.begin();
|
||||
//Check if the Hypothesis is still present
|
||||
list<const SMESHDS_Hypothesis*>::iterator ith=find(alist.begin(),alist.end(), H );
|
||||
|
||||
for (; ith!=alist.end(); ith++)
|
||||
if (H == *ith) return false;
|
||||
if (alist.end() != ith) return false;
|
||||
|
||||
alist.push_back(H);
|
||||
return true;
|
||||
alist.push_back(H);
|
||||
return true;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
@ -124,22 +124,23 @@ bool SMESHDS_Mesh::AddHypothesis(const TopoDS_Shape & SS,
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
bool SMESHDS_Mesh::RemoveHypothesis(const TopoDS_Shape & S,
|
||||
const SMESHDS_Hypothesis * H)
|
||||
bool SMESHDS_Mesh::RemoveHypothesis(const TopoDS_Shape & S,
|
||||
const SMESHDS_Hypothesis * H)
|
||||
{
|
||||
ShapeToHypothesis::iterator its=myShapeToHypothesis.find(S);
|
||||
if(its!=myShapeToHypothesis.end())
|
||||
{
|
||||
list<const SMESHDS_Hypothesis*>::iterator ith=(*its).second.begin();
|
||||
ShapeToHypothesis::iterator its=
|
||||
myShapeToHypothesis.find(S.Oriented(TopAbs_FORWARD)); // ignore orientation of S
|
||||
|
||||
for (; ith!=(*its).second.end(); ith++)
|
||||
if (H == *ith)
|
||||
{
|
||||
(*its).second.erase(ith);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
if(its!=myShapeToHypothesis.end())
|
||||
{
|
||||
list<const SMESHDS_Hypothesis *>& alist=(*its).second;
|
||||
list<const SMESHDS_Hypothesis*>::iterator ith=find(alist.begin(),alist.end(), H );
|
||||
if (ith != alist.end())
|
||||
{
|
||||
alist.erase(ith);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
@ -1015,14 +1016,16 @@ list<int> SMESHDS_Mesh::SubMeshIndices()
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
const list<const SMESHDS_Hypothesis*>& SMESHDS_Mesh::GetHypothesis(
|
||||
const TopoDS_Shape & S) const
|
||||
const list<const SMESHDS_Hypothesis*>&
|
||||
SMESHDS_Mesh::GetHypothesis(const TopoDS_Shape & S) const
|
||||
{
|
||||
if (myShapeToHypothesis.find(S)!=myShapeToHypothesis.end())
|
||||
return myShapeToHypothesis.find(S)->second;
|
||||
ShapeToHypothesis::const_iterator its=
|
||||
myShapeToHypothesis.find(S.Oriented(TopAbs_FORWARD)); // ignore orientation of S
|
||||
if (its!=myShapeToHypothesis.end())
|
||||
return its->second;
|
||||
|
||||
static list<const SMESHDS_Hypothesis*> empty;
|
||||
return empty;
|
||||
static list<const SMESHDS_Hypothesis*> empty;
|
||||
return empty;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
@ -1060,7 +1063,7 @@ bool SMESHDS_Mesh::HasMeshElements(const TopoDS_Shape & S)
|
||||
//=======================================================================
|
||||
bool SMESHDS_Mesh::HasHypothesis(const TopoDS_Shape & S)
|
||||
{
|
||||
return myShapeToHypothesis.find(S)!=myShapeToHypothesis.end();
|
||||
return myShapeToHypothesis.find(S.Oriented(TopAbs_FORWARD))!=myShapeToHypothesis.end();
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
|
Loading…
Reference in New Issue
Block a user