void WriteScalars(FILE* f, const std::string& type, const std::string& name, int* dims, bool binary)
    {
      fprintf(f, "SCALARS %s %s 1\n", name.c_str(), type.c_str());
      fprintf(f, "LOOKUP_TABLE default\n");

      std::vector<T> data(dims[0]);
      T* dPtr = &(data.front());

      if(binary)
      {
        // Fill with some data
        for(size_t i = 0; i < dims[0]; i++)
        {
          data[i] = static_cast<T>(i);

          char* ptr = (char*)(dPtr + i);
          if(BIGENDIAN == 0)
          {
            if(sizeof(T) == 4)
            {
              mxa_bswap(0, 3, ptr);
              mxa_bswap(1, 2, ptr);
            }
            if(sizeof(T) == 2)
            {
              mxa_bswap(0, 1, ptr);
            }
          }

        }
        // write to file
        for(size_t z = 0; z < dims[2]; z++)
        {
          for(size_t y = 0; y < dims[1]; y++)
          {
            char* ptr = (char*)(dPtr);
            size_t nwrote = fwrite(ptr, sizeof(T), dims[0], f);
            DREAM3D_REQUIRE_EQUAL(nwrote, dims[0])
          }
        }
        fprintf(f, "\n");
      }
      else
      {
        for(size_t z = 0; z < dims[2]; z++)
예제 #2
0
 /**
  * @brief
  */
 virtual void byteSwapElements()
 {
   char* ptr = (char*)(m_Array);
   char t[8];
   size_t size = getTypeSize();
   for (uint64_t var = 0; var < m_Size; ++var)
   {
     if (sizeof(T) == 2)
     {
       mxa_bswap(0, 1, t);
     }
     else if (sizeof(T) == 4)
     {
       mxa_bswap(0, 3, t);
       mxa_bswap(1, 2, t);
     }
     else if (sizeof(T) == 8)
     {
       mxa_bswap(0, 7, t);
       mxa_bswap(1, 6, t);
       mxa_bswap(2, 5, t);
       mxa_bswap(3, 4, t);
     }
     ptr += size; // increment the pointer
   }
 }