CameraNode.h 1005 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. /// @addtogroup Scene
  10. /// @{
  11. /// Camera SceneNode interface class
  12. class CameraNode : public SceneNode
  13. {
  14. public:
  15. CameraNode(SceneGraph* scene, CString name);
  16. ~CameraNode();
  17. protected:
  18. void initCommon(FrustumType frustumType);
  19. private:
  20. class MoveFeedbackComponent;
  21. /// Called when moved.
  22. void onMoveComponentUpdate(MoveComponent& move);
  23. };
  24. /// Perspective camera
  25. class PerspectiveCameraNode : public CameraNode
  26. {
  27. public:
  28. PerspectiveCameraNode(SceneGraph* scene, CString name);
  29. ~PerspectiveCameraNode();
  30. };
  31. /// Orthographic camera
  32. class OrthographicCameraNode : public CameraNode
  33. {
  34. public:
  35. OrthographicCameraNode(SceneGraph* scene, CString name);
  36. ~OrthographicCameraNode();
  37. };
  38. /// @}
  39. } // end namespace anki