Salome HOME
Hexotic size maps first working prototype (script only)
authorrnc <rnc@opencascade.com>
Mon, 3 Jun 2013 14:42:41 +0000 (14:42 +0000)
committerrnc <rnc@opencascade.com>
Mon, 3 Jun 2013 14:42:41 +0000 (14:42 +0000)
src/DriverGMF/DriverGMF_Write.cxx
src/DriverGMF/DriverGMF_Write.hxx

index f0e2dc3f85cc4affaa9793bed2a7f768b045f8ab..36b94df474e77ffb81576aa3ae61d3e6439274ac 100644 (file)
@@ -340,45 +340,76 @@ Driver_Mesh::Status DriverGMF_Write::Perform()
   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;
 //   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()
+//   return meshID;
+// }
+// 
+// void DriverGMF_Write::CloseFile( int meshID )
+// {
+//   GmfCloseMesh( meshID );
+// }
+
+void DriverGMF_Write::WriteSizeMapFromMesh( double size )
 {
+  // Open file
   const int dim = 3, version = sizeof(long) == 4 ? 2 : 3;
-  int meshID = GmfOpenMesh( myFile.c_str(), GmfWrite, version, dim );
-  return meshID;
-}
-
-void DriverGMF_Write::CloseFile( int meshID )
-{
+  int meshID = GmfOpenMesh( myFile.c_str(), GmfWrite, version, dim );  
+  
+  // 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 );
 }
 
index e01f6b03ac8affe87d206bdf41ed08d2a691485a..35d845a4383859555623d299a2ec457b2ae82e1f 100644 (file)
@@ -49,11 +49,12 @@ public:
   }
    
   virtual Status Perform(); 
-  void AddSizeMapSection( int meshID, int nbControlPoints );
-  void AppendSize( int meshID, double size );
-  int NbVerticesInFile();
-  int OpenFileToWrite();
-  void CloseFile( int );
+  void WriteSizeMapFromMesh( double size );
+//   void AddSizeMapSection( int meshID, int nbControlPoints );
+//   void AppendSize( int meshID, double size );
+//   int NbVerticesInFile();
+//   int OpenFileToWrite();
+//   void CloseFile( int );
 
  private: