Nanashi-softプログラマ専用DirectX11開発


◇DirectX11プログラミング -オブジェ機能を強化-

オブジェ機能の強化をしたいと思います
現状は,初期化と移動しかできません
modeldataクラスにメソッドを追加して機能を拡充します

・modeldata.hに追加
オブジェ用メソッド郡に追加する
	//X軸回転(オブジェ番号,角度)
void setObjRotationX(int,float);
//Y軸回転(オブジェ番号,角度)
void setObjRotationY(int,float);
//Z軸回転(オブジェ番号,角度)
void setObjRotationZ(int,float);
//拡大・縮小(オブジェ番号,X,Y,Z)
void setObjScaling(int,float,float,float);
・modeldata.cppに追加
//X軸回転(オブジェ番号,角度)
void modeldata::setObjRotationX(int hObjNum, float hX){
XMMATRIX hMatrix = XMMatrixRotationX(XMConvertToRadians(hX));
objWld[hObjNum] = XMMatrixMultiply(objWld[hObjNum], hMatrix);
}
//Y軸回転(オブジェ番号,角度)
void modeldata::setObjRotationY(int hObjNum, float hY){
XMMATRIX hMatrix = XMMatrixRotationY(XMConvertToRadians(hY));
objWld[hObjNum] = XMMatrixMultiply(objWld[hObjNum], hMatrix);
}
//Z軸回転(オブジェ番号,角度)
void modeldata::setObjRotationZ(int hObjNum, float hZ){
XMMATRIX hMatrix = XMMatrixRotationZ(XMConvertToRadians(hZ));
objWld[hObjNum] = XMMatrixMultiply(objWld[hObjNum], hMatrix);
}
//拡大・縮小(オブジェ番号,X,Y,Z)
void modeldata::setObjScaling(int hObjNum, float hX, float hY, float hZ){
XMMATRIX hMatrix = XMMatrixScaling(hX, hY, hZ);
objWld[hObjNum] = XMMatrixMultiply(objWld[hObjNum], hMatrix);
}
とりあえず,Direct3Dで普通に使われる関数郡を追加してみた

尚,これらの回転や拡大・縮小は,移動よりも前に行う必要があります
なぜなら,ワールド座標を中心に処理をおこなう為です


TOPプログラマ専用DirectX11開発