Node.cpp 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /***************************************************************************
  2. Node.cpp - description
  3. -------------------
  4. begin : Wed Jan 26 2000
  5. copyright : (C) 2000 by Henrik Enqvist
  6. email : henqvist@excite.com
  7. ***************************************************************************/
  8. #include "Private.h"
  9. #include "Node.h"
  10. Node::Node() {
  11. m_mtxSrc = EMath::identityMatrix;
  12. m_mtxTrans = EMath::identityMatrix;
  13. m_vtxT.x = 0;
  14. m_vtxT.y = 0;
  15. m_vtxT.z = 0;
  16. m_vtxR.x = 0;
  17. m_vtxR.y = 0;
  18. m_vtxR.z = 0;
  19. m_vtxS.x = 1;
  20. m_vtxS.y = 1;
  21. m_vtxS.z = 1;
  22. }
  23. Node::~Node() {
  24. }
  25. void Node::setTransform(float tx, float ty, float tz, float rx, float ry, float rz) {
  26. m_vtxT.x = tx;
  27. m_vtxT.y = ty;
  28. m_vtxT.z = tz;
  29. m_vtxR.x = rx;
  30. m_vtxR.y = ry;
  31. m_vtxR.z = rz;
  32. EMath::getTransformationMatrix(m_mtxSrc, m_vtxT, m_vtxR, m_vtxS);
  33. }
  34. void Node::addTransform(float tx, float ty, float tz, float rx, float ry, float rz) {
  35. m_vtxT.x += tx;
  36. m_vtxT.y += ty;
  37. m_vtxT.z += tz;
  38. m_vtxR.x += rx;
  39. m_vtxR.y += ry;
  40. m_vtxR.z += rz;
  41. EMath::getTransformationMatrix(m_mtxSrc, m_vtxT, m_vtxR, m_vtxS);
  42. }
  43. void Node::setRotation(float x, float y, float z) {
  44. m_vtxR.x = x;
  45. m_vtxR.y = y;
  46. m_vtxR.z = z;
  47. EMath::getTransformationMatrix(m_mtxSrc, m_vtxT, m_vtxR, m_vtxS);
  48. }
  49. void Node::getRotation(float & x, float & y, float & z) {
  50. x = m_vtxR.x;
  51. y = m_vtxR.y;
  52. z = m_vtxR.z;
  53. }
  54. void Node::addRotation(float x, float y, float z) {
  55. m_vtxR.x += x;
  56. m_vtxR.y += y;
  57. m_vtxR.z += z;
  58. EMath::getTransformationMatrix(m_mtxSrc, m_vtxT, m_vtxR, m_vtxS);
  59. }
  60. void Node::setScale(float x, float y, float z) {
  61. m_vtxS.x = x;
  62. m_vtxS.y = y;
  63. m_vtxS.z = z;
  64. EMath::getTransformationMatrix(m_mtxSrc, m_vtxT, m_vtxR, m_vtxS);
  65. }
  66. void Node::getScale(float & x, float & y, float & z) {
  67. x = m_vtxS.x;
  68. y = m_vtxS.y;
  69. z = m_vtxS.z;
  70. }
  71. void Node::addScale(float x, float y, float z) {
  72. m_vtxS.x += x;
  73. m_vtxS.y += y;
  74. m_vtxS.z += z;
  75. EMath::getTransformationMatrix(m_mtxSrc, m_vtxT, m_vtxR, m_vtxS);
  76. }
  77. void Node::setTranslation(float x, float y, float z) {
  78. m_vtxT.x = x;
  79. m_vtxT.y = y;
  80. m_vtxT.z = z;
  81. m_mtxSrc.t[0] = x;
  82. m_mtxSrc.t[1] = y;
  83. m_mtxSrc.t[2] = z;
  84. }
  85. void Node::getTranslation(float & x, float & y, float & z) {
  86. x = m_vtxT.x;
  87. y = m_vtxT.y;
  88. z = m_vtxT.z;
  89. }
  90. void Node::addTranslation(float x, float y, float z) {
  91. m_vtxT.x += x;
  92. m_vtxT.y += y;
  93. m_vtxT.z += z;
  94. m_mtxSrc.t[0] = m_vtxT.x;
  95. m_mtxSrc.t[1] = m_vtxT.y;
  96. m_mtxSrc.t[2] = m_vtxT.z;
  97. }