| 317 | } |
| 318 | |
| 319 | void E57Writer::setupFileHeader() |
| 320 | { |
| 321 | m_rootNode.reset(new e57::StructureNode(m_imageFile->root())); |
| 322 | |
| 323 | //header info |
| 324 | // We are using the E57 v1.0 data format standard fieldnames. |
| 325 | // The standard fieldnames are used without an extension prefix |
| 326 | // (in the default namespace). |
| 327 | m_imageFile->extensionsAdd("", e57::E57_V1_0_URI); |
| 328 | m_imageFile->extensionsAdd("nor", |
| 329 | "http://www.libe57.org/E57_NOR_surface_normals.txt"); |
| 330 | |
| 331 | // Set per-file properties. |
| 332 | // Path names: "/formatName", "/majorVersion", "/minorVersion", |
| 333 | // "/coordinateMetadata" |
| 334 | m_rootNode->set("formatName", |
| 335 | e57::StringNode(*m_imageFile, "ASTM E57 3D Imaging Data File")); |
| 336 | m_rootNode->set("guid", |
| 337 | e57::StringNode(*m_imageFile, uuidGenerator::generate_uuid())); |
| 338 | |
| 339 | // Get ASTM version number supported by library, so can write it into file |
| 340 | uint32_t astmMajor; |
| 341 | uint32_t astmMinor; |
| 342 | std::string libraryId; |
| 343 | e57::Version::get(astmMajor, astmMinor, libraryId); |
| 344 | |
| 345 | m_rootNode->set("versionMajor", e57::IntegerNode(*m_imageFile, astmMajor)); |
| 346 | m_rootNode->set("versionMinor", e57::IntegerNode(*m_imageFile, astmMinor)); |
| 347 | m_rootNode->set("e57LibraryVersion", |
| 348 | e57::StringNode(*m_imageFile, libraryId)); |
| 349 | |
| 350 | // Save a dummy string for coordinate system. |
| 351 | m_rootNode->set("coordinateMetadata", e57::StringNode(*m_imageFile, "")); |
| 352 | |
| 353 | // Create creationDateTime structure TODO add actual time |
| 354 | e57::StructureNode creationDateTime = e57::StructureNode(*m_imageFile); |
| 355 | creationDateTime.set("dateTimeValue", e57::FloatNode(*m_imageFile, 0.0)); |
| 356 | creationDateTime.set("isAtomicClockReferenced", |
| 357 | e57::IntegerNode(*m_imageFile, 0)); |
| 358 | m_rootNode->set("creationDateTime", creationDateTime); |
| 359 | |
| 360 | //ABELL - This description seems too specific. |
| 361 | m_rootNode->set("description", |
| 362 | e57::StringNode(*m_imageFile,"E57 file generated by PDAL")); |
| 363 | } |
| 364 | |
| 365 | void E57Writer::setupWriter() |
| 366 | { |
nothing calls this directly
no test coverage detected