Hexotic size maps first working prototype (script only)

This commit is contained in:
rnc 2013-06-03 14:42:41 +00:00
parent 5c19c58d3d
commit 71c2daf85e
2 changed files with 71 additions and 39 deletions

View File

@ -340,45 +340,76 @@ Driver_Mesh::Status DriverGMF_Write::Perform()
return DRS_OK; return DRS_OK;
} }
void DriverGMF_Write::AddSizeMapSection(int meshID, int nbControlPoints) // void DriverGMF_Write::AddSizeMapSection(int meshID, int nbControlPoints)
{ // {
// // const int dim = 3, version = sizeof(long) == 4 ? 2 : 3;
// // int meshID = GmfOpenMesh( myFile.c_str(), GmfWrite, version, dim );
// int TypTab[] = {GmfSca};
// GmfSetKwd(meshID, GmfSolAtVertices, nbControlPoints, 1, TypTab);
// // GmfCloseMesh(meshID);
// // return DRS_OK;
// }
//
// void DriverGMF_Write::AppendSize(int meshID, double size)
// {
// // const int dim = 3, version = sizeof(long) == 4 ? 2 : 3;
// // int meshID = GmfOpenMesh( myFile.c_str(), GmfWrite, version, dim );
// // int nbPoints = GmfStatKwd( meshID, GmfSolAtVertices);
// // GmfSetKwd( meshID, GmfSolAtVertices, nbPoints+1, 1, 1 );
// double ValTab[] = {size};
// GmfSetLin( meshID, GmfSolAtVertices, ValTab);
// // return DRS_OK;
// }
//
// int DriverGMF_Write::NbVerticesInFile()
// {
// int dim, version;
// // open the file
// int meshID = GmfOpenMesh( myFile.c_str(), GmfRead, &version, &dim );
// int nbVertices = GmfStatKwd( meshID, GmfVertices);
// return nbVertices;
// }
//
// int DriverGMF_Write::OpenFileToWrite()
// {
// const int dim = 3, version = sizeof(long) == 4 ? 2 : 3; // const int dim = 3, version = sizeof(long) == 4 ? 2 : 3;
// int meshID = GmfOpenMesh( myFile.c_str(), GmfWrite, version, dim ); // int meshID = GmfOpenMesh( myFile.c_str(), GmfWrite, version, dim );
int TypTab[] = {GmfSca}; // return meshID;
GmfSetKwd(meshID, GmfSolAtVertices, nbControlPoints, 1, TypTab); // }
// GmfCloseMesh(meshID); //
// return DRS_OK; // void DriverGMF_Write::CloseFile( int meshID )
} // {
// GmfCloseMesh( meshID );
// }
void DriverGMF_Write::AppendSize(int meshID, double size) void DriverGMF_Write::WriteSizeMapFromMesh( double size )
{
// const int dim = 3, version = sizeof(long) == 4 ? 2 : 3;
// int meshID = GmfOpenMesh( myFile.c_str(), GmfWrite, version, dim );
// int nbPoints = GmfStatKwd( meshID, GmfSolAtVertices);
// GmfSetKwd( meshID, GmfSolAtVertices, nbPoints+1, 1, 1 );
double ValTab[] = {size};
GmfSetLin( meshID, GmfSolAtVertices, ValTab);
// return DRS_OK;
}
int DriverGMF_Write::NbVerticesInFile()
{
int dim, version;
// open the file
int meshID = GmfOpenMesh( myFile.c_str(), GmfRead, &version, &dim );
int nbVertices = GmfStatKwd( meshID, GmfVertices);
return nbVertices;
}
int DriverGMF_Write::OpenFileToWrite()
{ {
// Open file
const int dim = 3, version = sizeof(long) == 4 ? 2 : 3; const int dim = 3, version = sizeof(long) == 4 ? 2 : 3;
int meshID = GmfOpenMesh( myFile.c_str(), GmfWrite, version, dim ); int meshID = GmfOpenMesh( myFile.c_str(), GmfWrite, version, dim );
return meshID;
}
void DriverGMF_Write::CloseFile( int meshID ) // Vertices Keyword
{ int iN = 0, nbNodes = myMesh->NbNodes();
GmfSetKwd( meshID, GmfVertices, nbNodes );
double xyz[3];
SMDS_NodeIteratorPtr nodeIt = myMesh->nodesIterator();
while ( nodeIt->more() )
{
const SMDS_MeshNode* n = nodeIt->next();
n->GetXYZ( xyz );
GmfSetLin( meshID, GmfVertices, xyz[0], xyz[1], xyz[2], n->getshapeId() );
}
// solAtVertices Keyword
int TypTab[] = {GmfSca};
GmfSetKwd(meshID, GmfSolAtVertices, nbNodes, 1, TypTab);
for ( int i=1; i<= nbNodes; i++)
{
double ValTab[] = {size};
GmfSetLin( meshID, GmfSolAtVertices, ValTab);
}
// Close File
GmfCloseMesh( meshID ); GmfCloseMesh( meshID );
} }

View File

@ -49,11 +49,12 @@ public:
} }
virtual Status Perform(); virtual Status Perform();
void AddSizeMapSection( int meshID, int nbControlPoints ); void WriteSizeMapFromMesh( double size );
void AppendSize( int meshID, double size ); // void AddSizeMapSection( int meshID, int nbControlPoints );
int NbVerticesInFile(); // void AppendSize( int meshID, double size );
int OpenFileToWrite(); // int NbVerticesInFile();
void CloseFile( int ); // int OpenFileToWrite();
// void CloseFile( int );
private: private: