ゲームグラフィックス特論
読み取り中…
検索中…
一致する文字列を見つけられません
GgApp::Window クラス

#include <GgApp.h>

公開メンバ関数

 Window (const std::string &title="GLFW Window", int width=640, int height=480, int fullscreen=0, GLFWwindow *share=nullptr)
 Window (const Window &w)=delete
 Window (Window &&w) noexcept
virtual ~Window ()
Windowoperator= (const Window &w)=delete
Windowoperator= (Window &&w) noexcept
auto * get () const
void setClose (int flag=GLFW_TRUE) const
bool shouldClose () const
 operator bool ()
void swapBuffers () const
void restoreViewport () const
void updateViewport ()
auto getWidth () const
auto getHeight () const
auto getFboWidth () const
auto getFboHeight () const
const auto & getSize () const
void getSize (GLsizei *size) const
const auto & getFboSize () const
void getFboSize (GLsizei *fboSize) const
auto getAspect () const
bool getKey (int key) const
void selectInterface (int no)
void setVelocity (GLfloat vx, GLfloat vy, GLfloat vz=0.1f)
int getLastKey ()
auto getArrow (int direction=0, int mods=0) const
auto getArrowX (int mods=0) const
auto getArrowY (int mods=0) const
void getArrow (GLfloat *arrow, int mods=0) const
auto getShiftArrowX () const
auto getShiftArrowY () const
void getShiftArrow (GLfloat *shift_arrow) const
auto getControlArrowX () const
auto getControlArrowY () const
void getControlArrow (GLfloat *control_arrow) const
auto getAltArrowX () const
auto getAltArrowY () const
void getAltArrow (GLfloat *alt_arrow) const
const auto * getMouse () const
void getMouse (GLfloat *position) const
auto getMouse (int direction) const
auto getMouseX () const
auto getMouseY () const
const auto * getWheel () const
void getWheel (GLfloat *rotation) const
auto getWheel (int direction) const
auto getWheelX () const
auto getWheelY () const
const auto & getTranslation (int button=GLFW_MOUSE_BUTTON_1) const
auto getTranslationMatrix (int button=GLFW_MOUSE_BUTTON_1) const
auto getScrollMatrix (int button=GLFW_MOUSE_BUTTON_1) const
auto getRotation (int button=GLFW_MOUSE_BUTTON_1) const
auto getRotationMatrix (int button=GLFW_MOUSE_BUTTON_1) const
void resetRotation ()
void resetTranslation ()
void reset ()
void * getUserPointer () const
void setUserPointer (void *pointer)
void setResizeFunc (void(*func)(const Window *window, int width, int height))
void setKeyboardFunc (void(*func)(const Window *window, int key, int scancode, int action, int mods))
void setMouseFunc (void(*func)(const Window *window, int button, int action, int mods))
void setWheelFunc (void(*func)(const Window *window, double x, double y))

詳解

ウィンドウ関連の処理.

覚え書き
GLFW を使って OpenGL のウィンドウを操作するラッパークラス.

GgApp.h170 行目に定義があります。

構築子と解体子

◆ Window() [1/3]

GgApp::Window::Window ( const std::string & title = "GLFW Window",
int width = 640,
int height = 480,
int fullscreen = 0,
GLFWwindow * share = nullptr )

コンストラクタ.

引数
titleウィンドウタイトルの文字列.
width開くウィンドウの幅, フルスクリーン時は無視され実際のディスプレイの幅が使われる.
height開くウィンドウの高さ, フルスクリーン時は無視され実際のディスプレイの高さが使われる.
fullscreenフルスクリーン表示を行うディスプレイ番号, 0 ならフルスクリーン表示を行わない.
share共有するコンテキスト, nullptr ならコンテキストを共有しない.

GgApp.cpp344 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Window() [2/3]

GgApp::Window::Window ( const Window & w)
delete

コピーコンストラクタは使用しない.

引数
wコピー元のウィンドウ.
呼び出し関係図:

◆ Window() [3/3]

GgApp::Window::Window ( Window && w)
noexcept

ムーブコンストラクタ.

引数
wムーブ代入元のウィンドウ.

GgApp.cpp424 行目に定義があります。

呼び出し関係図:

◆ ~Window()

virtual GgApp::Window::~Window ( )
inlinevirtual

デストラクタ.

GgApp.h299 行目に定義があります。

関数詳解

◆ get()

auto * GgApp::Window::get ( ) const
inline

ウィンドウの識別子のポインタを取得する.

戻り値
GLFWwindow 型のウィンドウ識別子のポインタ.

GgApp.h329 行目に定義があります。

◆ getAltArrow()

void GgApp::Window::getAltArrow ( GLfloat * alt_arrow) const
inline

ALT キーを押しながら矢印キーを押したときの現在の値を得る.

引数
alt_arrowALT キーを押しながら矢印キーを押したときの値を格納する GLfloat 型の 2 要素の配列.

GgApp.h673 行目に定義があります。

呼び出し関係図:

◆ getAltArrowX()

auto GgApp::Window::getAltArrowX ( ) const
inline

ALT キーを押しながら矢印キーを押したときの現在の X 値を得る.

戻り値
ALT キーを押しながら矢印キーを押したときの現在の X 値.

GgApp.h653 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ getAltArrowY()

auto GgApp::Window::getAltArrowY ( ) const
inline

ALT キーを押しながら矢印キーを押したときの現在の Y 値を得る.

戻り値
ALT キーを押しながら矢印キーを押したときの現在の Y 値.

GgApp.h663 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ getArrow() [1/2]

void GgApp::Window::getArrow ( GLfloat * arrow,
int mods = 0 ) const
inline

矢印キーの現在の値を得る.

引数
arrow矢印キーの値を格納する GLfloat[2] の配列.
mods修飾キーの状態 (0:なし, 1, SHIFT, 2: CTRL, 3: ALT).

GgApp.h580 行目に定義があります。

呼び出し関係図:

◆ getArrow() [2/2]

auto GgApp::Window::getArrow ( int direction = 0,
int mods = 0 ) const
inline

矢印キーの現在の値を得る.

引数
direction方向 (0: X, 1:Y).
mods修飾キーの状態 (0:なし, 1, SHIFT, 2: CTRL, 3: ALT).
戻り値
矢印キーの値.

GgApp.h546 行目に定義があります。

被呼び出し関係図:

◆ getArrowX()

auto GgApp::Window::getArrowX ( int mods = 0) const
inline

矢印キーの現在の X 値を得る.

引数
mods修飾キーの状態 (0:なし, 1, SHIFT, 2: CTRL, 3: ALT).
戻り値
矢印キーの X 値.

GgApp.h558 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ getArrowY()

auto GgApp::Window::getArrowY ( int mods = 0) const
inline

矢印キーの現在の Y 値を得る.

引数
mods修飾キーの状態 (0:なし, 1, SHIFT, 2: CTRL, 3: ALT).
戻り値
矢印キーの Y 値.

GgApp.h569 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ getAspect()

auto GgApp::Window::getAspect ( ) const
inline

ウィンドウの縦横比を得る.

戻り値
ウィンドウの縦横比.

GgApp.h483 行目に定義があります。

◆ getControlArrow()

void GgApp::Window::getControlArrow ( GLfloat * control_arrow) const
inline

CTRL キーを押しながら矢印キーを押したときの現在の値を得る.

引数
control_arrowCTRL キーを押しながら矢印キーを押したときの値を格納する GLfloat 型の 2 要素の配列.

GgApp.h642 行目に定義があります。

呼び出し関係図:

◆ getControlArrowX()

auto GgApp::Window::getControlArrowX ( ) const
inline

CTRL キーを押しながら矢印キーを押したときの現在の X 値を得る.

戻り値
CTRL キーを押しながら矢印キーを押したときの現在の X 値.

GgApp.h622 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ getControlArrowY()

auto GgApp::Window::getControlArrowY ( ) const
inline

CTRL キーを押しながら矢印キーを押したときの現在の Y 値を得る.

戻り値
CTRL キーを押しながら矢印キーを押したときの現在の Y 値.

GgApp.h632 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ getFboHeight()

auto GgApp::Window::getFboHeight ( ) const
inline

FBO の高さを得る.

戻り値
FBO の高さ.

GgApp.h431 行目に定義があります。

被呼び出し関係図:

◆ getFboSize() [1/2]

const auto & GgApp::Window::getFboSize ( ) const
inline

FBO のサイズを得る.

戻り値
FBO の幅と高さを格納した GLsizei 型の 2 要素の配列.

GgApp.h462 行目に定義があります。

◆ getFboSize() [2/2]

void GgApp::Window::getFboSize ( GLsizei * fboSize) const
inline

FBO のサイズを得る.

引数
fboSizeFBO の幅と高さを格納する GLsizei 型の 2 要素の配列.

GgApp.h472 行目に定義があります。

呼び出し関係図:

◆ getFboWidth()

auto GgApp::Window::getFboWidth ( ) const
inline

FBO の横幅を得る.

戻り値
FBO の横幅.

GgApp.h421 行目に定義があります。

被呼び出し関係図:

◆ getHeight()

auto GgApp::Window::getHeight ( ) const
inline

ウィンドウの高さを得る.

戻り値
ウィンドウの高さ.

GgApp.h411 行目に定義があります。

被呼び出し関係図:

◆ getKey()

bool GgApp::Window::getKey ( int key) const
inline

キーが押されているかどうかを判定する.

戻り値
キーが押されていれば true.

GgApp.h493 行目に定義があります。

◆ getLastKey()

int GgApp::Window::getLastKey ( )
inline

最後にタイプしたキーを得る.

戻り値
最後にタイプしたキーの文字.

GgApp.h531 行目に定義があります。

◆ getMouse() [1/3]

const auto * GgApp::Window::getMouse ( ) const
inline

マウスカーソルの現在位置を得る.

戻り値
マウスカーソルの現在位置を格納した GLfloat 型の 2 要素の配列.

GgApp.h684 行目に定義があります。

◆ getMouse() [2/3]

void GgApp::Window::getMouse ( GLfloat * position) const
inline

マウスカーソルの現在位置を得る.

引数
positionマウスカーソルの現在位置を格納した GLfloat 型の 2 要素の配列.

GgApp.h695 行目に定義があります。

◆ getMouse() [3/3]

auto GgApp::Window::getMouse ( int direction) const
inline

マウスカーソルの現在位置を得る.

引数
direction方向 (0:X, 1:Y).
戻り値
direction 方向のマウスカーソルの現在位置.

GgApp.h708 行目に定義があります。

◆ getMouseX()

auto GgApp::Window::getMouseX ( ) const
inline

マウスカーソルの現在位置の X 座標を得る.

戻り値
direction 方向のマウスカーソルの X 方向の現在位置.

GgApp.h719 行目に定義があります。

◆ getMouseY()

auto GgApp::Window::getMouseY ( ) const
inline

マウスカーソルの現在位置の Y 座標を得る.

戻り値
direction 方向のマウスカーソルの Y 方向の現在位置.

GgApp.h730 行目に定義があります。

◆ getRotation()

auto GgApp::Window::getRotation ( int button = GLFW_MOUSE_BUTTON_1) const
inline

トラックボールの回転変換行列を得る.

引数
button回転変換行列を取得するマウスボタン (GLFW_MOUSE_BUTTON_[1,2]).
戻り値
回転を行う GgQuaternion 型の四元数.

GgApp.h858 行目に定義があります。

◆ getRotationMatrix()

auto GgApp::Window::getRotationMatrix ( int button = GLFW_MOUSE_BUTTON_1) const
inline

トラックボールの回転変換行列を得る.

引数
button回転変換行列を取得するマウスボタン (GLFW_MOUSE_BUTTON_[1,2]).
戻り値
回転を行う GgMatrix 型の変換行列.

GgApp.h871 行目に定義があります。

◆ getScrollMatrix()

auto GgApp::Window::getScrollMatrix ( int button = GLFW_MOUSE_BUTTON_1) const
inline

マウスによってオブジェクトの平行移動の変換行列を得る.

引数
button平行移動量を取得するマウスボタン (GLFW_MOUSE_BUTTON_[1,2]).
戻り値
クリッピング座標系で平行移動を行う GgMatrix 型の変換行列.

GgApp.h835 行目に定義があります。

◆ getShiftArrow()

void GgApp::Window::getShiftArrow ( GLfloat * shift_arrow) const
inline

SHIFT キーを押しながら矢印キーを押したときの現在の値を得る.

引数
shift_arrowSHIFT キーを押しながら矢印キーを押したときの値を格納する GLfloat 型の 2 要素の配列.

GgApp.h611 行目に定義があります。

呼び出し関係図:

◆ getShiftArrowX()

auto GgApp::Window::getShiftArrowX ( ) const
inline

SHIFT キーを押しながら矢印キーを押したときの現在の X 値を得る.

戻り値
SHIFT キーを押しながら矢印キーを押したときの現在の X 値.

GgApp.h591 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ getShiftArrowY()

auto GgApp::Window::getShiftArrowY ( ) const
inline

SHIFT キーを押しながら矢印キーを押したときの現在の Y 値を得る.

戻り値
SHIFT キーを押しながら矢印キーを押したときの現在の Y 値.

GgApp.h601 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ getSize() [1/2]

const auto & GgApp::Window::getSize ( ) const
inline

ウィンドウのサイズを得る.

戻り値
ウィンドウの幅と高さを格納した GLsizei 型の 2 要素の配列の参照.

GgApp.h441 行目に定義があります。

◆ getSize() [2/2]

void GgApp::Window::getSize ( GLsizei * size) const
inline

ウィンドウのサイズを得る.

引数
sizeウィンドウの幅と高さを格納した GLsizei 型の 2 要素の配列.

GgApp.h451 行目に定義があります。

呼び出し関係図:

◆ getTranslation()

const auto & GgApp::Window::getTranslation ( int button = GLFW_MOUSE_BUTTON_1) const
inline

トラックボール処理を考慮したマウスによるスクロールの変換行列を得る.

引数
button平行移動量を取得するマウスボタン (GLFW_MOUSE_BUTTON_[1,2]).
戻り値
平行移動量を格納した GLfloat[3] の配列のポインタ.

GgApp.h799 行目に定義があります。

◆ getTranslationMatrix()

auto GgApp::Window::getTranslationMatrix ( int button = GLFW_MOUSE_BUTTON_1) const
inline

マウスによって視点の平行移動の変換行列を得る.

引数
button平行移動量を取得するマウスボタン (GLFW_MOUSE_BUTTON_[1,2]).
戻り値
視点座標系で平行移動を行う GgMatrix 型の変換行列.

GgApp.h812 行目に定義があります。

◆ getUserPointer()

void * GgApp::Window::getUserPointer ( ) const
inline

ユーザーポインタを取り出す.

戻り値
保存されているユーザポインタ.

GgApp.h913 行目に定義があります。

◆ getWheel() [1/3]

const auto * GgApp::Window::getWheel ( ) const
inline

マウスホイールの回転量を得る.

戻り値
マウスホイールの回転量を格納した GLfloat 型の 2 要素の配列.

GgApp.h741 行目に定義があります。

◆ getWheel() [2/3]

void GgApp::Window::getWheel ( GLfloat * rotation) const
inline

マウスホイールの回転量を得る.

引数
rotationマウスホイールの回転量を格納した GLfloat 型の 2 要素の配列.

GgApp.h752 行目に定義があります。

◆ getWheel() [3/3]

auto GgApp::Window::getWheel ( int direction) const
inline

マウスホイールの回転量を得る.

引数
direction方向 (0:X, 1:Y).
戻り値
direction 方向のマウスホイールの回転量.

GgApp.h765 行目に定義があります。

◆ getWheelX()

auto GgApp::Window::getWheelX ( ) const
inline

マウスホイールの X 方向の回転量を得る.

戻り値
マウスホイールの X 方向の回転量.

GgApp.h776 行目に定義があります。

◆ getWheelY()

auto GgApp::Window::getWheelY ( ) const
inline

マウスホイールの Y 方向の回転量を得る.

戻り値
マウスホイールの Y 方向の回転量.

GgApp.h787 行目に定義があります。

◆ getWidth()

auto GgApp::Window::getWidth ( ) const
inline

ウィンドウの横幅を得る.

戻り値
ウィンドウの横幅.

GgApp.h401 行目に定義があります。

被呼び出し関係図:

◆ operator bool()

GgApp::Window::operator bool ( )
explicit

イベントを取得してループを継続すべきかどうか調べる.

戻り値
ループを継続すべきなら true.

GgApp.cpp477 行目に定義があります。

呼び出し関係図:

◆ operator=() [1/2]

Window & GgApp::Window::operator= ( const Window & w)
delete

代入演算子は使用しない.

引数
w代入元のウィンドウ.
戻り値
代入後のこのオブジェクトの参照.
呼び出し関係図:

◆ operator=() [2/2]

GgApp::Window & GgApp::Window::operator= ( Window && w)
noexcept

ムーブ代入演算子.

引数
wムーブ代入元のウィンドウ.
戻り値
ムーブ代入後のこのオブジェクトの参照.

GgApp.cpp446 行目に定義があります。

呼び出し関係図:

◆ reset()

void GgApp::Window::reset ( )
inline

トラックボール・マウスホイール・矢印キーの値を初期化する.

GgApp.h899 行目に定義があります。

呼び出し関係図:

◆ resetRotation()

void GgApp::Window::resetRotation ( )
inline

トラックボール処理を初期化する.

GgApp.h881 行目に定義があります。

被呼び出し関係図:

◆ resetTranslation()

void GgApp::Window::resetTranslation ( )
inline

平行移動量を初期化する.

GgApp.h890 行目に定義があります。

被呼び出し関係図:

◆ restoreViewport()

void GgApp::Window::restoreViewport ( ) const
inline

ビューポートを元のサイズに復帰する.

GgApp.h370 行目に定義があります。

被呼び出し関係図:

◆ selectInterface()

void GgApp::Window::selectInterface ( int no)
inline

インタフェースを選択する.

引数
noインターフェース番号.

GgApp.h508 行目に定義があります。

◆ setClose()

void GgApp::Window::setClose ( int flag = GLFW_TRUE) const
inline

ウィンドウのクローズフラグを設定する.

引数
flagクローズフラグ, 0 (GLFW_FALSE) 以外ならウィンドウを閉じる.

GgApp.h339 行目に定義があります。

◆ setKeyboardFunc()

void GgApp::Window::setKeyboardFunc ( void(* func )(const Window *window, int key, int scancode, int action, int mods))
inline

ユーザ定義の keyboard 関数を設定する.

引数
funcユーザ定義の keyboard 関数, キーボードの操作時に呼び出される.

GgApp.h943 行目に定義があります。

呼び出し関係図:

◆ setMouseFunc()

void GgApp::Window::setMouseFunc ( void(* func )(const Window *window, int button, int action, int mods))
inline

ユーザ定義の mouse 関数を設定する.

引数
funcユーザ定義の mouse 関数, マウスボタンの操作時に呼び出される.

GgApp.h953 行目に定義があります。

呼び出し関係図:

◆ setResizeFunc()

void GgApp::Window::setResizeFunc ( void(* func )(const Window *window, int width, int height))
inline

ユーザ定義の resize 関数を設定する.

引数
funcユーザ定義の resize 関数, ウィンドウのサイズ変更時に呼び出される.

GgApp.h933 行目に定義があります。

呼び出し関係図:

◆ setUserPointer()

void GgApp::Window::setUserPointer ( void * pointer)
inline

任意のユーザポインタを保存する.

引数
pointer保存するユーザポインタ.

GgApp.h923 行目に定義があります。

◆ setVelocity()

void GgApp::Window::setVelocity ( GLfloat vx,
GLfloat vy,
GLfloat vz = 0.1f )
inline

マウスの移動速度を設定する.

引数
vxx 方向の移動速度.
vyy 方向の移動速度.
vzz 方向の移動速度.

GgApp.h521 行目に定義があります。

◆ setWheelFunc()

void GgApp::Window::setWheelFunc ( void(* func )(const Window *window, double x, double y))
inline

ユーザ定義の wheel 関数を設定する.

引数
funcユーザ定義の wheel 関数, マウスホイールの操作時に呼び出される.

GgApp.h963 行目に定義があります。

呼び出し関係図:

◆ shouldClose()

bool GgApp::Window::shouldClose ( ) const
inline

ウィンドウを閉じるべきかどうか調べる.

戻り値
ウィンドウを閉じるべきなら true.

GgApp.h349 行目に定義があります。

被呼び出し関係図:

◆ swapBuffers()

void GgApp::Window::swapBuffers ( ) const

カラーバッファを入れ替える.

GgApp.cpp528 行目に定義があります。

◆ updateViewport()

void GgApp::Window::updateViewport ( )

ビューポートのサイズを更新する.

GgApp.cpp547 行目に定義があります。

呼び出し関係図:

このクラス詳解は次のファイルから抽出されました: