本文整理汇总了C++中QUATERNION::ToRotationMatrix方法的典型用法代码示例。如果您正苦于以下问题:C++ QUATERNION::ToRotationMatrix方法的具体用法?C++ QUATERNION::ToRotationMatrix怎么用?C++ QUATERNION::ToRotationMatrix使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QUATERNION
的用法示例。
在下文中一共展示了QUATERNION::ToRotationMatrix方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Entity
//------------------------------------------------------------------------------------
Decal::Decal(const VEC3& pos, float size, const QUATERNION& rot)
: m_vPos(pos)
, m_fSize(size)
, m_pMaterial(nullptr)
{
if (!m_pUnitCube)
{
SVertex vert[8] =
{
SVertex(VEC3(-0.5f, -0.5f, +0.5f), VEC2(0, 0)),
SVertex(VEC3(+0.5f, -0.5f, +0.5f), VEC2(0, 0)),
SVertex(VEC3(+0.5f, -0.5f, -0.5f), VEC2(0, 0)),
SVertex(VEC3(-0.5f, -0.5f, -0.5f), VEC2(0, 0)),
SVertex(VEC3(-0.5f, +0.5f, +0.5f), VEC2(0, 0)),
SVertex(VEC3(+0.5f, +0.5f, +0.5f), VEC2(0, 0)),
SVertex(VEC3(+0.5f, +0.5f, -0.5f), VEC2(0, 0)),
SVertex(VEC3(-0.5f, +0.5f, -0.5f), VEC2(0, 0)),
};
DWORD dwIndex[36] = {
0,2,1,0,3,2, // bottom
4,5,7,5,6,7, // top
4,7,0,7,3,0, // left
6,5,2,5,1,2, // right
7,6,3,6,2,3, // behind
5,4,1,4,0,1, // front
};
Mesh* pMesh = new Mesh;
SubMesh* pSubmesh = new SubMesh;
pSubmesh->InitVertData(eVertexType_General, vert, 8, true);
pSubmesh->InitIndexData(dwIndex, 36, true);
pMesh->AddSubMesh(pSubmesh);
m_pUnitCube = new Entity(pMesh);
m_pUnitCube->SetCastShadow(false);
m_pCB_Decal = g_env.pRenderer->GetRenderSys()->CreateConstantBuffer(sizeof(cBufferDecal), 10);
}
m_cbDecal.matRotation = rot.ToRotationMatrix().Transpose();
m_cbDecal.fProjClip = 10000.f;
}