Scene::~Scene()
{
- /* clear meshes */
for(size_t i=0; i<meshes.size(); ++i)
delete meshes[i];
meshes.clear();
- /* clear materials */
for(size_t i=0; i<materials.size(); ++i)
delete materials[i];
materials.clear();
- /* clear textures */
- for(size_t i= 0; i<textures.size(); ++i)
+ for(size_t i=0; i<textures.size(); ++i)
delete textures[i];
textures.clear();
+
+ for(size_t i=0; i<objects.size(); ++i)
+ delete objects[i];
+ objects.clear();
}
bool Scene::load(const char *fname)
}
/* create objects */
-
+ for(unsigned int i=0; i<scene->mNumMeshes; ++i) {
+ Object *object = new Object();
+ object->mesh = meshes[i];
+ int idx = meshes[i]->mat_idx;
+ object->material = materials[idx];
+ objects.push_back(object);
+ }
aiReleaseImport(scene);
return true;
else
fprintf(stderr, "No faces found.\n");
+ mesh->mat_idx = amesh->mMaterialIndex;
+ printf("material idx:%u", mesh->mat_idx);
return mesh;
}
mat->dtex = 0;
mat->shininess = 40;
- // mat->name = std::string(amat->name.data);
+ // aiString name;
+ // amat->Get(AI_MATKEY_NAME, name);
+ // mat->name = std::string(name.data);
aiColor4D color;
aiGetMaterialColor(amat, AI_MATKEY_COLOR_DIFFUSE, &color);