2
0

BsScriptCamera.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. #pragma once
  2. #include "BsScriptEnginePrerequisites.h"
  3. #include "BsScriptObject.h"
  4. #include "BsVector2.h"
  5. #include "BsVector3.h"
  6. #include "BsVector2I.h"
  7. #include "BsRay.h"
  8. #include "BsDegree.h"
  9. #include "BsMatrix4.h"
  10. #include "BsRect2.h"
  11. #include "BsColor.h"
  12. namespace BansheeEngine
  13. {
  14. /**
  15. * @brief Interop class between C++ & CLR for Camera.
  16. */
  17. class BS_SCR_BE_EXPORT ScriptCamera : public ScriptObject<ScriptCamera>
  18. {
  19. public:
  20. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "NativeCamera")
  21. /**
  22. * @brief Returns the wrapped native Camera object.
  23. */
  24. SPtr<Camera> getInternal() const { return mCamera; }
  25. private:
  26. ScriptCamera(MonoObject* managedInstance, const HSceneObject& parentSO);
  27. ~ScriptCamera();
  28. /**
  29. * @brief Updates the internal camera handler from the transform of the
  30. * provided scene object.
  31. */
  32. void updateView(const HSceneObject& parent);
  33. SPtr<Camera> mCamera;
  34. UINT32 mLastUpdateHash;
  35. /************************************************************************/
  36. /* CLR HOOKS */
  37. /************************************************************************/
  38. static void internal_Create(MonoObject* managedInstance, ScriptSceneObject* parentSO);
  39. static float internal_GetAspect(ScriptCamera* instance);
  40. static void internal_SetAspect(ScriptCamera* instance, float value);
  41. static float internal_GetNearClip(ScriptCamera* instance);
  42. static void internal_SetNearClip(ScriptCamera* instance, float value);
  43. static float internal_GetFarClip(ScriptCamera* instance);
  44. static void internal_SetFarClip(ScriptCamera* instance, float value);
  45. static void internal_GetFieldOfView(ScriptCamera* instance, Degree* value);
  46. static void internal_SetFieldOfView(ScriptCamera* instance, Degree value);
  47. static Rect2 internal_GetViewportRect(ScriptCamera* instance);
  48. static void internal_SetViewportRect(ScriptCamera* instance, Rect2 value);
  49. static UINT32 internal_GetProjectionType(ScriptCamera* instance);
  50. static void internal_SetProjectionType(ScriptCamera* instance, UINT32 value);
  51. static float internal_GetOrthographicHeight(ScriptCamera* instance);
  52. static void internal_SetOrthographicHeight(ScriptCamera* instance, float value);
  53. static float internal_GetOrthographicWidth(ScriptCamera* instance);
  54. static Color internal_GetClearColor(ScriptCamera* instance);
  55. static void internal_SetClearColor(ScriptCamera* instance, Color value);
  56. static float internal_GetDepthClearValue(ScriptCamera* instance);
  57. static void internal_SetDepthClearValue(ScriptCamera* instance, float value);
  58. static UINT16 internal_GetStencilClearValue(ScriptCamera* instance);
  59. static void internal_SetStencilClearValue(ScriptCamera* instance, UINT16 value);
  60. static UINT32 internal_GetClearFlags(ScriptCamera* instance);
  61. static void internal_SetClearFlags(ScriptCamera* instance, UINT32 value);
  62. static int internal_GetPriority(ScriptCamera* instance);
  63. static void internal_SetPriority(ScriptCamera* instance, int value);
  64. static UINT64 internal_GetLayers(ScriptCamera* instance);
  65. static void internal_SetLayers(ScriptCamera* instance, UINT64 value);
  66. static Matrix4 internal_GetProjMatrix(ScriptCamera* instance);
  67. static Matrix4 internal_GetProjMatrixInv(ScriptCamera* instance);
  68. static Matrix4 internal_GetViewMatrix(ScriptCamera* instance);
  69. static Matrix4 internal_GetViewMatrixInv(ScriptCamera* instance);
  70. static int internal_GetWidthPixels(ScriptCamera* instance);
  71. static int internal_GetHeightPixels(ScriptCamera* instance);
  72. static Vector2I internal_WorldToScreen(ScriptCamera* instance, Vector3 value);
  73. static Vector2 internal_WorldToClip(ScriptCamera* instance, Vector3 value);
  74. static Vector3 internal_WorldToView(ScriptCamera* instance, Vector3 value);
  75. static Vector3 internal_ScreenToWorld(ScriptCamera* instance, Vector2I value, float depth);
  76. static Vector3 internal_ScreenToView(ScriptCamera* instance, Vector2I value, float depth);
  77. static Vector2 internal_ScreenToClip(ScriptCamera* instance, Vector2I value);
  78. static Vector3 internal_ViewToWorld(ScriptCamera* instance, Vector3 value);
  79. static Vector2I internal_ViewToScreen(ScriptCamera* instance, Vector3 value);
  80. static Vector2 internal_ViewToClip(ScriptCamera* instance, Vector3 value);
  81. static Vector3 internal_ClipToWorld(ScriptCamera* instance, Vector2 value, float depth);
  82. static Vector3 internal_ClipToView(ScriptCamera* instance, Vector2 value, float depth);
  83. static Vector2I internal_ClipToScreen(ScriptCamera* instance, Vector2 value);
  84. static Ray internal_ScreenToWorldRay(ScriptCamera* instance, Vector2I value);
  85. static Vector3 internal_ProjectPoint(ScriptCamera* instance, Vector3 value);
  86. static Vector3 internal_UnprojectPoint(ScriptCamera* instance, Vector3 value);
  87. static void internal_SetRenderTarget(ScriptCamera* instance, ScriptRenderTarget* target);
  88. static void internal_UpdateView(ScriptCamera* instance, ScriptSceneObject* parent);
  89. static void internal_OnDestroy(ScriptCamera* instance);
  90. };
  91. }