assimp:3Dオブジェクトの情報を見るコード

assimp-analyze.png
#include <stdio.h>
#include <string>
using namespace std;
#include <assimp/Importer.hpp>      // C++ importer interface
#include <assimp/scene.h>           // Output data structure
#include <assimp/postprocess.h>     // Post processing flags
const string INPUTFILE="../data/cube.dae";
void main(){
    Assimp::Importer importer;
    const aiScene* scene = importer.ReadFile( INPUTFILE,0);
    if( !scene){printf("ロード失敗");}
    printf("カメラを持っている?%d\n",scene->HasCameras());
    printf("メッシュを持っている?%d\n",scene->HasMeshes());
    printf("メッシュの数%d\n",scene->mNumMeshes);
    aiMesh* assimp_mesh=scene->mMeshes[0];
    printf("ボーンを持っている%d\n",assimp_mesh->HasBones());
    printf("面を持っている%d\n",assimp_mesh->HasFaces());
    printf("面の数%d\n",assimp_mesh->mNumFaces);
    printf("面0の数%d\n",assimp_mesh->mFaces[0].mNumIndices);//3角系なら0,1,2..となっている
    printf("法線を持っている%d\n",assimp_mesh->HasNormals());
    printf("位置情報を持っている%d\n",assimp_mesh->HasPositions());
    printf("頂点の数%d\n",assimp_mesh->mNumVertices);//÷3して丁度みたいだ。
}

サポートサイト Wikidot.com