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
22711: [CEA 1297] Regression of mesh with a projection on a spherical face
[modules/smesh.git]
/
src
/
DriverCGNS
/
DriverCGNS_Write.cxx
diff --git
a/src/DriverCGNS/DriverCGNS_Write.cxx
b/src/DriverCGNS/DriverCGNS_Write.cxx
index 517a56f25afe361d8d45c93e042b7fd11926fcdc..1afa5423954d2fe1978d9b1e3dca416480e8dd1f 100644
(file)
--- a/
src/DriverCGNS/DriverCGNS_Write.cxx
+++ b/
src/DriverCGNS/DriverCGNS_Write.cxx
@@
-1,4
+1,4
@@
-// Copyright (C) 2007-201
2
CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-201
4
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
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@
-6,7
+6,7
@@
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License
, or (at your option) any later version
.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@@
-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 );
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 };
}
{
static int ids[] = { 0, 3, 2, 1 };
@@
-139,7
+141,7
@@
namespace
}
{
static int ids[] = { 0,3,2,1,4,7,6,5,11,10,9,8,12,15,14,13,19,18,17,16,
}
{
static int ids[] = { 0,3,2,1,4,7,6,5,11,10,9,8,12,15,14,13,19,18,17,16,
- 20, 24,23,22,21, 25};
+ 20, 24,23,22,21, 25
, 26
};
interlaces[SMDSEntity_TriQuad_Hexa] = ids;
cgTypes [SMDSEntity_TriQuad_Hexa] = CGNS_ENUMV( HEXA_27 );
}
interlaces[SMDSEntity_TriQuad_Hexa] = ids;
cgTypes [SMDSEntity_TriQuad_Hexa] = CGNS_ENUMV( HEXA_27 );
}
@@
-341,9
+343,12
@@
Driver_Mesh::Status DriverCGNS_Write::Perform()
startID = cgID;
if ( interlace ) // STANDARD elements
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
{
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 ));
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 );
elem = elemIt->more() ? elemIt->next() : 0;
}
while ( elem && elem->GetEntityType() == elemType );
-
+ }
else if ( elemType == SMDSEntity_Polygon ) // POLYGONS
do
{
else if ( elemType == SMDSEntity_Polygon ) // POLYGONS
do
{