Class AbstractCamera

    • Field Detail

      • logger

        protected static final Logger.Log logger
      • CAM_FAR

        public double CAM_FAR
        Camera far value
      • CAM_NEAR

        public double CAM_NEAR
        Camera near value
      • angleEdgeRad

        protected float angleEdgeRad
        Angle from the center to the corner of the screen in scene coordinates, in radians
      • ar

        protected float ar
        Aspect ratio
      • distance

        protected double distance
        Distance of camera to center
      • camera

        public com.badlogic.gdx.graphics.PerspectiveCamera camera
        The main camera
      • camLeft

        protected com.badlogic.gdx.graphics.PerspectiveCamera camLeft
        Stereoscopic mode cameras
      • camRight

        protected com.badlogic.gdx.graphics.PerspectiveCamera camRight
        Stereoscopic mode cameras
      • cameras

        protected com.badlogic.gdx.graphics.PerspectiveCamera[] cameras
        Vector with all perspective cameras
      • projection

        protected Matrix4d projection
      • fovFactor

        public float fovFactor
      • closestBody

        protected IFocus closestBody
        Closest non-star body to the camera
      • closestStar

        protected IStarFocus closestStar
        The closest star to the camera
    • Constructor Detail

      • AbstractCamera

        public AbstractCamera​(CameraManager parent)
    • Method Detail

      • updateAngleEdge

        public void updateAngleEdge​(int width,
                                    int height)
        Specified by:
        updateAngleEdge in interface ICamera
      • getAngleEdge

        public float getAngleEdge​(int width,
                                  int height,
                                  float angle)
      • getAngleEdge

        public float getAngleEdge()
        Description copied from interface: ICamera
        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.
        Specified by:
        getAngleEdge in interface ICamera
        Returns:
        The angle in radians.
      • render

        public void render​(int rw,
                           int rh)
        Specified by:
        render in interface ICamera
      • computeVisibleFovs

        protected boolean computeVisibleFovs​(CelestialBody cb,
                                             FovCamera fcamera)
        Returns true if a body with the given position is observed in any of the given directions using the given cone angle
        Parameters:
        cb - The body.
        fcamera - The FovCamera.
        Returns:
        True if the body is observed. False otherwise.
      • getDistance

        public double getDistance()
        Description copied from interface: ICamera
        Gets the distance from the camera to the centre of our reference frame (Sun)
        Specified by:
        getDistance in interface ICamera
        Returns:
        The distance
      • copyParamsFrom

        public void copyParamsFrom​(AbstractCamera other)
      • getCameraStereoLeft

        public com.badlogic.gdx.graphics.PerspectiveCamera getCameraStereoLeft()
        Specified by:
        getCameraStereoLeft in interface ICamera
      • getCameraStereoRight

        public com.badlogic.gdx.graphics.PerspectiveCamera getCameraStereoRight()
        Specified by:
        getCameraStereoRight in interface ICamera
      • setCameraStereoLeft

        public void setCameraStereoLeft​(com.badlogic.gdx.graphics.PerspectiveCamera cam)
        Specified by:
        setCameraStereoLeft in interface ICamera
      • setCameraStereoRight

        public void setCameraStereoRight​(com.badlogic.gdx.graphics.PerspectiveCamera cam)
        Specified by:
        setCameraStereoRight in interface ICamera
      • update

        public void update​(com.badlogic.gdx.graphics.PerspectiveCamera cam,
                           Vector3d position,
                           Vector3d direction,
                           Vector3d up)
      • checkClosestBody

        public void checkClosestBody​(IFocus cb)
        Description copied from interface: ICamera
        Called after updating the body's distance to the cam, it updates the closest body in the camera to figure out the camera near
        Specified by:
        checkClosestBody in interface ICamera
        Parameters:
        cb - The body to check
      • getClosestStar

        public IStarFocus getClosestStar()
        Description copied from interface: ICamera
        Gets the current closest star to this camera
        Specified by:
        getClosestStar in interface ICamera
        Returns:
        The closest star
      • checkClosestStar

        public void checkClosestStar​(IStarFocus star)
        Description copied from interface: ICamera
        Sets the current closest star to this camera. This will be only set if the given star is closer than the current.
        Specified by:
        checkClosestStar in interface ICamera
        Parameters:
        star - The candidate star
      • getClosest

        public IFocus getClosest()
        Description copied from interface: ICamera
        Returns the current closest object
        Specified by:
        getClosest in interface ICamera
      • setClosest

        public void setClosest​(IFocus focus)
        Description copied from interface: ICamera
        Sets the closest of all
        Specified by:
        setClosest in interface ICamera
        Parameters:
        focus - The new closest object
      • setFrustumPlanes

        protected void setFrustumPlanes​(com.badlogic.gdx.graphics.PerspectiveCamera cam)
      • getNear

        public double getNear()
        Specified by:
        getNear in interface ICamera
      • getFar

        public double getFar()
        Specified by:
        getFar in interface ICamera