CameraNode.h 1005 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // Copyright (C) 2009-2021, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #pragma once
  6. #include <AnKi/Scene/SceneNode.h>
  7. #include <AnKi/Collision/Common.h>
  8. namespace anki
  9. {
  10. /// @addtogroup Scene
  11. /// @{
  12. /// Camera SceneNode interface class
  13. class CameraNode : public SceneNode
  14. {
  15. public:
  16. CameraNode(SceneGraph* scene, CString name);
  17. ~CameraNode();
  18. protected:
  19. void initCommon(FrustumType frustumType);
  20. private:
  21. class MoveFeedbackComponent;
  22. /// Called when moved.
  23. void onMoveComponentUpdate(MoveComponent& move);
  24. };
  25. /// Perspective camera
  26. class PerspectiveCameraNode : public CameraNode
  27. {
  28. public:
  29. PerspectiveCameraNode(SceneGraph* scene, CString name);
  30. ~PerspectiveCameraNode();
  31. };
  32. /// Orthographic camera
  33. class OrthographicCameraNode : public CameraNode
  34. {
  35. public:
  36. OrthographicCameraNode(SceneGraph* scene, CString name);
  37. ~OrthographicCameraNode();
  38. };
  39. /// @}
  40. } // end namespace anki