Esempio n. 1
0
glm::mat4	Bomb::MeshComponent::GetPosition()
{
    glm::mat4	transfo(1);

    Bomb::IComponent*		component = (this->GetParent())->GetComponent(Bomb::Position_c);
    Bomb::PositionComponent*	position = dynamic_cast<Bomb::PositionComponent*>(component);

    if (position)
    {
        if (G_GameSettings)
        {
            glm::vec3	vecpos(position->GetPosition(PositionComponent::X)
                               - (G_GameSettings->map.x / 2) - 0.5,
                               0.0, position->GetPosition(PositionComponent::Y)
                               - (G_GameSettings->map.y / 2) - 0.5);
            transfo = glm::translate(transfo, vecpos);
            transfo = glm::rotate(transfo, -90 + (glm::mediump_float)position->GetRotation(),
                                  glm::vec3(0, -1, 0));
        }
        else
        {
            glm::vec3	vecpos(position->GetPosition(PositionComponent::X),
                               0.0, position->GetPosition(PositionComponent::Y));
            transfo = glm::translate(transfo, vecpos);
            transfo = glm::rotate(transfo, -90 + (glm::mediump_float)position->GetRotation(),
                                  glm::vec3(0, -1, 0));
        }
    }
    return transfo;
}
Esempio n. 2
0
void KrassGrs80 (double dHoch, double dRechts, long double *pdHochOut, long double *pdRechtsOut)
{
long double dX, dY, dZ;
long double dXG, dYG, dZG;
long double dTmp;

	geodrei (HA_KRASSOVSKY, HB_KRASSOVSKY, dHoch, dRechts, 0.0, &dX, &dY, &dZ);
	transfo (dX, dY, dZ, &dXG, &dYG, &dZG);
	dreigeo (HA_ETRS89, HB_ETRS89, dXG, dYG, dZG, pdHochOut, pdRechtsOut, &dTmp);
}
Esempio n. 3
0
bool		FireAnimMeshDraw(Bomb::AnimComponent *mesh, Graphic::SysGraphic* sys,
				double x, double y)
{
  Graphic::OGLContext*	ogl = sys->GetContext();
  gdl::BasicShader*	shader = ogl->GetShader();
  Graphic::TextureMap*	tgamap = sys->GetTextures();
  gdl::Texture*		tga = (*tgamap)[mesh->GetName()->c_str()];

  //TODO : throw Execption
  if (!tga)
    return false;
  Graphic::GeometryMap*	geomap = sys->GetGeometrys();
  gdl::Geometry*	geo = (*geomap)[mesh->GetName()->c_str()];

  if (!geo)
    return false;
  glm::mat4	transfo(1.0);
  transfo = glm::translate(x - (G_GameSettings->map.x / 2), 0.0, y - (G_GameSettings->map.y / 2));
  tga->bind();
  geo->draw(*shader, transfo, GL_QUADS);
  return true;
}