Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Importing mesh
- bool importer(RTCScene &main_scene) {
- Assimp::Importer importer;
- const char * path = "model.obj";
- auto scene = importer.ReadFile(path, aiProcess_Triangulate
- | aiProcess_GenSmoothNormals | aiProcess_FlipUVs | aiProcess_JoinIdenticalVertices);
- // Keeping the data here for now
- unsigned int num_of_vertices = 0;
- unsigned int num_of_faces = 0;
- if (!scene) {
- return false;
- }
- else {
- //int k;
- auto pmesh = scene -> mMeshes;
- auto mesh = *pmesh;
- auto num_of_mashes = scene -> mNumMeshes;
- auto meshes = scene -> mMeshes;
- for (; pmesh < meshes + num_of_mashes; pmesh++) {
- Buff.push_back(Buffer()); // creates buffer for each new mesh;
- auto k = Buff.size() - 1;
- auto geomID = rtcNewTriangleMesh(main_scene, RTC_GEOMETRY_STATIC, mesh->mNumFaces, mesh->mNumVertices);
- auto mesh = *pmesh;
- auto vertices = mesh->mVertices;
- num_of_vertices = mesh->mNumVertices;
- //auto num_of_faces = mesh->mNumFaces;
- Buff[Buff.size() - 1].vertices.insert(Buff[Buff.size() - 1].vertices.end(), vertices, vertices + num_of_vertices); // inserting vertices;
- //Buff[k].vertices.insert(Buff[k].vertices.end(), vertices, vertices + num_of_vertices); // inserting vertices;
- num_of_faces = mesh->mNumFaces;
- auto faces = mesh->mFaces;
- for (auto face = faces; face < faces + num_of_faces; face++) {
- auto idx = face->mIndices;
- auto p1 = vertices[idx[0]];
- auto p2 = vertices[idx[1]];
- auto p3 = vertices[idx[2]];
- Buff[Buff.size() - 1].indices.insert(Buff[Buff.size() - 1].indices.end(), idx, idx + 3); // inserting indices;
- printf("%u : {%.2f, %.2f, %.2f}, %u : {%.2f, %.2f, %.2f}, %u : {%.2f, %.2f, %.2f}\n",
- idx[0], p1.x, p1.y, p1.z, idx[1], p2.x, p2.y, p2.z, idx[2], p3.x, p3.y, p3.z);
- }
- rtcSetBuffer(main_scene, geomID, RTC_VERTEX_BUFFER, Buff[Buff.size() - 1].vertices.data(), 0, sizeof(Buff[Buff.size() - 1].vertices[0]));
- rtcSetBuffer(main_scene, geomID, RTC_INDEX_BUFFER, Buff[Buff.size() - 1].indices.data(), 0, sizeof(Buff[Buff.size() - 1].indices[0]));
- }
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment