OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
Camera Class Referencefinal

#include <camera.h>

Classes

struct  ListenerPos
 

Public Types

enum  Mode {
  Dialog , Normal , Inventory , Melee ,
  Ranged , Magic , Mobsi , Death ,
  Swim , Dive , Fall , Cutscene
}
 
enum  MarvinMode { M_Normal , M_Freeze , M_Free , M_Pinned }
 

Public Member Functions

 Camera ()
 
void reset ()
 
void reset (const Npc *pl)
 
void save (Serialize &s)
 
void load (Serialize &s, Npc *pl)
 
void changeZoom (int delta)
 
void setViewport (uint32_t w, uint32_t h)
 
void rotateLeft (uint64_t dt)
 
void rotateRight (uint64_t dt)
 
void moveForward (uint64_t dt)
 
void moveBack (uint64_t dt)
 
void moveLeft (uint64_t dt)
 
void moveRight (uint64_t dt)
 
void setMode (Mode m)
 
void setMarvinMode (MarvinMode m)
 
bool isMarvin () const
 
bool isFree () const
 
bool isInWater () const
 
bool isCutscene () const
 
void setToggleEnable (bool e)
 
bool isToggleEnabled () const
 
void setInertiaTargetEnable (bool e)
 
bool isInertiaTargetEnabled () const
 
void setFirstPerson (bool fp)
 
bool isFirstPerson () const
 
void setLookBack (bool lb)
 
void toggleDebug ()
 
void tick (uint64_t dt)
 
void debugDraw (DbgPainter &p)
 
Tempest::PointF spin () const
 
Tempest::PointF destSpin () const
 
Tempest::Vec3 destPosition () const
 
void setSpin (const Tempest::PointF &p)
 
void setDestSpin (const Tempest::PointF &p)
 
void setPosition (const Tempest::Vec3 &pos)
 
void setDestPosition (const Tempest::Vec3 &pos)
 
void setDialogDistance (float d)
 
void onRotateMouse (const Tempest::PointF &dpos)
 
Tempest::Matrix4x4 projective () const
 
Tempest::Matrix4x4 view () const
 
Tempest::Matrix4x4 viewProj () const
 
Tempest::Matrix4x4 viewShadow (const Tempest::Vec3 &ldir, size_t layer) const
 
Tempest::Matrix4x4 viewLwc () const
 
Tempest::Matrix4x4 viewProjLwc () const
 
Tempest::Matrix4x4 viewShadowLwc (const Tempest::Vec3 &ldir, size_t layer) const
 
Tempest::Matrix4x4 viewShadowVsm (const Tempest::Vec3 &ldir) const
 
Tempest::Matrix4x4 viewShadowVsmLwc (const Tempest::Vec3 &ldir) const
 
ListenerPos listenerPosition () const
 
Tempest::Vec3 originLwc () const
 
float zNear () const
 
float zFar () const
 

Static Public Attributes

static constexpr const float minShadowY = -0.025f
 

Detailed Description

Definition at line 14 of file camera.h.

Member Enumeration Documentation

◆ MarvinMode

Enumerator
M_Normal 
M_Freeze 
M_Free 
M_Pinned 

Definition at line 35 of file camera.h.

◆ Mode

Enumerator
Dialog 
Normal 
Inventory 
Melee 
Ranged 
Magic 
Mobsi 
Death 
Swim 
Dive 
Fall 
Cutscene 

Definition at line 20 of file camera.h.

Constructor & Destructor Documentation

◆ Camera()

Camera::Camera ( )

Definition at line 39 of file camera.cpp.

Member Function Documentation

◆ changeZoom()

void Camera::changeZoom ( int  delta)

Definition at line 72 of file camera.cpp.

◆ debugDraw()

void Camera::debugDraw ( DbgPainter p)

Definition at line 862 of file camera.cpp.

◆ destPosition()

Vec3 Camera::destPosition ( ) const

Definition at line 905 of file camera.cpp.

◆ destSpin()

PointF Camera::destSpin ( ) const

Definition at line 901 of file camera.cpp.

◆ isCutscene()

bool Camera::isCutscene ( ) const

Definition at line 198 of file camera.cpp.

◆ isFirstPerson()

bool Camera::isFirstPerson ( ) const

Definition at line 222 of file camera.cpp.

◆ isFree()

bool Camera::isFree ( ) const

Definition at line 190 of file camera.cpp.

◆ isInertiaTargetEnabled()

bool Camera::isInertiaTargetEnabled ( ) const

Definition at line 214 of file camera.cpp.

◆ isInWater()

bool Camera::isInWater ( ) const

Definition at line 194 of file camera.cpp.

◆ isMarvin()

bool Camera::isMarvin ( ) const

Definition at line 186 of file camera.cpp.

◆ isToggleEnabled()

bool Camera::isToggleEnabled ( ) const

Definition at line 206 of file camera.cpp.

◆ listenerPosition()

Camera::ListenerPos Camera::listenerPosition ( ) const

Definition at line 446 of file camera.cpp.

◆ load()

void Camera::load ( Serialize s,
Npc pl 
)

Definition at line 65 of file camera.cpp.

◆ moveBack()

void Camera::moveBack ( uint64_t  dt)

Definition at line 119 of file camera.cpp.

◆ moveForward()

void Camera::moveForward ( uint64_t  dt)

Definition at line 115 of file camera.cpp.

◆ moveLeft()

void Camera::moveLeft ( uint64_t  dt)

Definition at line 123 of file camera.cpp.

◆ moveRight()

void Camera::moveRight ( uint64_t  dt)

Definition at line 127 of file camera.cpp.

◆ onRotateMouse()

void Camera::onRotateMouse ( const Tempest::PointF &  dpos)

Definition at line 252 of file camera.cpp.

◆ originLwc()

Tempest::Vec3 Camera::originLwc ( ) const
inline

Definition at line 116 of file camera.h.

◆ projective()

Matrix4x4 Camera::projective ( ) const

Definition at line 259 of file camera.cpp.

◆ reset() [1/2]

void Camera::reset ( )

Definition at line 42 of file camera.cpp.

◆ reset() [2/2]

void Camera::reset ( const Npc pl)

Definition at line 46 of file camera.cpp.

◆ rotateLeft()

void Camera::rotateLeft ( uint64_t  dt)

Definition at line 107 of file camera.cpp.

◆ rotateRight()

void Camera::rotateRight ( uint64_t  dt)

Definition at line 111 of file camera.cpp.

◆ save()

void Camera::save ( Serialize s)

Definition at line 59 of file camera.cpp.

◆ setDestPosition()

void Camera::setDestPosition ( const Tempest::Vec3 &  pos)

Definition at line 551 of file camera.cpp.

◆ setDestSpin()

void Camera::setDestSpin ( const Tempest::PointF &  p)

Definition at line 242 of file camera.cpp.

◆ setDialogDistance()

void Camera::setDialogDistance ( float  d)

Definition at line 556 of file camera.cpp.

◆ setFirstPerson()

void Camera::setFirstPerson ( bool  fp)

Definition at line 218 of file camera.cpp.

◆ setInertiaTargetEnable()

void Camera::setInertiaTargetEnable ( bool  e)

Definition at line 210 of file camera.cpp.

◆ setLookBack()

void Camera::setLookBack ( bool  lb)

Definition at line 226 of file camera.cpp.

◆ setMarvinMode()

void Camera::setMarvinMode ( Camera::MarvinMode  nextMod)

Definition at line 152 of file camera.cpp.

◆ setMode()

void Camera::setMode ( Camera::Mode  m)

Definition at line 131 of file camera.cpp.

◆ setPosition()

void Camera::setPosition ( const Tempest::Vec3 &  pos)

Definition at line 545 of file camera.cpp.

◆ setSpin()

void Camera::setSpin ( const Tempest::PointF &  p)

Definition at line 237 of file camera.cpp.

◆ setToggleEnable()

void Camera::setToggleEnable ( bool  e)

Definition at line 202 of file camera.cpp.

◆ setViewport()

void Camera::setViewport ( uint32_t  w,
uint32_t  h 
)

Definition at line 81 of file camera.cpp.

◆ spin()

PointF Camera::spin ( ) const

Definition at line 897 of file camera.cpp.

◆ tick()

void Camera::tick ( uint64_t  dt)

Definition at line 633 of file camera.cpp.

◆ toggleDebug()

void Camera::toggleDebug ( )

Definition at line 233 of file camera.cpp.

◆ view()

Matrix4x4 Camera::view ( ) const

Definition at line 915 of file camera.cpp.

◆ viewLwc()

Matrix4x4 Camera::viewLwc ( ) const

Definition at line 920 of file camera.cpp.

◆ viewProj()

Matrix4x4 Camera::viewProj ( ) const

Definition at line 909 of file camera.cpp.

◆ viewProjLwc()

Matrix4x4 Camera::viewProjLwc ( ) const

Definition at line 925 of file camera.cpp.

◆ viewShadow()

Matrix4x4 Camera::viewShadow ( const Tempest::Vec3 &  ldir,
size_t  layer 
) const

Definition at line 321 of file camera.cpp.

◆ viewShadowLwc()

Matrix4x4 Camera::viewShadowLwc ( const Tempest::Vec3 &  ldir,
size_t  layer 
) const

Definition at line 266 of file camera.cpp.

◆ viewShadowVsm()

Matrix4x4 Camera::viewShadowVsm ( const Tempest::Vec3 &  ldir) const

Definition at line 274 of file camera.cpp.

◆ viewShadowVsmLwc()

Matrix4x4 Camera::viewShadowVsmLwc ( const Tempest::Vec3 &  ldir) const

Definition at line 278 of file camera.cpp.

◆ zFar()

float Camera::zFar ( ) const

Definition at line 102 of file camera.cpp.

◆ zNear()

float Camera::zNear ( ) const

Definition at line 97 of file camera.cpp.

Member Data Documentation

◆ minShadowY

constexpr const float Camera::minShadowY = -0.025f
staticconstexpr

Definition at line 18 of file camera.h.


The documentation for this class was generated from the following files: