Class FovCamera

All Implemented Interfaces:
IObserver, ICamera

public class FovCamera extends AbstractCamera implements IObserver
  • Field Details

    • MAX_OVERLAP_TIME

      public long MAX_OVERLAP_TIME
      time that has to pass with the current scan rate so that we scan to the edge of the current field of view.
    • MAX_OVERLAP_ANGLE

      public float MAX_OVERLAP_ANGLE
    • directions

      public Vector3d[] directions
    • interpolatedDirections

      public List<Vector3d[]> interpolatedDirections
    • currentTime

      public long currentTime
    • lastTime

      public long lastTime
    • dirIndex

      public int dirIndex
  • Constructor Details

    • FovCamera

      public FovCamera(com.badlogic.gdx.assets.AssetManager assetManager, CameraManager parent, com.badlogic.gdx.graphics.g2d.SpriteBatch spriteBatch)
  • Method Details

    • initialize

      public void initialize(com.badlogic.gdx.graphics.g2d.SpriteBatch spriteBatch)
    • update

      public void update(double dt, ITimeFrameProvider time)
      Description copied from interface: ICamera
      Updates the camera.
      Specified by:
      update in interface ICamera
      Parameters:
      dt - The time since the las frame in seconds.
      time - The frame time provider (simulation time).
    • updateDirections

      public void updateDirections(ITimeFrameProvider time)
      Updates both FOVs' directions applying the right transformation.
      Parameters:
      time - The time frame provider.
    • getDirections

      public Vector3d[] getDirections(Date d)
    • getFrontCameras

      public com.badlogic.gdx.graphics.PerspectiveCamera[] getFrontCameras()
      Specified by:
      getFrontCameras in interface ICamera
    • getCamera

      public com.badlogic.gdx.graphics.PerspectiveCamera getCamera()
      Description copied from interface: ICamera
      Returns the perspective camera.
      Specified by:
      getCamera in interface ICamera
      Returns:
      The perspective camera.
    • setCamera

      public void setCamera(com.badlogic.gdx.graphics.PerspectiveCamera perspectiveCamera)
      Description copied from interface: ICamera
      Sets the active camera
      Specified by:
      setCamera in interface ICamera
      Parameters:
      perspectiveCamera - The perspective camera.
    • getFovFactor

      public float getFovFactor()
      Specified by:
      getFovFactor in interface ICamera
      Overrides:
      getFovFactor in class AbstractCamera
    • getDirection

      public Vector3d getDirection()
      Specified by:
      getDirection in interface ICamera
    • setDirection

      public void setDirection(Vector3d dir)
      Specified by:
      setDirection in interface ICamera
    • getUp

      public Vector3d getUp()
      Specified by:
      getUp in interface ICamera
    • getDirections

      public final Vector3d[] getDirections()
      Specified by:
      getDirections in interface ICamera
    • notify

      public void notify(Event event, Object source, Object... data)
      Description copied from interface: IObserver
      Event notification call.
      Specified by:
      notify in interface IObserver
      Parameters:
      event - The event type.
      source - The source object, if any.
      data - The data associated with this event.
    • updateMode

      public void updateMode(ICamera previousCam, CameraManager.CameraMode previousMode, CameraManager.CameraMode newMode, boolean centerFocus, boolean postEvent)
      Specified by:
      updateMode in interface ICamera
    • getNCameras

      public int getNCameras()
      Specified by:
      getNCameras in interface ICamera
    • getMode

      public CameraManager.CameraMode getMode()
      Specified by:
      getMode in interface ICamera
    • updateAngleEdge

      public void updateAngleEdge(int width, int height)
      We have fixed field of view angles and thus fixed aspect ratio.
      Specified by:
      updateAngleEdge in interface ICamera
      Overrides:
      updateAngleEdge in class AbstractCamera
    • render

      public void render(int rw, int rh)
      Specified by:
      render in interface ICamera
      Overrides:
      render in class AbstractCamera
    • getSpeed

      public double getSpeed()
      Description copied from interface: ICamera
      Gets the current velocity of the camera in km/h.
      Specified by:
      getSpeed in interface ICamera
      Returns:
      The velocity in km/h.
    • isFocus

      public boolean isFocus(com.badlogic.ashley.core.Entity entity)
      Description copied from interface: ICamera
      Checks if the given entity is the current focus.
      Specified by:
      isFocus in interface ICamera
      Parameters:
      entity - The entity.
      Returns:
      Whether the entity is focus.
    • getFocus

      public IFocus getFocus()
      Description copied from interface: ICamera
      Returns the focus if any.
      Specified by:
      getFocus in interface ICamera
      Returns:
      The focus object if it is in focus mode. Null otherwise.
    • hasFocus

      public boolean hasFocus()
      Description copied from interface: ICamera
      Checks whether the current camera has a focus set.
      Specified by:
      hasFocus in interface ICamera
      Returns:
      True if the camera has a focus.
    • isVisible

      public boolean isVisible(com.badlogic.ashley.core.Entity cb)
      Specified by:
      isVisible in interface ICamera
      Overrides:
      isVisible in class AbstractCamera
    • resize

      public void resize(int width, int height)
      Specified by:
      resize in interface ICamera
    • getFrustum2

      public FrustumDouble getFrustum2()
    • speedScaling

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