flag.cpp 955 B

12345678910111213141516171819202122232425262728293031
  1. #include "flag.h"
  2. namespace Render {
  3. namespace Geom {
  4. Flag::FlagMatrices Flag::create(float worldX, float worldZ,
  5. const QVector3D &flagColor,
  6. const QVector3D &poleColor, float scale) {
  7. FlagMatrices result;
  8. result.pennantColor = flagColor;
  9. result.poleColor = poleColor;
  10. result.pole.setToIdentity();
  11. result.pole.translate(worldX, (0.15f + 0.02f) * scale, worldZ);
  12. result.pole.scale(0.03f * scale, 0.30f * scale, 0.03f * scale);
  13. result.pennant.setToIdentity();
  14. result.pennant.translate(worldX + 0.10f * scale, (0.25f + 0.02f) * scale,
  15. worldZ);
  16. result.pennant.scale(0.18f * scale, 0.12f * scale, 0.02f * scale);
  17. result.finial.setToIdentity();
  18. result.finial.translate(worldX, (0.32f + 0.02f) * scale, worldZ);
  19. result.finial.scale(0.05f * scale, 0.05f * scale, 0.05f * scale);
  20. return result;
  21. }
  22. } // namespace Geom
  23. } // namespace Render