Salome HOME
projects
/
modules
/
smesh.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
22525: EDF 2863 SMESH : problem between BLSurf with viscous layer and projection
[modules/smesh.git]
/
src
/
SMESH
/
SMESH_MesherHelper.cxx
diff --git
a/src/SMESH/SMESH_MesherHelper.cxx
b/src/SMESH/SMESH_MesherHelper.cxx
index ded66ca31447cd9704fe13988619cc7a2f69c033..6a97d47246cc5928909c9a7037536ebf849d245b 100644
(file)
--- a/
src/SMESH/SMESH_MesherHelper.cxx
+++ b/
src/SMESH/SMESH_MesherHelper.cxx
@@
-478,7
+478,10
@@
bool SMESH_MesherHelper::toCheckPosOnShape(int shapeID ) const
void SMESH_MesherHelper::setPosOnShapeValidity(int shapeID, bool ok ) const
{
void SMESH_MesherHelper::setPosOnShapeValidity(int shapeID, bool ok ) const
{
- ((SMESH_MesherHelper*)this)->myNodePosShapesValidity.insert( make_pair( shapeID, ok));
+ std::map< int,bool >::iterator sh_ok =
+ ((SMESH_MesherHelper*)this)->myNodePosShapesValidity.insert( make_pair( shapeID, ok)).first;
+ if ( !ok )
+ sh_ok->second = ok;
}
//=======================================================================
}
//=======================================================================
@@
-661,9
+664,10
@@
bool SMESH_MesherHelper::CheckNodeUV(const TopoDS_Face& F,
const bool force,
double distXYZ[4]) const
{
const bool force,
double distXYZ[4]) const
{
- int shapeID = n->getshapeId();
+ int
shapeID = n->getshapeId();
bool infinit = ( Precision::IsInfinite( uv.X() ) || Precision::IsInfinite( uv.Y() ));
bool infinit = ( Precision::IsInfinite( uv.X() ) || Precision::IsInfinite( uv.Y() ));
- if ( force || toCheckPosOnShape( shapeID ) || infinit )
+ bool zero = ( uv.X() == 0. && uv.Y() == 0. );
+ if ( force || toCheckPosOnShape( shapeID ) || infinit || zero )
{
// check that uv is correct
TopLoc_Location loc;
{
// check that uv is correct
TopLoc_Location loc;
@@
-898,7
+902,8
@@
bool SMESH_MesherHelper::CheckNodeU(const TopoDS_Edge& E,
{
int shapeID = n->getshapeId();
bool infinit = Precision::IsInfinite( u );
{
int shapeID = n->getshapeId();
bool infinit = Precision::IsInfinite( u );
- if ( force || toCheckPosOnShape( shapeID ) || infinit )
+ bool zero = ( u == 0. );
+ if ( force || toCheckPosOnShape( shapeID ) || infinit || zero )
{
TopLoc_Location loc; double f,l;
Handle(Geom_Curve) curve = BRep_Tool::Curve( E,loc,f,l );
{
TopLoc_Location loc; double f,l;
Handle(Geom_Curve) curve = BRep_Tool::Curve( E,loc,f,l );