From c862835e502c4ec74e506f9bd372d028e8eb558b Mon Sep 17 00:00:00 2001 From: seungho Date: Fri, 26 Aug 2022 10:47:50 +0900 Subject: [PATCH] [NUI] Add Camera in Tizen.NUI.Scene3D Signed-off-by: seungho --- .../src/internal/CameraBindableProperty.cs | 195 +++++++ .../src/internal/Interop/Interop.Camera.cs | 128 +++++ .../src/public/Controls/Camera.cs | 589 +++++++++++++++++++++ 3 files changed, 912 insertions(+) create mode 100755 src/Tizen.NUI.Scene3D/src/internal/CameraBindableProperty.cs create mode 100755 src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.Camera.cs create mode 100755 src/Tizen.NUI.Scene3D/src/public/Controls/Camera.cs diff --git a/src/Tizen.NUI.Scene3D/src/internal/CameraBindableProperty.cs b/src/Tizen.NUI.Scene3D/src/internal/CameraBindableProperty.cs new file mode 100755 index 0000000..0e1ef47 --- /dev/null +++ b/src/Tizen.NUI.Scene3D/src/internal/CameraBindableProperty.cs @@ -0,0 +1,195 @@ +/* + * Copyright(c) 2022 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +using System.ComponentModel; +using Tizen.NUI.Binding; + +namespace Tizen.NUI.Scene3D +{ + public partial class Camera + { + /// + /// ProjectionModeProperty + /// + internal static readonly BindableProperty ProjectionProperty = BindableProperty.Create(nameof(ProjectionMode), typeof(ProjectionModeType), typeof(Tizen.NUI.Scene3D.Camera), ProjectionModeType.Perspective, propertyChanged: (bindable, oldValue, newValue) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + if (newValue != null) + { + instance.InternalProjectionMode = (ProjectionModeType)newValue; + } + }, + defaultValueCreator: (bindable) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + return instance.InternalProjectionMode; + }); + + /// + /// FieldOfViewProperty + /// + internal static readonly BindableProperty FieldOfViewProperty = BindableProperty.Create(nameof(FieldOfView), typeof(float), typeof(Tizen.NUI.Scene3D.Camera), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + if (newValue != null) + { + instance.InternalFieldOfView = (float)newValue; + } + }, + defaultValueCreator: (bindable) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + return instance.InternalFieldOfView; + }); + + /// + /// AspectRatioProperty + /// + internal static readonly BindableProperty AspectRatioProperty = BindableProperty.Create(nameof(AspectRatio), typeof(float), typeof(Tizen.NUI.Scene3D.Camera), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + if (newValue != null) + { + instance.InternalAspectRatio = (float)newValue; + } + }, + defaultValueCreator: (bindable) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + return instance.InternalAspectRatio; + }); + + /// + /// NearPlaneDistanceProperty + /// + internal static readonly BindableProperty NearPlaneDistanceProperty = BindableProperty.Create(nameof(NearPlaneDistance), typeof(float), typeof(Tizen.NUI.Scene3D.Camera), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + if (newValue != null) + { + instance.InternalNearPlaneDistance = (float)newValue; + } + }, + defaultValueCreator: (bindable) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + return instance.InternalNearPlaneDistance; + }); + + /// + /// FarPlaneDistanceProperty + /// + internal static readonly BindableProperty FarPlaneDistanceProperty = BindableProperty.Create(nameof(FarPlaneDistance), typeof(float), typeof(Tizen.NUI.Scene3D.Camera), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + if (newValue != null) + { + instance.InternalFarPlaneDistance = (float)newValue; + } + }, + defaultValueCreator: (bindable) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + return instance.InternalFarPlaneDistance; + }); + + /// + /// LeftPlaneDistanceProperty + /// + internal static readonly BindableProperty LeftPlaneDistanceProperty = BindableProperty.Create(nameof(LeftPlaneDistance), typeof(float), typeof(Tizen.NUI.Scene3D.Camera), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + if (newValue != null) + { + instance.InternalLeftPlaneDistance = (float)newValue; + } + }, + defaultValueCreator: (bindable) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + return instance.InternalLeftPlaneDistance; + }); + + /// + /// RightPlaneDistanceProperty + /// + internal static readonly BindableProperty RightPlaneDistanceProperty = BindableProperty.Create(nameof(RightPlaneDistance), typeof(float), typeof(Tizen.NUI.Scene3D.Camera), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + if (newValue != null) + { + instance.InternalRightPlaneDistance = (float)newValue; + } + }, + defaultValueCreator: (bindable) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + return instance.InternalRightPlaneDistance; + }); + + /// + /// TopPlaneDistanceProperty + /// + internal static readonly BindableProperty TopPlaneDistanceProperty = BindableProperty.Create(nameof(TopPlaneDistance), typeof(float), typeof(Tizen.NUI.Scene3D.Camera), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + if (newValue != null) + { + instance.InternalTopPlaneDistance = (float)newValue; + } + }, + defaultValueCreator: (bindable) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + return instance.InternalTopPlaneDistance; + }); + + /// + /// BottomPlaneDistanceProperty + /// + internal static readonly BindableProperty BottomPlaneDistanceProperty = BindableProperty.Create(nameof(BottomPlaneDistance), typeof(float), typeof(Tizen.NUI.Scene3D.Camera), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + if (newValue != null) + { + instance.InternalBottomPlaneDistance = (float)newValue; + } + }, + defaultValueCreator: (bindable) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + return instance.InternalBottomPlaneDistance; + }); + + /// + /// InvertYAxisProperty + /// + internal static readonly BindableProperty InvertYAxisProperty = BindableProperty.Create(nameof(InvertYAxis), typeof(bool), typeof(Tizen.NUI.Scene3D.Camera), false, propertyChanged: (bindable, oldValue, newValue) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + if (newValue != null) + { + instance.InternalInvertYAxis = (bool)newValue; + } + }, + defaultValueCreator: (bindable) => + { + var instance = (Tizen.NUI.Scene3D.Camera)bindable; + return instance.InternalInvertYAxis; + }); + } +} diff --git a/src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.Camera.cs b/src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.Camera.cs new file mode 100755 index 0000000..f7e6b02 --- /dev/null +++ b/src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.Camera.cs @@ -0,0 +1,128 @@ +/* + * Copyright(c) 2022 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +namespace Tizen.NUI.Scene3D +{ + internal static partial class Interop + { + internal static partial class Camera + { + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_Property_PROJECTION_MODE_get")] + public static extern int ProjectionModeGet(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_Property_FIELD_OF_VIEW_get")] + public static extern int FieldOfViewGet(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_Property_ASPECT_RATIO_get")] + public static extern int AspectRatioGet(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_Property_NEAR_PLANE_DISTANCE_get")] + public static extern int NearPlaneDistanceGet(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_Property_FAR_PLANE_DISTANCE_get")] + public static extern int FarPlaneDistanceGet(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_Property_LEFT_PLANE_DISTANCE_get")] + public static extern int LeftPlaneDistanceGet(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_Property_RIGHT_PLANE_DISTANCE_get")] + public static extern int RightPlaneDistanceGet(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_Property_TOP_PLANE_DISTANCE_get")] + public static extern int TopPlaneDistanceGet(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_Property_BOTTOM_PLANE_DISTANCE_get")] + public static extern int BottomPlaneDistanceGet(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_Property_PROJECTION_MATRIX_get")] + public static extern int ProjectionMatrixGet(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_Property_VIEW_MATRIX_get")] + public static extern int ViewMatrixGet(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_Property_INVERT_Y_AXIS_get")] + public static extern int InvertYAxisGet(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_new_CameraActor_Property")] + public static extern global::System.IntPtr NewCameraProperty(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_delete_CameraActor_Property")] + public static extern void DeleteCameraProperty(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_new_CameraActor__SWIG_0")] + public static extern global::System.IntPtr NewCamera(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_New__SWIG_0")] + public static extern global::System.IntPtr New(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_New__SWIG_1")] + public static extern global::System.IntPtr New(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_DownCast")] + public static extern global::System.IntPtr DownCast(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_delete_CameraActor")] + public static extern void DeleteCamera(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_new_CameraActor__SWIG_1")] + public static extern global::System.IntPtr NewCamera(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_Assign")] + public static extern global::System.IntPtr Assign(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_SetProjectionMode")] + public static extern void SetProjectionMode(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_GetProjectionMode")] + public static extern int GetProjectionMode(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_SetFieldOfView")] + public static extern void SetFieldOfView(global::System.Runtime.InteropServices.HandleRef jarg1, float jarg2); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_GetFieldOfView")] + public static extern float GetFieldOfView(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_SetAspectRatio")] + public static extern void SetAspectRatio(global::System.Runtime.InteropServices.HandleRef jarg1, float jarg2); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_GetAspectRatio")] + public static extern float GetAspectRatio(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_SetNearClippingPlane")] + public static extern void SetNearClippingPlane(global::System.Runtime.InteropServices.HandleRef jarg1, float jarg2); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_GetNearClippingPlane")] + public static extern float GetNearClippingPlane(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_SetFarClippingPlane")] + public static extern void SetFarClippingPlane(global::System.Runtime.InteropServices.HandleRef jarg1, float jarg2); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_GetFarClippingPlane")] + public static extern float GetFarClippingPlane(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_SetInvertYAxis")] + public static extern void SetInvertYAxis(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_GetInvertYAxis")] + [return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)] + public static extern bool GetInvertYAxis(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_CameraActor_SWIGUpcast")] + public static extern global::System.IntPtr Upcast(global::System.IntPtr jarg1); + } + } +} diff --git a/src/Tizen.NUI.Scene3D/src/public/Controls/Camera.cs b/src/Tizen.NUI.Scene3D/src/public/Controls/Camera.cs new file mode 100755 index 0000000..dfcc09e --- /dev/null +++ b/src/Tizen.NUI.Scene3D/src/public/Controls/Camera.cs @@ -0,0 +1,589 @@ +/* + * Copyright(c) 2022 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +using System; +using System.ComponentModel; +using Tizen.NUI.BaseComponents; + +namespace Tizen.NUI.Scene3D +{ + /// + /// Camera class controls a camera in 3D space. + /// + /// Camera can be added on the SceneView and displays SceneView's virtual 3D world to the screen. + /// Camera can be translated and rotated in the space. + /// + /// + /// Transform inheritance cannot be guaranteed when adding children to a camera. + /// + /// This will be released at Tizen.NET API Level 10, so currently this would be used as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public partial class Camera : View + { + /// + /// Enumeration for the projectionMode. + /// + /// This will be released at Tizen.NET API Level 10, so currently this would be used as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public enum ProjectionModeType + { + /// + /// Distance causes foreshortening; objects further from the camera appear smaller. + /// + Perspective, + /// + /// Relative distance from the camera does not affect the size of objects. + /// + Orthographic + } + + internal Camera(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn) + { + } + + /// + /// Creates an uninitialized Camera. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public Camera() : this(Interop.Camera.New(), true) + { + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + /// + /// Copy constructor. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public Camera(Camera copy) : this(Interop.Camera.NewCamera(Camera.getCPtr(copy)), true) + { + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + /// + /// Assignment. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public Camera Assign(Camera rhs) + { + Camera ret = new Camera(Interop.Camera.Assign(SwigCPtr, Camera.getCPtr(rhs)), false); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + /// + /// Creates a CameraActor object. + /// Sets the default camera perspective projection for the given canvas size.. + /// + internal Camera(Vector2 size) : this(Interop.Camera.New(Vector2.getCPtr(size)), true) + { + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + internal static Camera DownCast(BaseHandle handle) + { + if (handle == null) + { + throw new global::System.ArgumentNullException(nameof(handle)); + } + Camera ret = Registry.GetManagedBaseHandleFromNativePtr(handle) as Camera; + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + /// + /// Sets/Gets the projection mode. + /// The default is Perspective + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public ProjectionModeType ProjectionMode + { + get + { + return (ProjectionModeType)GetValue(ProjectionProperty); + } + set + { + SetValue(ProjectionProperty, value); + NotifyPropertyChanged(); + } + } + + /// + /// Sets/Gets the field of view in Radians. + /// The default field of view is 45 degrees. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public float FieldOfView + { + get + { + return (float)GetValue(FieldOfViewProperty); + } + set + { + SetValue(FieldOfViewProperty, value); + NotifyPropertyChanged(); + } + } + + /// + /// Gets the aspect ratio of the camera. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public float AspectRatio + { + get + { + return (float)GetValue(AspectRatioProperty); + } + } + + /// + /// Sets/Gets the near clipping plane distance. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public float NearPlaneDistance + { + get + { + return (float)GetValue(NearPlaneDistanceProperty); + } + set + { + SetValue(NearPlaneDistanceProperty, value); + NotifyPropertyChanged(); + } + } + + /// + /// Sets/Gets the far clipping plane distance. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public float FarPlaneDistance + { + get + { + return (float)GetValue(FarPlaneDistanceProperty); + } + set + { + SetValue(FarPlaneDistanceProperty, value); + NotifyPropertyChanged(); + } + } + + /// + /// Sets/Gets the left clipping plane distance. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public float LeftPlaneDistance + { + get + { + return (float)GetValue(LeftPlaneDistanceProperty); + } + set + { + SetValue(LeftPlaneDistanceProperty, value); + NotifyPropertyChanged(); + } + } + + /// + /// Sets/Gets the right clipping plane distance. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public float RightPlaneDistance + { + get + { + return (float)GetValue(RightPlaneDistanceProperty); + } + set + { + SetValue(RightPlaneDistanceProperty, value); + NotifyPropertyChanged(); + } + } + + /// + /// Sets/Gets the top clipping plane distance. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public float TopPlaneDistance + { + get + { + return (float)GetValue(TopPlaneDistanceProperty); + } + set + { + SetValue(TopPlaneDistanceProperty, value); + NotifyPropertyChanged(); + } + } + + /// + /// Sets/Gets the bottom clipping plane distance. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public float BottomPlaneDistance + { + get + { + return (float)GetValue(BottomPlaneDistanceProperty); + } + set + { + SetValue(BottomPlaneDistanceProperty, value); + NotifyPropertyChanged(); + } + } + + /// + /// Requests for an inversion on the Y axis on the projection calculation. + /// or gets whether the Y axis is inverted. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public bool InvertYAxis + { + get + { + return (bool)GetValue(InvertYAxisProperty); + } + set + { + SetValue(InvertYAxisProperty, value); + NotifyPropertyChanged(); + } + } + + /// + /// Gets ProjectionMatrix of this Camera + /// TODO : Open Matrix + /// + internal Matrix ProjectionMatrix + { + get + { + Matrix returnValue = new Matrix(); + PropertyValue projectionMatrix = GetProperty(Interop.Camera.ProjectionMatrixGet()); + projectionMatrix?.Get(returnValue); + projectionMatrix?.Dispose(); + return returnValue; + } + } + + /// + /// Gets ViewMatrix of this Camera + /// TODO : Open Matrix + /// + internal Matrix ViewMatrix + { + get + { + Matrix returnValue = new Matrix(); + PropertyValue viewMatrix = GetProperty(Interop.Camera.ViewMatrixGet()); + viewMatrix.Get(returnValue); + viewMatrix.Dispose(); + return returnValue; + } + } + + private ProjectionModeType InternalProjectionMode + { + get + { + int returnValue = (int)ProjectionModeType.Perspective; + PropertyValue projectionMode = GetProperty(Interop.Camera.ProjectionModeGet()); + projectionMode?.Get(out returnValue); + projectionMode?.Dispose(); + return (ProjectionModeType)returnValue; + } + set + { + PropertyValue setValue = new Tizen.NUI.PropertyValue((int)value); + SetProperty(Interop.Camera.ProjectionModeGet(), setValue); + setValue.Dispose(); + } + } + + private float InternalFieldOfView + { + get + { + float returnValue = 0.0f; + PropertyValue fieldView = GetProperty(Interop.Camera.FieldOfViewGet()); + fieldView?.Get(out returnValue); + fieldView?.Dispose(); + return returnValue; + } + set + { + PropertyValue setValue = new Tizen.NUI.PropertyValue(value); + SetProperty(Interop.Camera.FieldOfViewGet(), setValue); + setValue.Dispose(); + } + } + + private float InternalAspectRatio + { + get + { + float returnValue = 0.0f; + PropertyValue aspectRatio = GetProperty(Interop.Camera.AspectRatioGet()); + aspectRatio?.Get(out returnValue); + aspectRatio?.Dispose(); + return returnValue; + } + set + { + PropertyValue setValue = new Tizen.NUI.PropertyValue(value); + SetProperty(Interop.Camera.AspectRatioGet(), setValue); + setValue.Dispose(); + } + } + + private float InternalNearPlaneDistance + { + get + { + float returnValue = 0.0f; + PropertyValue nearPlaneDistance = GetProperty(Interop.Camera.NearPlaneDistanceGet()); + nearPlaneDistance?.Get(out returnValue); + nearPlaneDistance?.Dispose(); + return returnValue; + } + set + { + PropertyValue setValue = new Tizen.NUI.PropertyValue(value); + SetProperty(Interop.Camera.NearPlaneDistanceGet(), setValue); + setValue.Dispose(); + } + } + + private float InternalFarPlaneDistance + { + get + { + float returnValue = 0.0f; + PropertyValue farPlaneDistance = GetProperty(Interop.Camera.FarPlaneDistanceGet()); + farPlaneDistance?.Get(out returnValue); + farPlaneDistance?.Dispose(); + return returnValue; + } + set + { + PropertyValue setValue = new Tizen.NUI.PropertyValue(value); + SetProperty(Interop.Camera.FarPlaneDistanceGet(), setValue); + setValue.Dispose(); + } + } + + private float InternalLeftPlaneDistance + { + get + { + float returnValue = 0.0f; + PropertyValue leftPlaneDistance = GetProperty(Interop.Camera.LeftPlaneDistanceGet()); + leftPlaneDistance?.Get(out returnValue); + leftPlaneDistance?.Dispose(); + return returnValue; + } + set + { + PropertyValue setValue = new Tizen.NUI.PropertyValue(value); + SetProperty(Interop.Camera.LeftPlaneDistanceGet(), setValue); + setValue.Dispose(); + } + } + + private float InternalRightPlaneDistance + { + get + { + float returnValue = 0.0f; + PropertyValue rightPlaneDistance = GetProperty(Interop.Camera.RightPlaneDistanceGet()); + rightPlaneDistance?.Get(out returnValue); + rightPlaneDistance?.Dispose(); + return returnValue; + } + set + { + PropertyValue setValue = new Tizen.NUI.PropertyValue(value); + SetProperty(Interop.Camera.RightPlaneDistanceGet(), setValue); + setValue.Dispose(); + } + } + + private float InternalTopPlaneDistance + { + get + { + float returnValue = 0.0f; + PropertyValue topPlaneDistance = GetProperty(Interop.Camera.TopPlaneDistanceGet()); + topPlaneDistance?.Get(out returnValue); + topPlaneDistance?.Dispose(); + return returnValue; + } + set + { + PropertyValue setValue = new Tizen.NUI.PropertyValue(value); + SetProperty(Interop.Camera.TopPlaneDistanceGet(), setValue); + setValue.Dispose(); + } + } + + private float InternalBottomPlaneDistance + { + get + { + float returnValue = 0.0f; + PropertyValue bottomPlaneDistance = GetProperty(Interop.Camera.BottomPlaneDistanceGet()); + bottomPlaneDistance?.Get(out returnValue); + bottomPlaneDistance?.Dispose(); + return returnValue; + } + set + { + PropertyValue setValue = new Tizen.NUI.PropertyValue(value); + SetProperty(Interop.Camera.BottomPlaneDistanceGet(), setValue); + setValue.Dispose(); + } + } + + private bool InternalInvertYAxis + { + get + { + bool returnValue = false; + PropertyValue invertYAxis = GetProperty(Interop.Camera.InvertYAxisGet()); + invertYAxis?.Get(out returnValue); + invertYAxis?.Dispose(); + return returnValue; + } + set + { + PropertyValue setValue = new Tizen.NUI.PropertyValue(value); + SetProperty(Interop.Camera.InvertYAxisGet(), setValue); + setValue.Dispose(); + } + } + + internal void SetProjection(ProjectionModeType mode) + { + Interop.Camera.SetProjectionMode(SwigCPtr, (int)mode); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + internal ProjectionModeType GetProjection() + { + ProjectionModeType ret = (ProjectionModeType)Interop.Camera.GetProjectionMode(SwigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + internal void SetFieldOfView(float fieldOfView) + { + Interop.Camera.SetFieldOfView(SwigCPtr, fieldOfView); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + internal float GetFieldOfView() + { + float ret = Interop.Camera.GetFieldOfView(SwigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + internal void SetAspectRatio(float aspectRatio) + { + Interop.Camera.SetAspectRatio(SwigCPtr, aspectRatio); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + internal float GetAspectRatio() + { + float ret = Interop.Camera.GetAspectRatio(SwigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + internal void SetNearClippingPlane(float nearClippingPlane) + { + Interop.Camera.SetNearClippingPlane(SwigCPtr, nearClippingPlane); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + internal float GetNearClippingPlane() + { + float ret = Interop.Camera.GetNearClippingPlane(SwigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + internal void SetFarClippingPlane(float farClippingPlane) + { + Interop.Camera.SetFarClippingPlane(SwigCPtr, farClippingPlane); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + internal float GetFarClippingPlane() + { + float ret = Interop.Camera.GetFarClippingPlane(SwigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + internal void SetInvertYAxis(bool invertYAxis) + { + Interop.Camera.SetInvertYAxis(SwigCPtr, invertYAxis); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + internal bool GetInvertYAxis() + { + bool ret = Interop.Camera.GetInvertYAxis(SwigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + /// + /// Release swigCPtr. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + protected override void ReleaseSwigCPtr(global::System.Runtime.InteropServices.HandleRef swigCPtr) + { + Interop.Camera.DeleteCamera(swigCPtr); + } + } +} -- 2.7.4