Wavefront .obj reader class(v2 API)
| 535 | /// Wavefront .obj reader class(v2 API) |
| 536 | /// |
| 537 | class ObjReader { |
| 538 | public: |
| 539 | ObjReader() : valid_(false) {} |
| 540 | |
| 541 | /// |
| 542 | /// Load .obj and .mtl from a file. |
| 543 | /// |
| 544 | /// @param[in] filename wavefront .obj filename |
| 545 | /// @param[in] config Reader configuration |
| 546 | /// |
| 547 | bool ParseFromFile(const std::string &filename, |
| 548 | const ObjReaderConfig &config = ObjReaderConfig()); |
| 549 | |
| 550 | /// |
| 551 | /// Parse .obj from a text string. |
| 552 | /// Need to supply .mtl text string by `mtl_text`. |
| 553 | /// This function ignores `mtllib` line in .obj text. |
| 554 | /// |
| 555 | /// @param[in] obj_text wavefront .obj filename |
| 556 | /// @param[in] mtl_text wavefront .mtl filename |
| 557 | /// @param[in] config Reader configuration |
| 558 | /// |
| 559 | bool ParseFromString(const std::string &obj_text, const std::string &mtl_text, |
| 560 | const ObjReaderConfig &config = ObjReaderConfig()); |
| 561 | |
| 562 | /// |
| 563 | /// .obj was loaded or parsed correctly. |
| 564 | /// |
| 565 | bool Valid() const { return valid_; } |
| 566 | |
| 567 | const attrib_t &GetAttrib() const { return attrib_; } |
| 568 | |
| 569 | const std::vector<shape_t> &GetShapes() const { return shapes_; } |
| 570 | |
| 571 | const std::vector<material_t> &GetMaterials() const { return materials_; } |
| 572 | |
| 573 | /// |
| 574 | /// Warning message(may be filled after `Load` or `Parse`) |
| 575 | /// |
| 576 | const std::string &Warning() const { return warning_; } |
| 577 | |
| 578 | /// |
| 579 | /// Error message(filled when `Load` or `Parse` failed) |
| 580 | /// |
| 581 | const std::string &Error() const { return error_; } |
| 582 | |
| 583 | private: |
| 584 | bool valid_; |
| 585 | |
| 586 | attrib_t attrib_; |
| 587 | std::vector<shape_t> shapes_; |
| 588 | std::vector<material_t> materials_; |
| 589 | |
| 590 | std::string warning_; |
| 591 | std::string error_; |
| 592 | }; |
| 593 | |
| 594 | /// ==>>========= Legacy v1 API ============================================= |
nothing calls this directly
no test coverage detected