-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include "utilities.h"
+using SMESHUtils::ControlPnt;
+
extern "C"
{
#include "libmesh5.h"
elemIt = elementIterator( SMDSGeom ); \
if ( elemIt->more() ) \
{ \
- int totalNbElems = myMesh->GetMeshInfo().NbElements( SMDSGeom ); \
- int nbLinearElems = myMesh->GetMeshInfo().NbElements( LinType ); \
+ smIdType totalNbElems = myMesh->GetMeshInfo().NbElements( SMDSGeom );\
+ smIdType nbLinearElems = myMesh->GetMeshInfo().NbElements( LinType ); \
if ( totalNbElems - nbLinearElems > 0 ) \
{ \
GmfSetKwd(meshID, GmfKwd, totalNbElems - nbLinearElems); \
}}}}
-Control_Pnt::Control_Pnt(): gp_Pnt()
-{
- size=0;
-}
-Control_Pnt::Control_Pnt( const gp_Pnt& aPnt,
- double theSize): gp_Pnt( aPnt )
-{
- size=theSize;
-}
-Control_Pnt::Control_Pnt(double theX,
- double theY,
- double theZ): gp_Pnt(theX, theY, theZ)
-{
- size=0;
-}
-Control_Pnt::Control_Pnt(double theX,
- double theY,
- double theZ,
- double theSize): gp_Pnt(theX, theY, theZ)
-{
- size=theSize;
-}
-
DriverGMF_Write::DriverGMF_Write():
Driver_SMESHDS_Mesh(), _exportRequiredGroups( true )
{
{
Kernel_Utils::Localizer loc;
+ if ( Driver_Mesh::IsMeshTooLarge< int >( myMesh, /*checkIDs =*/ false))
+ return DRS_TOO_LARGE_MESH;
+
const int dim = 3, version = sizeof(double) < 8 ? 1 : 2;
int meshID = GmfOpenMesh( myFile.c_str(), GmfWrite, version, dim );
// nodes
std::map< const SMDS_MeshNode* , int > node2IdMap;
- int iN = 0, nbNodes = myMesh->NbNodes();
+ smIdType iN = 0, nbNodes = myMesh->NbNodes();
GmfSetKwd( meshID, GmfVertices, nbNodes );
double xyz[3];
SMDS_NodeIteratorPtr nodeIt = myMesh->nodesIterator();
// pyramids
BEGIN_ELEM_WRITE( SMDSEntity_Pyramid, GmfPyramids, pyra )
- node2IdMap[ pyra->GetNode( 0 )],
+ node2IdMap[ pyra->GetNode( 3 )],
node2IdMap[ pyra->GetNode( 2 )],
node2IdMap[ pyra->GetNode( 1 )],
- node2IdMap[ pyra->GetNode( 3 )],
+ node2IdMap[ pyra->GetNode( 0 )],
node2IdMap[ pyra->GetNode( 4 )],
END_ELEM_WRITE( pyra );
return DRS_OK;
}
-Driver_Mesh::Status DriverGMF_Write::PerformSizeMap( const std::vector<Control_Pnt>& points )
+Driver_Mesh::Status DriverGMF_Write::PerformSizeMap( const std::vector<ControlPnt>& points )
{
// const int dim = 3, version = sizeof(long) == 4 ? 2 : 3;
const int dim = 3, version = 2; // Version 3 not supported by mg-hexa
GmfSetKwd(solFileID, GmfSolAtVertices, pointsNumber, 1, TypTab);
// Read the control points information from the vector and write it into the files
- std::vector<Control_Pnt>::const_iterator points_it;
+ std::vector<ControlPnt>::const_iterator points_it;
for (points_it = points.begin(); points_it != points.end(); points_it++ )
{
GmfSetLin( verticesFileID, GmfVertices, points_it->X(), points_it->Y(), points_it->Z(), 0 );