generated from krampus/template-godot4
	
		
			
	
	
		
			118 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			118 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 
								 | 
							
								using Godot;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace PhantomCamera;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								public enum KeepAspect
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    KeepWidth,
							 | 
						|||
| 
								 | 
							
								    KeepHeight
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								public enum ProjectionType
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    Perspective,
							 | 
						|||
| 
								 | 
							
								    Orthogonal,
							 | 
						|||
| 
								 | 
							
								    Frustum
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								public class Camera3DResource(Resource resource)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    public readonly Resource Resource = resource;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public KeepAspect KeepAspect
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        get => (KeepAspect)(int)Resource.Call(MethodName.GetKeepAspect);
							 | 
						|||
| 
								 | 
							
								        set => Resource.Call(MethodName.SetKeepAspect, (int)value);
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public int CullMask
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        get => (int)Resource.Call(MethodName.GetCullMask);
							 | 
						|||
| 
								 | 
							
								        set => Resource.Call(MethodName.SetCullMask, value);
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public void SetCullMaskValue(int layer, bool value) => Resource.Call(MethodName.SetCullMaskValue, layer, value);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public float HOffset
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        get => (float)Resource.Call(MethodName.GetHOffset);
							 | 
						|||
| 
								 | 
							
								        set => Resource.Call(MethodName.SetHOffset, value);
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public float VOffset
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        get => (float)Resource.Call(MethodName.GetVOffset);
							 | 
						|||
| 
								 | 
							
								        set => Resource.Call(MethodName.SetVOffset, value);
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public ProjectionType Projection
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        get => (ProjectionType)(int)Resource.Call(MethodName.GetProjection);
							 | 
						|||
| 
								 | 
							
								        set => Resource.Call(MethodName.SetProjection, (int)value);
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public float Fov
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        get => (float)Resource.Call(MethodName.GetFov);
							 | 
						|||
| 
								 | 
							
								        set => Resource.Call(MethodName.SetFov, Mathf.Clamp(value, 1, 179));
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public float Size
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        get => (float)Resource.Call(MethodName.GetSize);
							 | 
						|||
| 
								 | 
							
								        set => Resource.Call(MethodName.SetSize, Mathf.Clamp(value, 0.001f, float.PositiveInfinity));
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public Vector2 FrustumOffset
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        get => (Vector2)Resource.Call(MethodName.GetFrustumOffset);
							 | 
						|||
| 
								 | 
							
								        set => Resource.Call(MethodName.SetFrustumOffset, value);
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public float Near
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        get => (float)Resource.Call(MethodName.GetNear);
							 | 
						|||
| 
								 | 
							
								        set => Resource.Call(MethodName.SetNear, Mathf.Clamp(value, 0.001f, float.PositiveInfinity));
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public float Far
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        get => (float)Resource.Call(MethodName.GetFar);
							 | 
						|||
| 
								 | 
							
								        set => Resource.Call(MethodName.SetFar, Mathf.Clamp(value, 0.01f, float.PositiveInfinity));
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public static class MethodName
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        public const string GetKeepAspect = "get_keep_aspect";
							 | 
						|||
| 
								 | 
							
								        public const string SetKeepAspect = "set_keep_aspect";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public const string GetCullMask = "get_cull_mask";
							 | 
						|||
| 
								 | 
							
								        public const string SetCullMask = "set_cull_mask";
							 | 
						|||
| 
								 | 
							
								        public const string SetCullMaskValue = "set_cull_mask_value";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public const string GetHOffset = "get_h_offset";
							 | 
						|||
| 
								 | 
							
								        public const string SetHOffset = "set_h_offset";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public const string GetVOffset = "get_v_offset";
							 | 
						|||
| 
								 | 
							
								        public const string SetVOffset = "set_v_offset";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public const string GetProjection = "get_projection";
							 | 
						|||
| 
								 | 
							
								        public const string SetProjection = "set_projection";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public const string GetFov = "get_fov";
							 | 
						|||
| 
								 | 
							
								        public const string SetFov = "set_fov";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public const string GetSize = "get_size";
							 | 
						|||
| 
								 | 
							
								        public const string SetSize = "set_size";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public const string GetFrustumOffset = "get_frustum_offset";
							 | 
						|||
| 
								 | 
							
								        public const string SetFrustumOffset = "set_frustum_offset";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public const string GetNear = "get_near";
							 | 
						|||
| 
								 | 
							
								        public const string SetNear = "set_near";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public const string GetFar = "get_far";
							 | 
						|||
| 
								 | 
							
								        public const string SetFar = "set_far";
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |