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

2D カメラ More...

#include <Camera2D.hpp>

Inherits s3d::BasicCamera2D.

Public Member Functions

SIV3D_NODISCARD_CXX20 Camera2D ()=default
 デフォルトコンストラクタ More...
 
SIV3D_NODISCARD_CXX20 Camera2D (Vec2 center, double scale=1.0, CameraControl cameraControl=CameraControl::Default) noexcept
 2D カメラを作成します。 More...
 
SIV3D_NODISCARD_CXX20 Camera2D (Vec2 center, double scale, const Camera2DParameters &parameters) noexcept
 2D カメラを作成します。 More...
 
void setParameters (const Camera2DParameters &parameters) noexcept
 カメラの操作パラメータを変更します。 More...
 
const Camera2DParametersgetParameters () const noexcept
 現在のカメラの操作パラメータを返します。 More...
 
void setTargetCenter (Vec2 targetCenter) noexcept
 カメラが見る中心座標の目標を設定します。 More...
 
const Vec2getTargetCenter () const noexcept
 現在の目標中心座標を返します。 More...
 
void setTargetScale (double targetScale) noexcept
 カメラのズームアップ倍率の目標を設定します。 More...
 
double getTargetScale () const noexcept
 現在の目標ズームアップ倍率を返します。 More...
 
void jumpTo (Vec2 center, double scale) noexcept
 指定した中心座標とズーム倍率を即座に適用します。 More...
 
void update (double deltaTime=Scene::DeltaTime(), SizeF sceneSize=Graphics2D::GetRenderTargetSize())
 2D カメラの状態を更新します。 More...
 
void draw (const ColorF &color=Palette::White) const
 2D カメラの右クリック・ドラッグによる移動の UI を表示します。 More...
 
- Public Member Functions inherited from s3d::BasicCamera2D
SIV3D_NODISCARD_CXX20 BasicCamera2D ()=default
 デフォルトコンストラクタ More...
 
constexpr SIV3D_NODISCARD_CXX20 BasicCamera2D (Vec2 center, double scale=1.0) noexcept
 指定した設定で 2D カメラを作成します。 More...
 
constexpr void setCenter (Vec2 center) noexcept
 カメラが見る中心座標を設定します。 More...
 
constexpr const Vec2getCenter () const noexcept
 カメラが見ている中心座標を返します。 More...
 
constexpr void setScale (double scale) noexcept
 カメラのズームアップ倍率を設定します。 More...
 
constexpr double getScale () const noexcept
 カメラのズームアップ倍率を返します。 More...
 
constexpr RectF getRegion (Size renderTargetSize=Graphics2D::GetRenderTargetSize()) const noexcept
 カメラに映っている領域を返します。 More...
 
constexpr Mat3x2 getMat3x2 (Size renderTargetSize=Graphics2D::GetRenderTargetSize()) const noexcept
 現在のカメラの設定から座標変換行列を作成します。 More...
 
Transformer2D createTransformer () const
 現在のカメラの設定から Transformer2D を作成します。 More...
 

Protected Member Functions

void updateWheel (const SizeF &sceneSize)
 
void updateControls (const double deltaTime)
 
void updateMouse (const double deltaTime)
 

Protected Attributes

double m_targetScale = BasicCamera2D::m_scale
 
double m_scaleChangeVelocity = 0.0
 
Vec2 m_targetCenter = BasicCamera2D::m_center
 
Vec2 m_positionChangeVelocity = Vec2::Zero()
 
Optional< Pointm_grabPos
 
Optional< std::pair< Point, Vec2 > > m_pointedScale
 
Camera2DParameters m_parameters
 
- Protected Attributes inherited from s3d::BasicCamera2D
Vec2 m_center = Vec2{ 0, 0 }
 カメラが見ている中心座標 More...
 
double m_scale = 1.0
 カメラのズーム倍率 More...
 

Detailed Description

2D カメラ

Constructor & Destructor Documentation

◆ Camera2D() [1/3]

SIV3D_NODISCARD_CXX20 s3d::Camera2D::Camera2D ( )
default

デフォルトコンストラクタ

◆ Camera2D() [2/3]

SIV3D_NODISCARD_CXX20 s3d::Camera2D::Camera2D ( Vec2  center,
double  scale = 1.0,
CameraControl  cameraControl = CameraControl::Default 
)
noexcept

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

Parameters
centerカメラが見ている中心座標の初期設定
scaleカメラのズーム倍率の初期設定
cameraControlカメラの操作オプション

◆ Camera2D() [3/3]

SIV3D_NODISCARD_CXX20 s3d::Camera2D::Camera2D ( Vec2  center,
double  scale,
const Camera2DParameters parameters 
)
noexcept

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

Parameters
centerカメラが見ている中心座標の初期設定
scaleカメラのズーム倍率の初期設定
parametersカメラの操作パラメータ

Member Function Documentation

◆ draw()

void s3d::Camera2D::draw ( const ColorF color = Palette::White) const

2D カメラの右クリック・ドラッグによる移動の UI を表示します。

Parameters
colorUI の色

◆ getParameters()

const Camera2DParameters& s3d::Camera2D::getParameters ( ) const
noexcept

現在のカメラの操作パラメータを返します。

Returns
現在のカメラの操作パラメータ

◆ getTargetCenter()

const Vec2& s3d::Camera2D::getTargetCenter ( ) const
noexcept

現在の目標中心座標を返します。

Returns
現在の目標中心座標

◆ getTargetScale()

double s3d::Camera2D::getTargetScale ( ) const
noexcept

現在の目標ズームアップ倍率を返します。

Returns
現在の目標ズームアップ倍率

◆ jumpTo()

void s3d::Camera2D::jumpTo ( Vec2  center,
double  scale 
)
noexcept

指定した中心座標とズーム倍率を即座に適用します。

Parameters
centerカメラが見る中心座標
scaleカメラのズーム倍率

◆ setParameters()

void s3d::Camera2D::setParameters ( const Camera2DParameters parameters)
noexcept

カメラの操作パラメータを変更します。

Parameters
parameters新しいカメラの操作パラメータ

◆ setTargetCenter()

void s3d::Camera2D::setTargetCenter ( Vec2  targetCenter)
noexcept

カメラが見る中心座標の目標を設定します。

Parameters
targetCenterカメラが見る中心座標の目標
Remarks
カメラは一定の時間をかけて目標の座標に移動します。

◆ setTargetScale()

void s3d::Camera2D::setTargetScale ( double  targetScale)
noexcept

カメラのズームアップ倍率の目標を設定します。

Parameters
targetScaleカメラのズーム倍率の目標
Remarks
カメラは一定の時間をかけて目標のズーム倍率になります。

◆ update()

void s3d::Camera2D::update ( double  deltaTime = Scene::DeltaTime(),
SizeF  sceneSize = Graphics2D::GetRenderTargetSize() 
)

2D カメラの状態を更新します。

Parameters
deltaTime前回のフレームからの経過時間(秒)
sceneSizeレンダーターゲットのサイズ(ピクセル)

◆ updateControls()

void s3d::Camera2D::updateControls ( const double  deltaTime)
protected

◆ updateMouse()

void s3d::Camera2D::updateMouse ( const double  deltaTime)
protected

◆ updateWheel()

void s3d::Camera2D::updateWheel ( const SizeF sceneSize)
protected

Member Data Documentation

◆ m_grabPos

Optional<Point> s3d::Camera2D::m_grabPos
protected

◆ m_parameters

Camera2DParameters s3d::Camera2D::m_parameters
protected

◆ m_pointedScale

Optional<std::pair<Point, Vec2> > s3d::Camera2D::m_pointedScale
protected

◆ m_positionChangeVelocity

Vec2 s3d::Camera2D::m_positionChangeVelocity = Vec2::Zero()
protected

◆ m_scaleChangeVelocity

double s3d::Camera2D::m_scaleChangeVelocity = 0.0
protected

◆ m_targetCenter

Vec2 s3d::Camera2D::m_targetCenter = BasicCamera2D::m_center
protected

◆ m_targetScale

double s3d::Camera2D::m_targetScale = BasicCamera2D::m_scale
protected

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