Camera.cpp 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. #include "Base.h"
  2. #include "Camera.h"
  3. namespace gameplay
  4. {
  5. Camera::Camera(void) :
  6. _cameraType(CameraPerspective),
  7. _fieldOfView(0.0f),
  8. _aspectRatio(0.0f),
  9. _nearPlane(0.0f),
  10. _farPlane(0.0f),
  11. _viewportWidth(0.0f),
  12. _viewportHeight(0.0f)
  13. {
  14. }
  15. Camera::~Camera(void)
  16. {
  17. }
  18. void Camera::setFieldOfView(float value)
  19. {
  20. _fieldOfView = value;
  21. }
  22. void Camera::setAspectRatio(float value)
  23. {
  24. _aspectRatio = value;
  25. }
  26. void Camera::setNearPlane(float value)
  27. {
  28. _nearPlane = value;
  29. }
  30. void Camera::setFarPlane(float value)
  31. {
  32. _farPlane = value;
  33. }
  34. unsigned int Camera::getTypeId(void) const
  35. {
  36. return CAMERA_ID;
  37. }
  38. const char* Camera::getElementName(void) const
  39. {
  40. return "Camera";
  41. }
  42. void Camera::writeBinary(FILE* file)
  43. {
  44. Object::writeBinary(file);
  45. write(_cameraType, file);
  46. write(_aspectRatio, file);
  47. write(_nearPlane, file);
  48. write(_farPlane, file);
  49. if (_cameraType == CameraPerspective)
  50. {
  51. write(_fieldOfView, file);
  52. }
  53. else if (_cameraType == CameraOrthographic)
  54. {
  55. write(getViewPortWidth(), file);
  56. write(getViewPortHeight(), file);
  57. }
  58. else
  59. {
  60. assert(false);
  61. }
  62. }
  63. void Camera::writeText(FILE* file)
  64. {
  65. fprintElementStart(file);
  66. fprintfElement(file, "cameraType", _cameraType == CameraPerspective ? "CameraPerspective" : "CameraOrthographic");
  67. fprintfElement(file, "aspectRatio", _aspectRatio);
  68. fprintfElement(file, "nearPlane", _nearPlane);
  69. fprintfElement(file, "farPlane", _farPlane);
  70. if (_cameraType == CameraPerspective)
  71. {
  72. fprintfElement(file, "fieldOfView", _fieldOfView);
  73. }
  74. else if (_cameraType == CameraOrthographic)
  75. {
  76. fprintfElement(file, "viewportWidth", _viewportWidth);
  77. fprintfElement(file, "viewportHeight", _viewportHeight);
  78. }
  79. else
  80. {
  81. assert(false);
  82. }
  83. fprintElementEnd(file);
  84. }
  85. void Camera::setPerspective()
  86. {
  87. _cameraType = CameraPerspective;
  88. }
  89. void Camera::setOrthographic()
  90. {
  91. _cameraType = CameraOrthographic;
  92. }
  93. void Camera::setViewportWidth(float width)
  94. {
  95. _viewportWidth = width;
  96. }
  97. void Camera::setViewportHeight(float height)
  98. {
  99. _viewportHeight = height;
  100. }
  101. float Camera::getViewPortWidth()
  102. {
  103. return _viewportWidth;
  104. }
  105. float Camera::getViewPortHeight()
  106. {
  107. return _viewportHeight;
  108. }
  109. }