24 #include "repo_optimizer_abstract.h"
25 #include "../../core/model/collection/repo_scene.h"
26 #include "../../core/model/bson/repo_node_mesh.h"
28 #define REPO_MP_TEXTURE_WORK_AROUND
31 namespace manipulator {
32 namespace modeloptimizer {
68 #ifdef REPO_MP_TEXTURE_WORK_AROUND
72 const std::set<repoUUID> &meshGroup,
73 std::vector<float> &mat,
74 std::vector<std::vector<repo_vector_t>> &vertices,
75 std::vector<std::vector<repo_vector_t>> &normals,
76 std::vector<std::vector<repo_face_t>> &faces,
77 std::vector<std::vector<std::vector<repo_vector2d_t>>> &uvChannels,
78 std::vector<std::vector<repo_color4d_t>> &colors,
79 std::vector<std::vector<repo_mesh_mapping_t>> &meshMapping,
80 std::unordered_map<repoUUID, repoUUID, RepoUUIDHasher> &matIDMap
86 const std::set<repoUUID> &meshGroup,
87 std::vector<float> &mat,
88 std::vector<repo_vector_t> &vertices,
89 std::vector<repo_vector_t> &normals,
90 std::vector<repo_face_t> &faces,
91 std::vector<std::vector<repo_vector2d_t>> &uvChannels,
92 std::vector<repo_color4d_t> &colors,
93 std::vector<repo_mesh_mapping_t> &meshMapping,
94 std::unordered_map<repoUUID, repoUUID, RepoUUIDHasher> &matIDMap
105 #ifdef REPO_MP_TEXTURE_WORK_AROUND
106 std::vector<repo::core::model::MeshNode*>createSuperMesh(
108 const std::set<repoUUID> &meshGroup,
109 std::unordered_map<repoUUID, repoUUID, RepoUUIDHasher> &matIDs,
110 const bool &texture);
114 const std::set<repoUUID> &meshGroup,
115 std::unordered_map<repoUUID, repoUUID, RepoUUIDHasher> &matIDs);
130 repoUUID getMaterialID(
164 #ifdef REPO_MP_TEXTURE_WORK_AROUND
165 bool processMeshGroup(
167 const std::set<repoUUID> & meshes,
168 const repoUUID &rootID,
169 repo::core::model::RepoNodeSet &mergedMeshes,
170 std::unordered_map<repoUUID, repo::core::model::RepoNode*, RepoUUIDHasher> &matNodes,
171 std::unordered_map<repoUUID, repoUUID, RepoUUIDHasher> &matIDs,
175 bool processMeshGroup(
177 const std::set<repoUUID> & meshes,
178 const repoUUID &rootID,
179 repo::core::model::RepoNodeSet &mergedMeshes,
180 std::unordered_map<repoUUID, repo::core::model::RepoNode*, RepoUUIDHasher> &matNodes,
181 std::unordered_map<repoUUID, repoUUID, RepoUUIDHasher> &matIDs);
193 const repo::core::model::RepoNodeSet &meshes,
194 std::unordered_map<uint32_t, std::vector<std::set<repoUUID>>> &normalMeshes,
195 std::unordered_map<uint32_t, std::vector<std::set<repoUUID>>> &transparentMeshes,
196 std::unordered_map < uint32_t, std::unordered_map < repoUUID,
197 std::vector<std::set<repoUUID>>,
RepoUUIDHasher >> &texturedMeshes);
Definition: repo_connection_pool_mongo.h:32
Definition: repo_optimizer_abstract.h:29
Definition: repo_scene.h:44
Definition: repo_node_utils.h:40
MultipartOptimizer()
Definition: repo_optimizer_multipart.cpp:32
virtual ~MultipartOptimizer()
Definition: repo_optimizer_multipart.cpp:37
bool apply(repo::core::model::RepoScene *scene)
Definition: repo_optimizer_multipart.cpp:41
Definition: repo_optimizer_multipart.h:33
Definition: repo_node_mesh.h:62
Definition: repo_node.h:33