PolySceneLine.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*
  2. * PolySceneLine.cpp
  3. * Poly
  4. *
  5. * Created by Ivan Safrin on 10/8/08.
  6. * Copyright 2008 __MyCompanyName__. All rights reserved.
  7. *
  8. */
  9. #include "PolySceneLine.h"
  10. using namespace Polycode;
  11. SceneLine::SceneLine(SceneEntity *ent1, SceneEntity *ent2) : SceneEntity() {
  12. this->ent1 = ent1;
  13. this->ent2 = ent2;
  14. mesh = new Mesh(Mesh::LINE_MESH);
  15. Polygon *poly = new Polygon();
  16. poly->addVertex(0,0,0);
  17. poly->addVertex(0,0,0);
  18. mesh->addPolygon(poly);
  19. ignoreParentMatrix = true;
  20. }
  21. SceneLine::~SceneLine() {
  22. }
  23. void SceneLine::Render() {
  24. Vector3 v1;
  25. v1 = ent1->getConcatenatedMatrix().getPosition();
  26. Vector3 v2;
  27. v2 = ent2->getConcatenatedMatrix().getPosition();
  28. mesh->getPolygon(0)->getVertex(0)->set(v1.x,v1.y,v1.z);
  29. mesh->getPolygon(0)->getVertex(1)->set(v2.x,v2.y,v2.z);
  30. mesh->arrayDirtyMap[RenderDataArray::VERTEX_DATA_ARRAY] = true;
  31. Renderer *renderer = CoreServices::getInstance()->getRenderer();
  32. renderer->setTexture(NULL);
  33. renderer->pushDataArrayForMesh(mesh, RenderDataArray::VERTEX_DATA_ARRAY);
  34. renderer->pushDataArrayForMesh(mesh, RenderDataArray::TEXCOORD_DATA_ARRAY);
  35. renderer->pushDataArrayForMesh(mesh, RenderDataArray::NORMAL_DATA_ARRAY);
  36. renderer->drawArrays(mesh->getMeshType());
  37. }