Пример #1
0
bool SaveMeshGridToFileAssimp(
    std::string                                       sFilename,
    aiMesh*                                           pMesh,
    std::string                                       sFormat)
{
  // Create root node which indexes first mesh
  aiNode* root = new aiNode();
  root->mNumMeshes = 1;
  root->mMeshes = new unsigned int[root->mNumMeshes];
  root->mMeshes[0] = 0;
  root->mName = "root";

  aiMaterial* material = new aiMaterial();

  // Create scene to contain root node and mesh
  aiScene scene;
  scene.mRootNode = root;
  scene.mNumMeshes = 1;
  scene.mMeshes = new aiMesh*[scene.mNumMeshes];
  scene.mMeshes[0] = pMesh;
  scene.mNumMaterials = 1;
  scene.mMaterials = new aiMaterial*[scene.mNumMaterials];
  scene.mMaterials[0] = material;

  std::cout<<"[SaveMeshGridToFile] scene has vertex color: "<< scene.mMeshes[0]->HasVertexColors(0)<<std::endl;

  sFilename = sFilename + "." + sFormat;
  aiReturn res = aiExportScene(&scene, sFormat.c_str(), sFilename.c_str(), 0);

  if(res == 0)
  {
    std::cout << "[SaveMeshGridToFile] Mesh export success. File Name "<< sFilename <<std::endl;
    return true;
  }
  else
  {
    std::cerr << "[SaveMeshGridToFile] Mesh export fail." << std::endl;
    return false;
  }

  return true;
}
Пример #2
0
static int assimp_export_scene(lua_State *L) {
	luaX_checktype(L, 1, "scene", LUA_TTABLE);
	const char *format = luaX_checkstring(L, 2, "format");
	const char *filename = luaX_checkstring(L, 3, "filename");

	struct aiScene *scene = _convert_scene(L, 1);

	if (aiExportScene(scene, format, filename, 0)) {
		aiReleaseImport(scene);
		lua_pushboolean(L, true);                          // [-0,+1,-]
	}
	else {
		aiReleaseImport(scene);
		lua_pushboolean(L, false);                         // [-0,+1,-]
		lua_pushstring(L, aiGetErrorString());             // [-0,+1,e]

		return 2;
	}

	return 1;
}
Пример #3
0
void SaveMesh(std::string filename, aiMesh* mesh)
{
    // Create root node which indexes first mesh
    aiNode* root = new aiNode();
    root->mNumMeshes = 1;
    root->mMeshes = new unsigned int[root->mNumMeshes];
    root->mMeshes[0] = 0;
    root->mName = "root";

    aiMaterial* material = new aiMaterial();

    // Create scene to contain root node and mesh
    aiScene scene;
    scene.mRootNode = root;
    scene.mNumMeshes = 1;
    scene.mMeshes = new aiMesh*[scene.mNumMeshes];
    scene.mMeshes[0] = mesh;
    scene.mNumMaterials = 1;
    scene.mMaterials = new aiMaterial*[scene.mNumMaterials];
    scene.mMaterials[0] = material;

    aiReturn res = aiExportScene(&scene, "ply", (filename + ".ply").c_str(), 0);
    std::cout << "Mesh export result: " << res << std::endl;
}