| 55 | std::string TerrasolidReader::getName() const { return s_info.name; } |
| 56 | |
| 57 | void TerrasolidReader::initialize() |
| 58 | { |
| 59 | ILeStream stream(m_filename); |
| 60 | |
| 61 | TerraSolidHeaderPtr h(new TerraSolidHeader); |
| 62 | m_header.swap(h); |
| 63 | |
| 64 | stream >> m_header->HdrSize >> m_header->HdrVersion >> m_header->RecogVal; |
| 65 | stream.get(m_header->RecogStr, 4); |
| 66 | stream >> m_header->PntCnt >> m_header->Units >> m_header->OrgX >> |
| 67 | m_header->OrgY >> m_header->OrgZ >> m_header->Time >> m_header->Color; |
| 68 | |
| 69 | if (m_header->RecogVal != 970401) |
| 70 | throwError("Header identifier was not '970401', is this " |
| 71 | "a TerraSolid .bin file?"); |
| 72 | |
| 73 | m_haveColor = (m_header->Color != 0); |
| 74 | m_haveTime = (m_header->Time != 0); |
| 75 | m_format = static_cast<TERRASOLID_Format_Type>(m_header->HdrVersion); |
| 76 | |
| 77 | if ((m_format != TERRASOLID_Format_1) && (m_format != TERRASOLID_Format_2)) |
| 78 | throwError("Version was '" + Utils::toString(m_format) + "', not '" + |
| 79 | Utils::toString(TERRASOLID_Format_1) + "' or '" + |
| 80 | Utils::toString(TERRASOLID_Format_2) + "'"); |
| 81 | |
| 82 | log()->get(LogLevel::Debug) << "TerraSolid Reader::initialize format: " << |
| 83 | m_format << std::endl; |
| 84 | log()->get(LogLevel::Debug) << "OrgX: " << m_header->OrgX << std::endl; |
| 85 | log()->get(LogLevel::Debug) << "OrgY: " << m_header->OrgY << std::endl; |
| 86 | log()->get(LogLevel::Debug) << "OrgZ: " << m_header->OrgZ << std::endl; |
| 87 | log()->get(LogLevel::Debug) << "Units: " << m_header->Units << std::endl; |
| 88 | log()->get(LogLevel::Debug) << "Time: " << m_header->Time << std::endl; |
| 89 | log()->get(LogLevel::Debug) << "Color: " << m_header->Color << std::endl; |
| 90 | log()->get(LogLevel::Debug) << "Count: " << m_header->PntCnt << std::endl; |
| 91 | log()->get(LogLevel::Debug) << "RecogVal: " << m_header->RecogVal << |
| 92 | std::endl; |
| 93 | } |
| 94 | |
| 95 | |
| 96 | void TerrasolidReader::addDimensions(PointLayoutPtr layout) |