0

stl ファイルに印刷しようとしていますが、正しく印刷できません。C++ での Hex 形式の印刷のサンプルはたくさんありますが、バイナリ形式のサンプル プログラムはありません。私のプログラムは次のとおりです。プログラムの何が問題になっていますか?

       string name = "Create by stlwrite.m ";
       name = name + currentDateTime();
       pFile.setf(ios::left);
       pFile.width(sizeof(unsigned char)*80);
       //header
       pFile << name;      
       unsigned int size = faces.rows;
       //size
       pFile.write((char*)&size,sizeof(size));    
       int height = 25;
       unsigned short ** data= new unsigned short *[height];
       for(int i = 0; i < height; i++)
       {
           data[i] = new unsigned short[142000];
       }
       for(int j = 0; j < 142000; j++)
       {
               int i = 0; 

               //for one facets
               for(int k = 0; k < (*facets[j]).cols; k++)
               {
                   for(int l = 0; l < (*facets[j]).rows; l++)
                   {
                       float f = (*facets[j]).at<float>(l,k);
                       data[i][j] = *reinterpret_cast<unsigned int *>(&f);
                       data[i+1][j] = *reinterpret_cast<unsigned int *>(&f)>>16;                     
                       i = i + 2;
                   }

               }

           //then for the last row
           data[height-1][j] = (unsigned short)0;
       }

       for (int i = 0; i < height; i++)
         for (int j = 0; j < faces.rows; j++)
            pFile.write ((char*)&data[i][j], sizeof(unsigned short) );
       pFile.close();

EDIT1:Matlab stlwrite.mat プログラムの考え方に従います。リンク

4

1 に答える 1