X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FDriverCGNS%2FDriverCGNS_Write.cxx;h=12cea95ac76564595ee1907c8c95f273f6c15569;hp=edc474163b16f1616b63caf4a6502ab4990054e6;hb=a60773c9b369bb119ff1bfdfe894a83aa3ee5a55;hpb=f5016d85b7b4b88623723027a1585c6414c4dc66 diff --git a/src/DriverCGNS/DriverCGNS_Write.cxx b/src/DriverCGNS/DriverCGNS_Write.cxx index edc474163..12cea95ac 100644 --- a/src/DriverCGNS/DriverCGNS_Write.cxx +++ b/src/DriverCGNS/DriverCGNS_Write.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2013 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 @@ -81,6 +81,8 @@ namespace static int ids[] = { 0, 2, 1, 5, 4, 3 }; interlaces[SMDSEntity_Quad_Triangle] = ids; cgTypes [SMDSEntity_Quad_Triangle] = CGNS_ENUMV( TRI_6 ); + interlaces[SMDSEntity_BiQuad_Triangle] = ids; + cgTypes [SMDSEntity_BiQuad_Triangle] = CGNS_ENUMV( TRI_6 ); } { static int ids[] = { 0, 3, 2, 1 }; @@ -341,9 +343,12 @@ Driver_Mesh::Status DriverCGNS_Write::Perform() startID = cgID; if ( interlace ) // STANDARD elements + { + int cgnsNbNodes; // get nb nodes by element type, that can be less that elem->NbNodes() + cg_npe( cgType, &cgnsNbNodes ); do { - for ( int i = 0, nb = elem->NbNodes(); i < nb; ++i ) + for ( int i = 0; i < cgnsNbNodes; ++i ) elemData.push_back( cgnsID( elem->GetNode( interlace[i] ), n2cgID )); if ( elem->GetID() != cgID ) elem2cgID.insert( elem2cgID.end(), make_pair( elem, cgID )); @@ -351,7 +356,7 @@ Driver_Mesh::Status DriverCGNS_Write::Perform() elem = elemIt->more() ? elemIt->next() : 0; } while ( elem && elem->GetEntityType() == elemType ); - + } else if ( elemType == SMDSEntity_Polygon ) // POLYGONS do {