-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
void SMESH_Mesh_i::PrepareForWriting (const char* file, bool overwrite)
{
- SMESH_File aFile( file );
+ SMESH_File aFile( file, false );
SMESH_Comment msg;
- if (aFile.exists()) {
+ if ( aFile.exists() ) {
// existing filesystem node
if ( !aFile.isDirectory() ) {
if ( aFile.openForWriting() ) {
aPythonDump << " ]";
subMeshOrder.push_back( subMeshIds );
- // clear collected submeshes
+ // clear collected sub-meshes
set<const SMESH_subMesh*>::iterator clrIt = subMeshToClear.begin();
for ( ; clrIt != subMeshToClear.end(); clrIt++ )
if ( SMESH_subMesh* sm = (SMESH_subMesh*)*clrIt )
+ {
sm->ComputeStateEngine( SMESH_subMesh::CLEAN );
+ if ( SMESH_Algo* algo = sm->GetAlgo() ) // #16748
+ sm->AlgoStateEngine( SMESH_subMesh::MODIF_HYP, algo ); // to clear a cached algo
+ }
}
aPythonDump << " ])";