Example #1
0
void AmjuGLDX9::RotateY(float degs)
{
  AMJU_CALL_STACK;

  Assert(s_matrixMode == AmjuGL::AMJU_MODELVIEW_MATRIX);

  D3DXMATRIX m;
  D3DXMatrixIdentity(&m);
  D3DXMatrixRotationY(&m, D3DXToRadian(degs)); 
  g_matrixStack->MultMatrixLocal( &m);
  dd->SetTransform(D3DTS_WORLD, g_matrixStack->GetTop());
}
Example #2
0
void AmjuGLDX9::Scale(float x, float y, float z)
{
  AMJU_CALL_STACK;

  Assert(s_matrixMode == AmjuGL::AMJU_MODELVIEW_MATRIX);

  D3DXMATRIX m;
  D3DXMatrixIdentity(&m);
  D3DXMatrixScaling(&m, x, y, z); 
  g_matrixStack->MultMatrixLocal(&m);
  dd->SetTransform(D3DTS_WORLD, g_matrixStack->GetTop());
}
Example #3
0
void AmjuGLDX9::Translate(float x, float y, float z)
{
  AMJU_CALL_STACK;

  Assert(s_matrixMode == AmjuGL::AMJU_MODELVIEW_MATRIX);

  // TODO Use current matrix mode, or scrap the idea of 
  // manipulating proj and tex mats
  D3DXMATRIX m;
  D3DXMatrixIdentity(&m);
  D3DXMatrixTranslation(&m, x, y, z);

  g_matrixStack->MultMatrixLocal( &m);
  // WORLD -- VIEW matrix is always just identity
  dd->SetTransform( D3DTS_WORLD, g_matrixStack->GetTop() );
}
Example #4
0
void Node::render()
{
   LPD3DXMATRIXSTACK stack = getStack();

   stack->Push();
   stack->MultMatrixLocal(&_matrix);

   getDevice()->SetTransform(D3DTS_WORLDMATRIX(0), stack->GetTop());

   _object->render();

   for (int i = 0; i != _children.size(); i++)
      _children[i]->render();

   stack->Pop();
}
Example #5
0
void AmjuGLDX9::MultMatrix(const float m[16])
{
  D3DXMATRIX d3dm(
    m[0], m[1], m[2],  m[3],
    m[4], m[5], m[6],  m[7],
    m[8], m[9], m[10], m[11],
    m[12], m[13], m[14], m[15]);

  if (s_matrixMode == AmjuGL::AMJU_MODELVIEW_MATRIX)
  {
    g_matrixStack->MultMatrixLocal(&d3dm);
    dd->SetTransform(D3DTS_WORLD, g_matrixStack->GetTop());
  }
  else if (s_matrixMode == AmjuGL::AMJU_PROJECTION_MATRIX)
  {
    Assert(0);
  }
}
Example #6
0
void AmjuGLDX9::RotateZ(float degs)
{
  AMJU_CALL_STACK;

  D3DXMATRIX m;
  D3DXMatrixIdentity(&m);
  D3DXMatrixRotationZ(&m, D3DXToRadian(degs)); 

  if (s_matrixMode == AmjuGL::AMJU_MODELVIEW_MATRIX)
  {
    g_matrixStack->MultMatrixLocal( &m);
    dd->SetTransform(D3DTS_WORLD, g_matrixStack->GetTop());
  }
  else
  {
    matProj *= m;
    dd->SetTransform(D3DTS_PROJECTION, &matProj);  
  }
}