Package gaiasky.scenegraph.camera
Interface ICamera
-
- All Known Implementing Classes:
AbstractCamera
,CameraManager
,FovCamera
,NaturalCamera
,RelativisticCamera
,SpacecraftCamera
public interface ICamera
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
checkClosestBody(IFocus focus)
Called after updating the body's distance to the cam, it updates the closest body in the camera to figure out the camera nearvoid
checkClosestParticle(IFocus particle)
Sets the current closest particle to this camera.float
getAngleEdge()
Gets the angle of the edge of the screen, diagonally.com.badlogic.gdx.graphics.PerspectiveCamera
getCamera()
Returns the perspective camera.com.badlogic.gdx.graphics.PerspectiveCamera
getCameraStereoLeft()
com.badlogic.gdx.graphics.PerspectiveCamera
getCameraStereoRight()
IFocus
getClosest()
Returns the current closest objectIFocus
getClosestBody()
IFocus
getClosestParticle()
Gets the current closest particle to this cameraICamera
getCurrent()
Vector3d
getDirection()
Vector3d[]
getDirections()
double
getDistance()
Gets the distance from the camera to the centre of our reference frame (Sun)double
getFar()
IFocus
getFocus()
Returns the foucs if anyfloat
getFovFactor()
com.badlogic.gdx.graphics.PerspectiveCamera[]
getFrontCameras()
Vector3d
getInversePos()
CameraManager
getManager()
CameraManager.CameraMode
getMode()
int
getNCameras()
double
getNear()
Vector3d
getPos()
Vector3d
getPreviousPos()
com.badlogic.gdx.math.Matrix4
getPreviousProjView()
com.badlogic.gdx.math.Matrix4
getProjView()
IFocus
getSecondClosestBody()
Vector3d
getShift()
double
getSpeed()
Gets the current velocity of the camera in km/h.Vector3d
getUp()
Vector3d
getVelocity()
boolean
isFocus(IFocus cb)
Checks if this body is the current focusboolean
isVisible(ITimeFrameProvider time, double viewAngle, Vector3d pos, double distToCamera)
boolean
isVisible(ITimeFrameProvider time, CelestialBody cb)
boolean
isVisible(ITimeFrameProvider time, Vector3d position)
void
render(int rw, int rh)
void
resize(int width, int height)
void
setCamera(com.badlogic.gdx.graphics.PerspectiveCamera cam)
Sets the active cameravoid
setCameraStereoLeft(com.badlogic.gdx.graphics.PerspectiveCamera cam)
void
setCameraStereoRight(com.badlogic.gdx.graphics.PerspectiveCamera cam)
void
setClosest(IFocus focus)
Sets the closest of allvoid
setDirection(Vector3d dir)
void
setPos(Vector3d pos)
void
setPreviousPos(Vector3d pos)
void
setPreviousProjView(com.badlogic.gdx.math.Matrix4 mat)
void
setShift(Vector3d shift)
double
speedScaling()
void
update(double dt, ITimeFrameProvider time)
Updates the camera.void
updateAngleEdge(int width, int height)
void
updateFrustumPlanes()
void
updateMode(CameraManager.CameraMode mode, boolean centerFocus, boolean postEvent)
-
-
-
Method Detail
-
getCamera
com.badlogic.gdx.graphics.PerspectiveCamera getCamera()
Returns the perspective camera.- Returns:
- The perspective camera.
-
setCamera
void setCamera(com.badlogic.gdx.graphics.PerspectiveCamera cam)
Sets the active camera- Parameters:
cam
-
-
getCameraStereoLeft
com.badlogic.gdx.graphics.PerspectiveCamera getCameraStereoLeft()
-
getCameraStereoRight
com.badlogic.gdx.graphics.PerspectiveCamera getCameraStereoRight()
-
setCameraStereoLeft
void setCameraStereoLeft(com.badlogic.gdx.graphics.PerspectiveCamera cam)
-
setCameraStereoRight
void setCameraStereoRight(com.badlogic.gdx.graphics.PerspectiveCamera cam)
-
getFrontCameras
com.badlogic.gdx.graphics.PerspectiveCamera[] getFrontCameras()
-
getCurrent
ICamera getCurrent()
-
getFovFactor
float getFovFactor()
-
getPos
Vector3d getPos()
-
setPos
void setPos(Vector3d pos)
-
getPreviousPos
Vector3d getPreviousPos()
-
setPreviousPos
void setPreviousPos(Vector3d pos)
-
setDirection
void setDirection(Vector3d dir)
-
getInversePos
Vector3d getInversePos()
-
getDirection
Vector3d getDirection()
-
getVelocity
Vector3d getVelocity()
-
getUp
Vector3d getUp()
-
getDirections
Vector3d[] getDirections()
-
getNCameras
int getNCameras()
-
speedScaling
double speedScaling()
-
setShift
void setShift(Vector3d shift)
-
getShift
Vector3d getShift()
-
getProjView
com.badlogic.gdx.math.Matrix4 getProjView()
-
getPreviousProjView
com.badlogic.gdx.math.Matrix4 getPreviousProjView()
-
setPreviousProjView
void setPreviousProjView(com.badlogic.gdx.math.Matrix4 mat)
-
update
void update(double dt, ITimeFrameProvider time)
Updates the camera.- Parameters:
dt
- The time since the las frame in seconds.time
- The frame time provider (simulation time).
-
updateMode
void updateMode(CameraManager.CameraMode mode, boolean centerFocus, boolean postEvent)
-
getMode
CameraManager.CameraMode getMode()
-
updateAngleEdge
void updateAngleEdge(int width, int height)
-
getAngleEdge
float getAngleEdge()
Gets the angle of the edge of the screen, diagonally. It assumes the vertical angle is the field of view and corrects the horizontal using the aspect ratio. It depends on the viewport size and the field of view itself.- Returns:
- The angle in radians.
-
getManager
CameraManager getManager()
-
render
void render(int rw, int rh)
-
getSpeed
double getSpeed()
Gets the current velocity of the camera in km/h.- Returns:
- The velocity in km/h.
-
getDistance
double getDistance()
Gets the distance from the camera to the centre of our reference frame (Sun)- Returns:
- The distance
-
getFocus
IFocus getFocus()
Returns the foucs if any- Returns:
- The foucs object if it is in focus mode. Null otherwise
-
isFocus
boolean isFocus(IFocus cb)
Checks if this body is the current focus- Parameters:
cb
- The body- Returns:
- Whether the body is focus
-
checkClosestBody
void checkClosestBody(IFocus focus)
Called after updating the body's distance to the cam, it updates the closest body in the camera to figure out the camera near- Parameters:
focus
- The body to check
-
getClosestBody
IFocus getClosestBody()
-
getSecondClosestBody
IFocus getSecondClosestBody()
-
isVisible
boolean isVisible(ITimeFrameProvider time, CelestialBody cb)
-
isVisible
boolean isVisible(ITimeFrameProvider time, Vector3d position)
-
isVisible
boolean isVisible(ITimeFrameProvider time, double viewAngle, Vector3d pos, double distToCamera)
-
resize
void resize(int width, int height)
-
getClosestParticle
IFocus getClosestParticle()
Gets the current closest particle to this camera- Returns:
- The closest particle
-
checkClosestParticle
void checkClosestParticle(IFocus particle)
Sets the current closest particle to this camera. This will be only set if the given particle is closer than the current.- Parameters:
particle
- The candidate particle
-
getClosest
IFocus getClosest()
Returns the current closest object
-
setClosest
void setClosest(IFocus focus)
Sets the closest of all- Parameters:
focus
- The new closest object
-
updateFrustumPlanes
void updateFrustumPlanes()
-
getNear
double getNear()
-
getFar
double getFar()
-
-