23033: EDF 10568 SMESH: wrong header when exporting 2D to gmf

Write 'MeshVersionFormatted 2' instead of 'MeshVersionFormatted 3'
  though '3' is strongly recomended by libmesh manual


+ IPAL52653: Some quality controls does not work (SIGSEGV)
This commit is contained in:
eap 2015-04-02 17:48:04 +03:00
parent b0a962d83d
commit c1754b24c3
3 changed files with 14 additions and 15 deletions

View File

@ -121,7 +121,7 @@ Driver_Mesh::Status DriverGMF_Write::Perform()
{
Kernel_Utils::Localizer loc;
const int dim = 3, version = sizeof(long) == 4 ? 2 : 3;
const int dim = 3, version = sizeof(double) < 8 ? 1 : 2;
int meshID = GmfOpenMesh( myFile.c_str(), GmfWrite, version, dim );
if ( !meshID )

View File

@ -516,17 +516,17 @@ SMESH_DeviceActor
myVisualObj->UpdateFunctor(theFunctor);
using namespace SMESH::Controls;
if ( dynamic_cast<FreeBorders *>(theFunctor.get()) ||
dynamic_cast<FreeFaces *>(theFunctor.get()) ||
dynamic_cast<BareBorderVolume *>(theFunctor.get()) ||
dynamic_cast<BareBorderFace *>(theFunctor.get()) ||
dynamic_cast<OverConstrainedVolume*>(theFunctor.get()) ||
dynamic_cast<CoincidentElements1D *>(theFunctor.get()) ||
dynamic_cast<CoincidentElements2D *>(theFunctor.get()) ||
dynamic_cast<CoincidentElements3D *>(theFunctor.get()) ||
dynamic_cast<OverConstrainedFace *>(theFunctor.get()))
Predicate* aPredicate = 0;
if (( aPredicate = dynamic_cast<FreeBorders *>(theFunctor.get())) ||
( aPredicate = dynamic_cast<FreeFaces *>(theFunctor.get())) ||
( aPredicate = dynamic_cast<BareBorderVolume *>(theFunctor.get())) ||
( aPredicate = dynamic_cast<BareBorderFace *>(theFunctor.get())) ||
( aPredicate = dynamic_cast<OverConstrainedVolume*>(theFunctor.get())) ||
( aPredicate = dynamic_cast<CoincidentElements1D *>(theFunctor.get())) ||
( aPredicate = dynamic_cast<CoincidentElements2D *>(theFunctor.get())) ||
( aPredicate = dynamic_cast<CoincidentElements3D *>(theFunctor.get())) ||
( aPredicate = dynamic_cast<OverConstrainedFace *>(theFunctor.get())))
{
Predicate* aPredicate = dynamic_cast<Predicate*>(theFunctor.get());
myExtractUnstructuredGrid->SetModeOfChanging(VTKViewer_ExtractUnstructuredGrid::eAdding);
vtkUnstructuredGrid* aGrid = myVisualObj->GetUnstructuredGrid();
vtkIdType aNbCells = aGrid->GetNumberOfCells();
@ -588,10 +588,9 @@ SMESH_DeviceActor
SetUnstructuredGrid(aDataSet);
aDataSet->Delete();
}
else if(dynamic_cast<FreeNodes *>(theFunctor.get()) ||
dynamic_cast<CoincidentNodes*>(theFunctor.get()))
else if (( aPredicate = dynamic_cast<FreeNodes *>(theFunctor.get())) ||
( aPredicate = dynamic_cast<CoincidentNodes*>(theFunctor.get())))
{
Predicate* aPredicate = dynamic_cast<Predicate*>(theFunctor.get());
myExtractUnstructuredGrid->SetModeOfChanging(VTKViewer_ExtractUnstructuredGrid::eAdding);
vtkIdType aNbNodes = myVisualObj->GetNbEntities(SMDSAbs_Node);
for( vtkIdType i = 0; i < aNbNodes; i++ ){

View File

@ -425,7 +425,7 @@ protected:
bool _requireDiscreteBoundary;// GetDim()-1 mesh must be present. Default TRUE
bool _requireShape; // work with GetDim()-1 mesh bound to geom only. Default TRUE
bool _supportSubmeshes; // if !_requireDiscreteBoundary. Default FALSE
bool _neededLowerHyps[4]; // hyp dims needed by algo that !NeedDiscreteBoundary(). Df. FALSE
bool _neededLowerHyps[4]; // hyp dims needed by algo that !_requireDiscreteBoundary. Df. FALSE
// indicates if quadratic mesh creation is required,
// is usually set like this: _quadraticMesh = SMESH_MesherHelper::IsQuadraticSubMesh(shape)