ゲームグラフィックス特論
読み取り中…
検索中…
一致する文字列を見つけられません
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 ()
Window & operator= (const Window &w)=delete
Window & operator= (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.h の 170 行目に定義があります。

構築子と解体子

◆ 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.cpp の 344 行目に定義があります。

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

◆ Window() [2/3]

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

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

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

◆ Window() [3/3]

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

ムーブコンストラクタ.

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

GgApp.cpp の 424 行目に定義があります。

呼び出し関係図:

◆ ~Window()

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

デストラクタ.

GgApp.h の 299 行目に定義があります。

関数詳解

◆ get()

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

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

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

GgApp.h の 329 行目に定義があります。

◆ getAltArrow()

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

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

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

GgApp.h の 673 行目に定義があります。

呼び出し関係図:

◆ getAltArrowX()

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

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

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

GgApp.h の 653 行目に定義があります。

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

◆ getAltArrowY()

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

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

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

GgApp.h の 663 行目に定義があります。

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

◆ 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.h の 580 行目に定義があります。

呼び出し関係図:

◆ 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.h の 546 行目に定義があります。

被呼び出し関係図:

◆ getArrowX()

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

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

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

GgApp.h の 558 行目に定義があります。

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

◆ getArrowY()

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

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

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

GgApp.h の 569 行目に定義があります。

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

◆ getAspect()

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

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

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

GgApp.h の 483 行目に定義があります。

◆ getControlArrow()

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

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

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

GgApp.h の 642 行目に定義があります。

呼び出し関係図:

◆ getControlArrowX()

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

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

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

GgApp.h の 622 行目に定義があります。

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

◆ getControlArrowY()

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

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

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

GgApp.h の 632 行目に定義があります。

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

◆ getFboHeight()

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

FBO の高さを得る.

戻り値
FBO の高さ.

GgApp.h の 431 行目に定義があります。

被呼び出し関係図:

◆ getFboSize() [1/2]

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

FBO のサイズを得る.

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

GgApp.h の 462 行目に定義があります。

◆ getFboSize() [2/2]

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

FBO のサイズを得る.

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

GgApp.h の 472 行目に定義があります。

呼び出し関係図:

◆ getFboWidth()

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

FBO の横幅を得る.

戻り値
FBO の横幅.

GgApp.h の 421 行目に定義があります。

被呼び出し関係図:

◆ getHeight()

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

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

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

GgApp.h の 411 行目に定義があります。

被呼び出し関係図:

◆ getKey()

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

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

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

GgApp.h の 493 行目に定義があります。

◆ getLastKey()

int GgApp::Window::getLastKey ( )
inline

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

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

GgApp.h の 531 行目に定義があります。

◆ getMouse() [1/3]

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

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

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

GgApp.h の 684 行目に定義があります。

◆ getMouse() [2/3]

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

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

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

GgApp.h の 695 行目に定義があります。

◆ getMouse() [3/3]

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

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

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

GgApp.h の 708 行目に定義があります。

◆ getMouseX()

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

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

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

GgApp.h の 719 行目に定義があります。

◆ getMouseY()

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

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

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

GgApp.h の 730 行目に定義があります。

◆ getRotation()

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

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

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

GgApp.h の 858 行目に定義があります。

◆ getRotationMatrix()

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

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

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

GgApp.h の 871 行目に定義があります。

◆ getScrollMatrix()

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

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

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

GgApp.h の 835 行目に定義があります。

◆ getShiftArrow()

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

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

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

GgApp.h の 611 行目に定義があります。

呼び出し関係図:

◆ getShiftArrowX()

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

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

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

GgApp.h の 591 行目に定義があります。

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

◆ getShiftArrowY()

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

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

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

GgApp.h の 601 行目に定義があります。

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

◆ getSize() [1/2]

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

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

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

GgApp.h の 441 行目に定義があります。

◆ getSize() [2/2]

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

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

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

GgApp.h の 451 行目に定義があります。

呼び出し関係図:

◆ getTranslation()

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

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

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

GgApp.h の 799 行目に定義があります。

◆ getTranslationMatrix()

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

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

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

GgApp.h の 812 行目に定義があります。

◆ getUserPointer()

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

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

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

GgApp.h の 913 行目に定義があります。

◆ getWheel() [1/3]

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

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

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

GgApp.h の 741 行目に定義があります。

◆ getWheel() [2/3]

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

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

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

GgApp.h の 752 行目に定義があります。

◆ getWheel() [3/3]

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

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

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

GgApp.h の 765 行目に定義があります。

◆ getWheelX()

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

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

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

GgApp.h の 776 行目に定義があります。

◆ getWheelY()

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

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

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

GgApp.h の 787 行目に定義があります。

◆ getWidth()

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

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

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

GgApp.h の 401 行目に定義があります。

被呼び出し関係図:

◆ operator bool()

GgApp::Window::operator bool ( )
explicit

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

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

GgApp.cpp の 477 行目に定義があります。

呼び出し関係図:

◆ 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.cpp の 446 行目に定義があります。

呼び出し関係図:

◆ reset()

void GgApp::Window::reset ( )
inline

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

GgApp.h の 899 行目に定義があります。

呼び出し関係図:

◆ resetRotation()

void GgApp::Window::resetRotation ( )
inline

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

GgApp.h の 881 行目に定義があります。

被呼び出し関係図:

◆ resetTranslation()

void GgApp::Window::resetTranslation ( )
inline

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

GgApp.h の 890 行目に定義があります。

被呼び出し関係図:

◆ restoreViewport()

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

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

GgApp.h の 370 行目に定義があります。

被呼び出し関係図:

◆ selectInterface()

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

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

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

GgApp.h の 508 行目に定義があります。

◆ setClose()

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

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

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

GgApp.h の 339 行目に定義があります。

◆ setKeyboardFunc()

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

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

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

GgApp.h の 943 行目に定義があります。

呼び出し関係図:

◆ setMouseFunc()

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

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

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

GgApp.h の 953 行目に定義があります。

呼び出し関係図:

◆ setResizeFunc()

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

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

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

GgApp.h の 933 行目に定義があります。

呼び出し関係図:

◆ setUserPointer()

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

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

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

GgApp.h の 923 行目に定義があります。

◆ setVelocity()

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

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

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

GgApp.h の 521 行目に定義があります。

◆ setWheelFunc()

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

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

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

GgApp.h の 963 行目に定義があります。

呼び出し関係図:

◆ shouldClose()

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

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

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

GgApp.h の 349 行目に定義があります。

被呼び出し関係図:

◆ swapBuffers()

void GgApp::Window::swapBuffers ( ) const

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

GgApp.cpp の 528 行目に定義があります。

◆ updateViewport()

void GgApp::Window::updateViewport ( )

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

GgApp.cpp の 547 行目に定義があります。

呼び出し関係図:

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