Touch Camera Pro
Public Member Functions | Protected Member Functions | List of all members
Exoa.Cameras.CameraPerspective Class Reference
Inheritance diagram for Exoa.Cameras.CameraPerspective:
Exoa.Cameras.CameraPerspBase Exoa.Cameras.ITouchPerspCamera Exoa.Cameras.CameraBase Exoa.Cameras.ITouchPerspCamera Exoa.Cameras.ITouchCamera Exoa.Cameras.ITouchCamera Exoa.Cameras.CameraFree

Public Member Functions

override void SetResetValues (Vector3 offset, Quaternion rotation, float distance)
 Set the initial values for the reset function More...
 
override void ResetCamera ()
 Reset the camera to initial values More...
 
- Public Member Functions inherited from Exoa.Cameras.CameraPerspBase
override Matrix4x4 GetMatrix ()
 Return the matrix of the camera transform, in order to blend it when switching modes More...
 
void SetPositionByDistance (float v)
 Converts a distance to a camera position More...
 
override void SetResetValues (Vector3 offset, Quaternion rotation, float distanceOrSize)
 Set the initial values for the reset function More...
 
override void FocusCameraOnGameObject (GameObject go, bool allowYOffsetFromGround=false)
 Focus the camera on a GameObject (distance animation) More...
 
override void FollowGameObject (GameObject go, bool doFocus, bool allowYOffsetFromGround=false)
 Follow a game object More...
 
- Public Member Functions inherited from Exoa.Cameras.CameraBase
virtual Matrix4x4 GetMatrix ()
 Return the matrix of the camera transform, in order to blend it when switching modes More...
 
void SetGroundHeightAnimated (float newHeight, bool animate, float duration)
 This let you change the ground height at any moment in order to change at which y position the fingers will be intercepted. This version lets you animate it More...
 
void SetGroundHeight (float y)
 This let you change the ground height at any moment in order to change at which y position the fingers will be intercepted More...
 
void RotateFromVector (Vector2 delta)
 Rotate the camera manually More...
 
virtual void ResetCamera ()
 Reset the camera to initial values More...
 
virtual void SetResetValues (Vector3 offset, Quaternion rotation, float distanceOrSize)
 Set the initial values for the reset function More...
 
void MoveCameraToInstant (Vector3 targetPosition)
 Moves the Camera offset position on ground to a new position, in 1 frame More...
 
void MoveCameraToInstant (Vector3 targetPosition, float targetDistanceOrSize)
 Moves the Camera offset position on ground and distance from it, in 1 frame More...
 
void MoveCameraToInstant (Vector3 targetPosition, Vector2 targetRotation)
 Moves the Camera offset position on ground and rotation, in 1 frame More...
 
void MoveCameraToInstant (Vector3 targetPosition, Quaternion targetRotation)
 Moves the Camera offset position on ground and rotation, in 1 frame More...
 
void MoveCameraToInstant (Vector3 targetPosition, float targetDistanceOrSize, Vector2 targetRotation)
 Moves the Camera offset position on ground, distance from it and rotation, in 1 frame More...
 
void MoveCameraToInstant (Vector3 targetPosition, float targetDistanceOrSize, Quaternion targetRotation)
 Moves the Camera offset position on ground, distance from it and rotation, in 1 frame More...
 
void MoveCameraTo (Vector3 targetPosition)
 Moves the Camera offset position on ground, animated More...
 
void MoveCameraTo (Vector3 targetPosition, float targetDistanceOrSize)
 Moves the Camera offset position on ground, distance from it, animated More...
 
void MoveCameraTo (Vector3 targetPosition, Vector2 targetRotation)
 Moves the Camera offset position on ground, and rotation, animated More...
 
void MoveCameraTo (Vector3 targetPosition, Quaternion targetRotation)
 Moves the Camera offset position on ground, and rotation, animated More...
 
void MoveCameraTo (Vector3 targetPosition, float targetDistanceOrSize, Vector2 targetRotation)
 Moves the Camera offset position on ground, distance from it and rotation, animated More...
 
void MoveCameraTo (Vector3 targetPosition, float targetDistanceOrSize, Quaternion targetRotation)
 Moves the Camera offset position on ground, distance from it and rotation, animated More...
 
void FocusCamera (Vector3 targetPosition, bool instant=false)
 Alias of MoveCameraTo More...
 
void FocusCamera (Vector3 targetPosition, float targetDistanceOrSize, bool instant=false)
 Alias of MoveCameraTo More...
 
void FocusCamera (Vector3 targetPosition, Vector2 targetRotation, bool instant=false)
 Alias of MoveCameraTo More...
 
void FocusCamera (Vector3 targetPosition, Quaternion targetRotation, bool instant=false)
 Alias of MoveCameraTo More...
 
void FocusCamera (Vector3 targetPosition, float targetDistanceOrSize, Vector2 targetRotation, bool instant=false)
 Alias of MoveCameraTo More...
 
void FocusCamera (Vector3 targetPosition, float targetDistanceOrSize, Quaternion targetRotation, bool instant=false)
 Alias of MoveCameraTo More...
 
virtual void FocusCameraOnGameObject (GameObject go, bool allowYOffsetFromGround=false)
 Focus the camera on a GameObject (distance animation) More...
 
virtual void FollowGameObject (GameObject go, bool doFocus, bool allowYOffsetFromGround=false)
 Follow a game object More...
 
void StopFollow ()
 Stop follow/focus/moveto animations
 
void SetPositionByDistance (float distance)
 Converts a distance to a camera position More...
 
- Public Member Functions inherited from Exoa.Cameras.ITouchCamera
Matrix4x4 GetMatrix ()
 Return the matrix of the camera transform, in order to blend it when switching modes More...
 
void SetGroundHeightAnimated (float newHeight, bool animate, float duration)
 This let you change the ground height at any moment in order to change at which y position the fingers will be intercepted. This version lets you animate it More...
 
void SetGroundHeight (float y)
 This let you change the ground height at any moment in order to change at which y position the fingers will be intercepted More...
 
void RotateFromVector (Vector2 delta)
 Rotate the camera manually More...
 
void ResetCamera ()
 Reset the camera to initial values More...
 
void SetResetValues (Vector3 offset, Quaternion rotation, float distanceOrSize)
 Set the initial values for the reset function More...
 
void MoveCameraToInstant (Vector3 targetPosition)
 Moves the Camera offset position on ground to a new position, in 1 frame More...
 
void MoveCameraToInstant (Vector3 targetPosition, float targetDistance)
 Moves the Camera offset position on ground and distance from it, in 1 frame More...
 
void MoveCameraToInstant (Vector3 targetPosition, Quaternion targetRotation)
 Moves the Camera offset position on ground and rotation, in 1 frame More...
 
void MoveCameraToInstant (Vector3 targetPosition, Vector2 targetRotation)
 Moves the Camera offset position on ground and rotation, in 1 frame More...
 
void MoveCameraToInstant (Vector3 targetPosition, float targetDistance, Vector2 targetRotation)
 Moves the Camera offset position on ground, distance from it and rotation, in 1 frame More...
 
void MoveCameraToInstant (Vector3 targetPosition, float targetDistance, Quaternion targetRotation)
 Moves the Camera offset position on ground, distance from it and rotation, in 1 frame More...
 
void MoveCameraTo (Vector3 targetPosition)
 Moves the Camera offset position on ground, animated More...
 
void MoveCameraTo (Vector3 targetPosition, float targetDistance)
 Moves the Camera offset position on ground, distance from it, animated More...
 
void MoveCameraTo (Vector3 targetPosition, Quaternion targetRotation)
 Moves the Camera offset position on ground, and rotation, animated More...
 
void MoveCameraTo (Vector3 targetPosition, Vector2 targetRotation)
 Moves the Camera offset position on ground, and rotation, animated More...
 
void MoveCameraTo (Vector3 targetPosition, float targetDistance, Vector2 targetRotation)
 Moves the Camera offset position on ground, distance from it and rotation, animated More...
 
void MoveCameraTo (Vector3 targetPosition, float targetDistance, Quaternion targetRotation)
 Moves the Camera offset position on ground, distance from it and rotation, animated More...
 
void FocusCamera (Vector3 targetPosition, bool instant=false)
 Alias of MoveCameraTo More...
 
void FocusCamera (Vector3 targetPosition, float targetDistance, bool instant=false)
 Alias of MoveCameraTo More...
 
void FocusCamera (Vector3 targetPosition, Quaternion targetRotation, bool instant=false)
 Alias of MoveCameraTo More...
 
void FocusCamera (Vector3 targetPosition, Vector2 targetRotation, bool instant=false)
 Alias of MoveCameraTo More...
 
void FocusCamera (Vector3 targetPosition, float targetDistance, Vector2 targetRotation, bool instant=false)
 Alias of MoveCameraTo More...
 
void FocusCamera (Vector3 targetPosition, float targetDistance, Quaternion targetRotation, bool instant=false)
 Alias of MoveCameraTo More...
 
void FocusCameraOnGameObject (GameObject go, bool allowYOffsetFromGround=false)
 Focus the camera on a GameObject (distance animation) More...
 
void FollowGameObject (GameObject go, bool doFocus, bool allowYOffsetFromGround=false)
 Follow a game object More...
 
void StopFollow ()
 Stop follow/focus/moveto animations More...
 

Protected Member Functions

override void Init ()
 Init some camera parameters More...
 
override Quaternion GetInitialRotation ()
 Gives the initial rotation of the camera to be able to reset it later More...
 
override void OnBeforeSwitchPerspective (bool orthoMode)
 Called just before the perspective switch happens More...
 
- Protected Member Functions inherited from Exoa.Cameras.CameraPerspBase
override void Init ()
 Init some camera parameters More...
 
override void FocusCamera (Vector3 targetPosition, bool changeDistance, float targetDistanceOrSize, bool changeRotation, Quaternion targetRotation, bool allowYOffsetFromGround=false, bool instant=false)
 Setup the camera move animation More...
 
void HandleFocusAndFollow ()
 Handle the camera focus/follow/moveto
 
- Protected Member Functions inherited from Exoa.Cameras.CameraBase
virtual void OnDestroy ()
 Destroys the component
 
virtual void Start ()
 Starts the camera script
 
virtual void Init ()
 Init some camera parameters More...
 
virtual void CreateConverter ()
 Create the depth converter between fingers on screen and the 3D World By default we use the scene y plan, to convert our finger's position More...
 
virtual void LateUpdate ()
 Some elements require a first Update call, so we need to know if it has been done
 
virtual void ApplyToCamera ()
 In case the camera is standalone (no CameraModeSwitcher) then this is apply the position and rotation to the camera More...
 
bool IsInputMatching (InputMapScrollWheel action)
 Converts user inputs to actions More...
 
bool IsInputMatching (InputMapFingerPinch action)
 Converts user inputs to actions More...
 
bool IsInputMatching (InputMapFingerDrag action)
 Converts user inputs to actions More...
 
bool IsUsingCameraEdgeBoundaries ()
 Is the camera using camera edge boundaries instead of center mode More...
 
Vector3 ClampCameraCorners (Vector3 finalPosition, out bool clampApplied, bool bottomEdges=true, bool topEdges=true)
 Method used to clamp the camera inside the boundaries collider More...
 
virtual Vector3 ClampInCameraBoundaries (Vector3 targetPosition)
 Clamp any given point inside the boundaries collider on XZ plan. Y will be unchanged More...
 
virtual void OnBeforeSwitchPerspective (bool orthoMode)
 Called just before the perspective switch happens More...
 
virtual void OnAfterSwitchPerspective (bool orthoMode)
 Called just after the perspective switch happened More...
 
void OnRequestButtonAction (CameraEvents.Action action, bool active)
 Catch event actions and interpret them More...
 
virtual Vector3 CalculateOffset (Vector3 pos, Quaternion rot)
 Calculate the offset position on the ground, given the camera's position and rotation More...
 
virtual Vector3 CalculateOffset (Vector3 pos, Quaternion rot, float distance, float groundHeight)
 Calculate the offset position on the ground, given the camera's position, rotation, distance from ground and ground height More...
 
virtual Vector3 CalculatePosition (Vector3 center, Quaternion rot, float distance)
 Calculates the camera transform's position giving the offset, rotation and distance More...
 
float CalculateDistance (Vector3 pos, Quaternion rot)
 Calculates the camera's distance from the ground, giving his transform position and rotation More...
 
float CalculateClampedDistance (Vector3 camPos, Vector3 worldPoint, Vector2 minMaxDistance, float multiplier=1)
 Calculates a clamped distance after a zoom More...
 
float CalculateClampedDistance (Vector3 camPos, Vector3 worldPoint, float minMaxDistance, float multiplier=1)
 Calculates a clamped distance after a zoom More...
 
float CalculateClampedDistance (float distance, Vector2 minMaxDistance)
 Calculates a clamped distance More...
 
float CalculateClampedDistance (float distance, float minMaxDistance)
 Calculates a clamped distance after a zoom More...
 
virtual Quaternion GetInitialRotation ()
 Gives the initial rotation of the camera to be able to reset it later More...
 
virtual Vector2 GetInitialRotationVec ()
 Gives the initial rotation as pitch/yaw vector of the camera to be able to reset it later More...
 
float GetRotationSensitivity ()
 Calculate the sensivity of the rotation from user's input More...
 
virtual void ClampRotation ()
 Clamp the rotation if needed
 
float ModularClamp (float val, float min, float max, float rangemin=-180f, float rangemax=180f)
 Useful to clamp a rotation between two angles More...
 
float NormalizeAngle (float a)
 Normalize an angle between -180 and 180 More...
 
virtual Quaternion GetRotationFromPitchYaw ()
 Converts pitch/yaw rotations to a quaternion More...
 
virtual Quaternion GetRotationFromPitchYaw (float pitch, float yaw)
 Converts pitch/yaw rotations to a quaternion More...
 
virtual Quaternion GetRotationFromPitchYaw (Vector2 pitchYawVec)
 Converts pitch/yaw rotations to a quaternion More...
 
virtual Vector2 GetRotationToPitchYaw ()
 Converts the quaternion rotation to pitch/yaw values More...
 
virtual Vector2 GetRotationToPitchYaw (Quaternion rot)
 Converts the quaternion rotation to pitch/yaw values More...
 
virtual Vector3 GetRotateAroundVector ()
 indicates the vector for AngleAxis, to rotate around More...
 
virtual void FocusCamera (Vector3 targetPosition, bool changeDistance, float targetDistanceOrSize, bool changeRotation, Quaternion targetRotation, bool allowYOffsetFromGround=false, bool instant=false)
 Setup the camera move animation More...
 
virtual void CalculateInertia ()
 Calculate the inertia of the camera base on previous frames
 
virtual void ApplyInertia ()
 Apply the inertia animation
 
void DebugInputs ()
 Debug feature if DEBUG_TCP compilation variable is added
 
void Log (string msg)
 

Additional Inherited Members

- Public Types inherited from Exoa.Cameras.CameraBase
enum  InputMapFingerDrag { Translate , RotateAround , RotateHead , None }
 
enum  InputMapFingerPinch { ZoomAndRotate , RotateOnly , ZoomOnly , None }
 
enum  InputMapScrollWheel { ZoomUnderMouse , ZoomInCenter , None }
 
- Public Attributes inherited from Exoa.Cameras.CameraPerspBase
Vector2 minMaxDistance = new Vector2(3, 30)
 
float initDistance = 10f
 
float zoomSmoothness = 0f
 
float fov = 55.0f
 
float followDistanceMultiplier = 1f
 
- Public Attributes inherited from Exoa.Cameras.CameraBase
bool defaultMode
 
InputMapFingerDrag rightClickDrag = InputMapFingerDrag.Translate
 
InputMapFingerDrag middleClickDrag = InputMapFingerDrag.Translate
 
InputMapFingerDrag oneFingerDrag = InputMapFingerDrag.RotateAround
 
InputMapFingerDrag twoFingerDrag = InputMapFingerDrag.Translate
 
InputMapFingerPinch twoFingerPinch = InputMapFingerPinch.ZoomAndRotate
 
InputMapScrollWheel scrollWheel = InputMapScrollWheel.ZoomUnderMouse
 
float groundHeight = 0f
 
Springs groundHeightAnim
 
bool allowPitchRotation = true
 
float PitchSensitivity = 0.25f
 
bool PitchClamp = true
 
Vector2 PitchMinMax = new Vector2(5.0f, 90.0f)
 
bool allowYawRotation = true
 
float YawSensitivity = 0.25f
 
bool YawClamp
 
Vector2 YawMinMax = new Vector2(5.0f, 90.0f)
 
float maxTranslationSpeed = 3f
 
float focusRadiusMultiplier = 1f
 
Springs followMove
 
FloatSpring followMoveDistanceOrSize
 
Vector3Spring followMoveOffset
 
QuaternionSpring followMoveRotation
 
float followRadiusMultiplier = 1f
 
float followLerp = .1f
 
bool enableTranslationInertia
 
Move positionInertiaMove
 
Acceleration positionAcceleration
 
float positionInertiaForce = 1f
 
bool enableRotationInertia
 
Move rotationInertiaMove
 
Acceleration rotationAcceleration
 
float rotationInertiaForce = 1f
 
- Protected Attributes inherited from Exoa.Cameras.CameraBase
bool standalone
 
ScreenDepth HeightScreenDepth
 
Camera cam
 
CameraBoundaries camBounds
 
Vector3 initOffset
 
Quaternion initRotation
 
Vector3 finalOffset
 
Vector3 finalPosition
 
Quaternion finalRotation
 
float finalDistance
 
bool disableMoves
 
float currentPitch
 
float currentYaw
 
float deltaYaw
 
float deltaPitch
 
Quaternion twistRot
 
Vector3 worldPointCameraCenter
 
Vector3 worldPointFingersCenter
 
Vector3 worldPointFingersDelta
 
Vector2 initialRotation = new Vector2(35, 0)
 
GameObject focusTargetGo
 
Vector3 focusTargetPosition
 
float focusTargetDistanceOrSize
 
Quaternion focusTargetRotation
 
bool enableFocusing
 
bool enableRotationChange
 
bool enableFollowGameObject
 
bool isFocusingOrFollowing
 
bool allowYOffsetFromGround
 
bool prevFrameInterction
 
float lastPrint
 
- Properties inherited from Exoa.Cameras.CameraPerspBase
float Fov [get]
 Get the Field of view of the camera More...
 
- Properties inherited from Exoa.Cameras.CameraBase
Quaternion FinalRotation [get]
 The final quaternion rotation of the camera transform
 
Vector3 FinalPosition [get]
 The final position of the camera transform
 
Vector3 FinalOffset [get, set]
 The final offset of the camera's center point on ground This is not the camera position. The center of the camera is projected on the ground, and this is it's position.
 
float FinalDistance [get]
 This is the final distance between the camera's center point on the ground, and the camera transform's position
 
bool DisableMoves [get, set]
 This blocks the user input moves, in order to move/animate the camera by script
 
Vector2 PitchAndYaw [get]
 This returns the current Pitch and Yaw rotations of the camera
 
- Properties inherited from Exoa.Cameras.ITouchPerspCamera
float Fov [get]
 Get the Field of view of the camera More...
 
- Properties inherited from Exoa.Cameras.ITouchCamera
bool DisableMoves [get, set]
 This blocks the user input moves, in order to animate the camera by script More...
 
Quaternion FinalRotation [get]
 The final quaternion rotation of the camera transform More...
 
Vector3 FinalPosition [get]
 The final position of the camera transform More...
 
Vector3 FinalOffset [get]
 The final offset of the camera's center point on ground This is not the camera position. The center of the camera is projected on the ground, and this is it's position. More...
 
float FinalDistance [get]
 This is the final distance between the camera's center point on the ground, and the camera transform's position More...
 
Vector2 PitchAndYaw [get]
 This returns the current Pitch and Yaw rotations of the camera More...
 

Member Function Documentation

◆ GetInitialRotation()

override Quaternion Exoa.Cameras.CameraPerspective.GetInitialRotation ( )
inlineprotectedvirtual

Gives the initial rotation of the camera to be able to reset it later

Returns

Reimplemented from Exoa.Cameras.CameraBase.

◆ Init()

override void Exoa.Cameras.CameraPerspective.Init ( )
inlineprotectedvirtual

Init some camera parameters

Reimplemented from Exoa.Cameras.CameraPerspBase.

◆ OnBeforeSwitchPerspective()

override void Exoa.Cameras.CameraPerspective.OnBeforeSwitchPerspective ( bool  orthoMode)
inlineprotectedvirtual

Called just before the perspective switch happens

Parameters
orthoMode

Reimplemented from Exoa.Cameras.CameraBase.

◆ ResetCamera()

override void Exoa.Cameras.CameraPerspective.ResetCamera ( )
inlinevirtual

Reset the camera to initial values

Reimplemented from Exoa.Cameras.CameraBase.

◆ SetResetValues()

override void Exoa.Cameras.CameraPerspective.SetResetValues ( Vector3  offset,
Quaternion  rotation,
float  distance 
)
inlinevirtual

Set the initial values for the reset function

Parameters
offset
rotation
distanceOrSize

Reimplemented from Exoa.Cameras.CameraPerspBase.


The documentation for this class was generated from the following file:
Copyright Exoa