#include #include #include #include "mesh_result_post_processor.h" MeshResultPostProcessor::MeshResultPostProcessor(const dust3d::Object &object) { m_object = new dust3d::Object; *m_object = object; } MeshResultPostProcessor::~MeshResultPostProcessor() { delete m_object; } dust3d::Object *MeshResultPostProcessor::takePostProcessedObject() { dust3d::Object *object = m_object; m_object = nullptr; return object; } void MeshResultPostProcessor::poseProcess() { if (!m_object->nodes.empty()) { { std::vector> triangleVertexUvs; std::set seamVertices; std::map> partUvRects; dust3d::unwrapUv(*m_object, triangleVertexUvs, seamVertices, partUvRects); m_object->setTriangleVertexUvs(triangleVertexUvs); m_object->setPartUvRects(partUvRects); } { std::vector triangleTangents; dust3d::resolveTriangleTangent(*m_object, triangleTangents); m_object->setTriangleTangents(triangleTangents); } } } void MeshResultPostProcessor::process() { poseProcess(); emit finished(); }