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; }
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); }
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; }