Nanashi-soft○プログラマ専用○DirectX11開発○
//モデルデータの設置地面のモデルデータから頂点データを取り出して,そこに別のモデルを置いてみました
{
//0番が地面用pmdモデルだとみなす
pmd *modeldata = new pmd(pmdfile[0]);
int start=40000 - 6;
for(int i=0; i < 5; i++){
//インデックスデータから,ポリゴンを取り出す
unsigned long idx1 = modeldata->face_vert_index[start*3 + i*3];
float pos1X = modeldata->vertex[idx1].pos[0];
float pos1Y = modeldata->vertex[idx1].pos[1];
float pos1Z = modeldata->vertex[idx1].pos[2];
unsigned long idx2 = modeldata->face_vert_index[start*3 + i*3 + 1];
float pos2X = modeldata->vertex[idx2].pos[0];
float pos2Y = modeldata->vertex[idx2].pos[1];
float pos2Z = modeldata->vertex[idx2].pos[2];
unsigned long idx3 = modeldata->face_vert_index[start*3 + i*3 + 2];
float pos3X = modeldata->vertex[idx3].pos[0];
float pos3Y = modeldata->vertex[idx3].pos[1];
float pos3Z = modeldata->vertex[idx3].pos[2];
//ポリゴンの頂点にモデルデータを設置
hModelData->setObjIdentity(2 + i);
hModelData->setObjScaling(2 + i, 10.0f, 10.0f, 10.0f);
hModelData->setObjTranslation(2 + i, pos1X, pos1Y, pos1Z);
hModelData->setObjIdentity(3 + i);
hModelData->setObjScaling(3 + i, 10.0f, 10.0f, 10.0f);
hModelData->setObjTranslation(3 + i, pos2X, pos2Y, pos2Z);
hModelData->setObjIdentity(4 + i);
hModelData->setObjScaling(4 + i, 10.0f, 10.0f, 10.0f);
hModelData->setObjTranslation(4 + i, pos3X, pos3Y, pos3Z);
}
}
//ポリゴンの頂点にモデルデータを設置
//頂点
hModelData->setObjIdentity(2 + i*7);
hModelData->setObjScaling(2 + i*7, 10.0f, 10.0f, 10.0f);
hModelData->setObjTranslation(2 + i*7, pos1X, pos1Y, pos1Z);
hModelData->setObjIdentity(3 + i*7);
hModelData->setObjScaling(3 + i*7, 10.0f, 10.0f, 10.0f);
hModelData->setObjTranslation(3 + i*7, pos2X, pos2Y, pos2Z);
hModelData->setObjIdentity(4 + i*7);
hModelData->setObjScaling(4 + i*7, 10.0f, 10.0f, 10.0f);
hModelData->setObjTranslation(4 + i*7, pos3X, pos3Y, pos3Z);
//中点
hModelData->setObjIdentity(5 + i*7);
hModelData->setObjScaling(5 + i*7, 10.0f, 10.0f, 10.0f);
hModelData->setObjTranslation(5 + i*7, (pos1X + pos2X) / 2, (pos1Y + pos2Y) / 2, (pos1Z + pos2Z) / 2);
hModelData->setObjIdentity(6 + i*7);
hModelData->setObjScaling(6 + i*7, 10.0f, 10.0f, 10.0f);
hModelData->setObjTranslation(6 + i*7, (pos2X + pos3X) / 2, (pos2Y + pos3Y) / 2, (pos2Z + pos3Z) / 2);
hModelData->setObjIdentity(7 + i*7);
hModelData->setObjScaling(7 + i*7, 10.0f, 10.0f, 10.0f);
hModelData->setObjTranslation(7 + i*7, (pos3X + pos1X) / 2, (pos3Y + pos1Y) / 2, (pos3Z + pos1Z) / 2);
//重心
hModelData->setObjIdentity(8 + i*7);
hModelData->setObjScaling(8 + i*7, 10.0f, 10.0f, 10.0f);
hModelData->setObjTranslation(8 + i*7, (pos1X + pos2X + pos3X) / 3, (pos1Y + pos2Y + pos3Y) / 3, (pos1Z + pos2Z + pos3Z) / 3);