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"; | |||
|  |     } | |||
|  | } |