OpenSiv3D  v0.6.5
C++20 framework for creative coding
s3d::BasicCamera3D Class Reference

3D カメラの基本クラス More...

#include <BasicCamera3D.hpp>

Inherited by s3d::DebugCamera3D.

Public Member Functions

 BasicCamera3D ()=default
 
 BasicCamera3D (const BasicCamera3D &)=default
 
 BasicCamera3D (const Size &sceneSize, double verticalFOV=DefaultVerticalFOV, const Vec3 &eyePosition=Vec3{ 0, 4, -4 }, const Vec3 &focusPosition=Vec3{ 0, 0, 0 }, const Vec3 &upDirection=Vec3{ 0, 1, 0 }, double nearClip=DefaultNearClip) noexcept
 3D カメラを作成します。 More...
 
virtual ~BasicCamera3D ()=default
 
virtual Mat4x4 getMat4x4 () const
 
void setSceneSize (const Size &sceneSize) noexcept
 
void setProjection (const Size &sceneSize, double verticalFOV, double nearClip=DefaultNearClip) noexcept
 
void setView (const Vec3 &eyePosition, const Vec3 &focusPosition, const Vec3 &upDirection=Vec3{ 0, 1, 0 }) noexcept
 
void setUpDirection (const Vec3 &upDirection) noexcept
 
const SizegetSceneSize () const noexcept
 
double getVerticalFOV () const noexcept
 
double getNearClip () const noexcept
 
const Vec3getEyePosition () const noexcept
 
const Vec3getFocusPosition () const noexcept
 
const Vec3getUpDirection () const noexcept
 
Vec3 getLookAtVector () const noexcept
 
Quaternion getLookAtOrientation () const noexcept
 
const Mat4x4 &SIV3D_VECTOR_CALL getProj () const noexcept
 
const Mat4x4 &SIV3D_VECTOR_CALL getView () const noexcept
 
const Mat4x4 &SIV3D_VECTOR_CALL getInvView () const noexcept
 
const Mat4x4 &SIV3D_VECTOR_CALL getViewProj () const noexcept
 
const Mat4x4 &SIV3D_VECTOR_CALL getInvViewProj () const noexcept
 
Mat4x4 SIV3D_VECTOR_CALL billboard (Float3 pos) const noexcept
 
SIV3D_CONCEPT_ARITHMETIC Mat4x4 SIV3D_VECTOR_CALL billboard (Float3 pos, Arithmetic scale) const noexcept
 
Mat4x4 SIV3D_VECTOR_CALL billboard (Float3 pos, Float2 scale) const noexcept
 
Float3 worldToScreenPoint (const Float3 &pos) const noexcept
 
Float3 screenToWorldPoint (const Float2 &pos, float depth) const noexcept
 
Ray screenToRay (const Vec2 &pos) const noexcept
 

Static Public Attributes

static constexpr double DefaultVerticalFOV = 30_deg
 
static constexpr double DefaultNearClip = 0.2
 

Protected Member Functions

void updateProj () noexcept
 
void updateView () noexcept
 
void updateViewProj () noexcept
 

Protected Attributes

Mat4x4 m_proj = Mat4x4::Identity()
 
Mat4x4 m_view = Mat4x4::Identity()
 
Mat4x4 m_invView = Mat4x4::Identity()
 
Mat4x4 m_viewProj = Mat4x4::Identity()
 
Mat4x4 m_invViewProj = Mat4x4::Identity()
 
Size m_sceneSize = Scene::Size()
 
double m_verticalFOV = DefaultVerticalFOV
 
double m_nearClip = DefaultNearClip
 
Vec3 m_eyePosition = Vec3{ 0, 4, -4 }
 
Vec3 m_focusPosition = Vec3{ 0, 0, 0 }
 
Vec3 m_upDirection = Vec3{ 0, 1, 0 }
 

Detailed Description

3D カメラの基本クラス

Constructor & Destructor Documentation

◆ BasicCamera3D() [1/3]

s3d::BasicCamera3D::BasicCamera3D ( )
default

◆ BasicCamera3D() [2/3]

s3d::BasicCamera3D::BasicCamera3D ( const BasicCamera3D )
default

◆ BasicCamera3D() [3/3]

s3d::BasicCamera3D::BasicCamera3D ( const Size sceneSize,
double  verticalFOV = DefaultVerticalFOV,
const Vec3 eyePosition = Vec3{ 0, 4, -4 },
const Vec3 focusPosition = Vec3{ 0, 0, 0 },
const Vec3 upDirection = Vec3{ 0, 1, 0 },
double  nearClip = DefaultNearClip 
)
explicitnoexcept

3D カメラを作成します。

Parameters
sceneSizeシーンのサイズ
verticalFOV縦方向の視野角(ラジアン)
eyePosition目(カメラ)の位置
focusPosition注目点
upDirection上方向ベクトル
nearClipニア・クリップ(これより近いとカメラに写らない)

◆ ~BasicCamera3D()

virtual s3d::BasicCamera3D::~BasicCamera3D ( )
virtualdefault

Member Function Documentation

◆ billboard() [1/3]

Mat4x4 SIV3D_VECTOR_CALL s3d::BasicCamera3D::billboard ( Float3  pos) const
noexcept

◆ billboard() [2/3]

SIV3D_CONCEPT_ARITHMETIC Mat4x4 SIV3D_VECTOR_CALL s3d::BasicCamera3D::billboard ( Float3  pos,
Arithmetic  scale 
) const
noexcept

◆ billboard() [3/3]

Mat4x4 SIV3D_VECTOR_CALL s3d::BasicCamera3D::billboard ( Float3  pos,
Float2  scale 
) const
noexcept

◆ getEyePosition()

const Vec3& s3d::BasicCamera3D::getEyePosition ( ) const
noexcept

◆ getFocusPosition()

const Vec3& s3d::BasicCamera3D::getFocusPosition ( ) const
noexcept

◆ getInvView()

const Mat4x4& SIV3D_VECTOR_CALL s3d::BasicCamera3D::getInvView ( ) const
noexcept

◆ getInvViewProj()

const Mat4x4& SIV3D_VECTOR_CALL s3d::BasicCamera3D::getInvViewProj ( ) const
noexcept

◆ getLookAtOrientation()

Quaternion s3d::BasicCamera3D::getLookAtOrientation ( ) const
noexcept

◆ getLookAtVector()

Vec3 s3d::BasicCamera3D::getLookAtVector ( ) const
noexcept

◆ getMat4x4()

virtual Mat4x4 s3d::BasicCamera3D::getMat4x4 ( ) const
virtual

◆ getNearClip()

double s3d::BasicCamera3D::getNearClip ( ) const
noexcept

◆ getProj()

const Mat4x4& SIV3D_VECTOR_CALL s3d::BasicCamera3D::getProj ( ) const
noexcept

◆ getSceneSize()

const Size& s3d::BasicCamera3D::getSceneSize ( ) const
noexcept

◆ getUpDirection()

const Vec3& s3d::BasicCamera3D::getUpDirection ( ) const
noexcept

◆ getVerticalFOV()

double s3d::BasicCamera3D::getVerticalFOV ( ) const
noexcept

◆ getView()

const Mat4x4& SIV3D_VECTOR_CALL s3d::BasicCamera3D::getView ( ) const
noexcept

◆ getViewProj()

const Mat4x4& SIV3D_VECTOR_CALL s3d::BasicCamera3D::getViewProj ( ) const
noexcept

◆ screenToRay()

Ray s3d::BasicCamera3D::screenToRay ( const Vec2 pos) const
noexcept

◆ screenToWorldPoint()

Float3 s3d::BasicCamera3D::screenToWorldPoint ( const Float2 pos,
float  depth 
) const
noexcept

◆ setProjection()

void s3d::BasicCamera3D::setProjection ( const Size sceneSize,
double  verticalFOV,
double  nearClip = DefaultNearClip 
)
noexcept

◆ setSceneSize()

void s3d::BasicCamera3D::setSceneSize ( const Size sceneSize)
noexcept

◆ setUpDirection()

void s3d::BasicCamera3D::setUpDirection ( const Vec3 upDirection)
noexcept

◆ setView()

void s3d::BasicCamera3D::setView ( const Vec3 eyePosition,
const Vec3 focusPosition,
const Vec3 upDirection = Vec3{ 0, 1, 0 } 
)
noexcept

◆ updateProj()

void s3d::BasicCamera3D::updateProj ( )
protectednoexcept

◆ updateView()

void s3d::BasicCamera3D::updateView ( )
protectednoexcept

◆ updateViewProj()

void s3d::BasicCamera3D::updateViewProj ( )
protectednoexcept

◆ worldToScreenPoint()

Float3 s3d::BasicCamera3D::worldToScreenPoint ( const Float3 pos) const
noexcept

Member Data Documentation

◆ DefaultNearClip

constexpr double s3d::BasicCamera3D::DefaultNearClip = 0.2
staticconstexpr

◆ DefaultVerticalFOV

constexpr double s3d::BasicCamera3D::DefaultVerticalFOV = 30_deg
staticconstexpr

◆ m_eyePosition

Vec3 s3d::BasicCamera3D::m_eyePosition = Vec3{ 0, 4, -4 }
protected

◆ m_focusPosition

Vec3 s3d::BasicCamera3D::m_focusPosition = Vec3{ 0, 0, 0 }
protected

◆ m_invView

Mat4x4 s3d::BasicCamera3D::m_invView = Mat4x4::Identity()
protected

◆ m_invViewProj

Mat4x4 s3d::BasicCamera3D::m_invViewProj = Mat4x4::Identity()
protected

◆ m_nearClip

double s3d::BasicCamera3D::m_nearClip = DefaultNearClip
protected

◆ m_proj

Mat4x4 s3d::BasicCamera3D::m_proj = Mat4x4::Identity()
protected

◆ m_sceneSize

Size s3d::BasicCamera3D::m_sceneSize = Scene::Size()
protected

◆ m_upDirection

Vec3 s3d::BasicCamera3D::m_upDirection = Vec3{ 0, 1, 0 }
protected

◆ m_verticalFOV

double s3d::BasicCamera3D::m_verticalFOV = DefaultVerticalFOV
protected

◆ m_view

Mat4x4 s3d::BasicCamera3D::m_view = Mat4x4::Identity()
protected

◆ m_viewProj

Mat4x4 s3d::BasicCamera3D::m_viewProj = Mat4x4::Identity()
protected

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