ゲームグラフィックス特論
クラス | 公開メンバ関数 | 静的公開メンバ関数 | 公開変数類 | 全メンバ一覧
Window クラス

ウィンドウ関連の処理. [詳解]

#include <Window.h>

公開メンバ関数

 Window (const char *title="GLFW Window", int width=640, int height=480, int fullscreen=0, GLFWwindow *share=nullptr)
 コンストラクタ. [詳解]
 
 Window (const Window &w)=delete
 コピーコンストラクタは使用禁止. [詳解]
 
Windowoperator= (const Window &w)=delete
 代入演算子は使用禁止. [詳解]
 
virtual ~Window ()
 デストラクタ. [詳解]
 
GLFWwindow * get () const
 ウィンドウの識別子のポインタを取得する. [詳解]
 
void setClose (int flag=GLFW_TRUE) const
 ウィンドウのクローズフラグを設定する. [詳解]
 
bool shouldClose () const
 ウィンドウを閉じるべきかどうか調べる. [詳解]
 
 operator bool ()
 イベントを取得してループを継続すべきかどうか調べる. [詳解]
 
void swapBuffers ()
 カラーバッファを入れ替える. [詳解]
 
GLsizei getWidth () const
 ウィンドウの横幅を得る. [詳解]
 
GLsizei getHeight () const
 ウィンドウの高さを得る. [詳解]
 
const GLsizei * getSize () const
 ウィンドウのサイズを得る. [詳解]
 
void getSize (GLsizei *size) const
 ウィンドウのサイズを得る. [詳解]
 
GLfloat getAspect () const
 ウィンドウのアスペクト比を得る. [詳解]
 
void restoreViewport ()
 ビューポートをウィンドウ全体に設定する. [詳解]
 
bool getKey (int key)
 キーが押されているかどうかを判定する. [詳解]
 
void selectInterface (int no)
 インタフェースを選択する [詳解]
 
void setVelocity (GLfloat vx, GLfloat vy)
 マウスの移動速度を設定する [詳解]
 
GLfloat getArrow (int direction=0, int mods=0) const
 矢印キーの現在の値を得る. [詳解]
 
GLfloat getArrowX (int mods=0) const
 矢印キーの現在の X 値を得る. [詳解]
 
GLfloat getArrowY (int mods=0) const
 矢印キーの現在の Y 値を得る. [詳解]
 
void getArrow (GLfloat *arrow, int mods=0) const
 矢印キーの現在の値を得る. [詳解]
 
GLfloat getShiftArrowX () const
 SHIFT キーを押しながら矢印キーを押したときの現在の X 値を得る. [詳解]
 
GLfloat getShiftArrowY () const
 SHIFT キーを押しながら矢印キーを押したときの現在の Y 値を得る. [詳解]
 
void getShiftArrow (GLfloat *shift_arrow) const
 SHIFT キーを押しながら矢印キーを押したときの現在の値を得る. [詳解]
 
GLfloat getControlArrowX () const
 CTRL キーを押しながら矢印キーを押したときの現在の X 値を得る. [詳解]
 
GLfloat getControlArrowY () const
 CTRL キーを押しながら矢印キーを押したときの現在の Y 値を得る. [詳解]
 
void getControlArrow (GLfloat *control_arrow) const
 CTRL キーを押しながら矢印キーを押したときの現在の値を得る. [詳解]
 
GLfloat getAltArrowX () const
 ALT キーを押しながら矢印キーを押したときの現在の X 値を得る. [詳解]
 
GLfloat getAltArrowY () const
 ALT キーを押しながら矢印キーを押したときの現在の Y 値を得る. [詳解]
 
void getAltlArrow (GLfloat *alt_arrow) const
 ALT キーを押しながら矢印キーを押したときの現在の値を得る. [詳解]
 
const GLfloat * getMouse () const
 マウスカーソルの現在位置を得る. [詳解]
 
void getMouse (GLfloat *position) const
 マウスカーソルの現在位置を得る. [詳解]
 
const GLfloat getMouse (int direction) const
 マウスカーソルの現在位置を得る. [詳解]
 
GLfloat getMouseX () const
 マウスカーソルの現在位置の X 座標を得る. [詳解]
 
GLfloat getMouseY () const
 マウスカーソルの現在位置の Y 座標を得る. [詳解]
 
const GLfloat * getWheel () const
 マウスホイールの回転量を得る. [詳解]
 
void getWheel (GLfloat *rotation) const
 マウスホイールの回転量を得る. [詳解]
 
GLfloat getWheel (int direction) const
 マウスホイールの回転量を得る. [詳解]
 
const GLfloat getWheelX () const
 マウスホイールの X 方向の回転量を得る. [詳解]
 
const GLfloat getWheelY () const
 マウスホイールの Y 方向の回転量を得る. [詳解]
 
const GLfloat * getLocation (int button=GLFW_MOUSE_BUTTON_1) const
 トラックボール処理を考慮したマウスによる現在位置のポインタを得る. [詳解]
 
GgMatrix getTranslation (int button=GLFW_MOUSE_BUTTON_1) const
 トラックボール処理を考慮したマウスによる平行移動の変換行列を得る. [詳解]
 
GgQuaternion getTrackballData (int button=GLFW_MOUSE_BUTTON_1) const
 トラックボールの回転変換行列を得る. [詳解]
 
GgMatrix getTrackball (int button=GLFW_MOUSE_BUTTON_1) const
 トラックボールの回転変換行列を得る. [詳解]
 
void reset_trackball ()
 トラックボール処理をリセットする [詳解]
 
void reset_translation ()
 現在位置と平行移動量をリセットする [詳解]
 
void reset ()
 トラックボール・マウスホイール・矢印キーの値を初期化する [詳解]
 
void * getUserPointer () const
 ユーザーポインタを取り出す. [詳解]
 
void setUserPointer (void *pointer)
 任意のユーザポインタを保存する. [詳解]
 
void setResizeFunc (void(*func)(const Window *window, int width, int height))
 ユーザ定義の resize 関数を設定する. [詳解]
 
void setKeyboardFunc (void(*func)(const Window *window, int key, int scancode, int action, int mods))
 ユーザ定義の keyboard 関数を設定する. [詳解]
 
void setMouseFunc (void(*func)(const Window *window, int button, int action, int mods))
 ユーザ定義の mouse 関数を設定する. [詳解]
 
void setResizeFunc (void(*func)(const Window *window, double x, double y))
 ユーザ定義の wheel 関数を設定する. [詳解]
 

静的公開メンバ関数

static void init (int major=0, int minor=1)
 初期化, 最初に一度だけ実行する. [詳解]
 

公開変数類

const int eyeCount = 1
 視点の数. [詳解]
 

詳解

ウィンドウ関連の処理.

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

Window.h88 行目に定義があります。

構築子と解体子

◆ Window() [1/2]

Window::Window ( const char *  title = "GLFW Window",
int  width = 640,
int  height = 480,
int  fullscreen = 0,
GLFWwindow *  share = nullptr 
)
inline

コンストラクタ.

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

Window.h650 行目に定義があります。

呼び出し関係図:

◆ Window() [2/2]

Window::Window ( const Window w)
delete

コピーコンストラクタは使用禁止.

◆ ~Window()

virtual Window::~Window ( )
inlinevirtual

デストラクタ.

Window.h922 行目に定義があります。

関数詳解

◆ get()

GLFWwindow* Window::get ( ) const
inline

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

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

Window.h1177 行目に定義があります。

◆ getAltArrowX()

GLfloat Window::getAltArrowX ( ) const
inline

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

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

Window.h1419 行目に定義があります。

◆ getAltArrowY()

GLfloat Window::getAltArrowY ( ) const
inline

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

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

Window.h1426 行目に定義があります。

◆ getAltlArrow()

void Window::getAltlArrow ( GLfloat *  alt_arrow) const
inline

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

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

Window.h1433 行目に定義があります。

◆ getArrow() [1/2]

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

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

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

Window.h1367 行目に定義があります。

◆ getArrow() [2/2]

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

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

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

Window.h1342 行目に定義があります。

◆ getArrowX()

GLfloat Window::getArrowX ( int  mods = 0) const
inline

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

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

Window.h1351 行目に定義があります。

◆ getArrowY()

GLfloat Window::getArrowY ( int  mods = 0) const
inline

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

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

Window.h1359 行目に定義があります。

◆ getAspect()

GLfloat Window::getAspect ( ) const
inline

ウィンドウのアスペクト比を得る.

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

Window.h1296 行目に定義があります。

被呼び出し関係図:

◆ getControlArrow()

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

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

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

Window.h1411 行目に定義があります。

◆ getControlArrowX()

GLfloat Window::getControlArrowX ( ) const
inline

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

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

Window.h1397 行目に定義があります。

◆ getControlArrowY()

GLfloat Window::getControlArrowY ( ) const
inline

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

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

Window.h1404 行目に定義があります。

◆ getHeight()

GLsizei Window::getHeight ( ) const
inline

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

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

Window.h1274 行目に定義があります。

◆ getKey()

bool Window::getKey ( int  key)
inline

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

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

Window.h1312 行目に定義があります。

◆ getLocation()

const GLfloat* Window::getLocation ( int  button = GLFW_MOUSE_BUTTON_1) const
inline

トラックボール処理を考慮したマウスによる現在位置のポインタを得る.

引数
button平行移動量を取得するマウスボタン (GLFW_MOUSE_BUTTON_[1,2]).
戻り値
現在位置のポインタ.

Window.h1524 行目に定義があります。

呼び出し関係図:

◆ getMouse() [1/3]

const GLfloat* Window::getMouse ( ) const
inline

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

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

Window.h1441 行目に定義があります。

◆ getMouse() [2/3]

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

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

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

Window.h1449 行目に定義があります。

◆ getMouse() [3/3]

const GLfloat Window::getMouse ( int  direction) const
inline

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

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

Window.h1459 行目に定義があります。

◆ getMouseX()

GLfloat Window::getMouseX ( ) const
inline

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

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

Window.h1467 行目に定義があります。

◆ getMouseY()

GLfloat Window::getMouseY ( ) const
inline

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

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

Window.h1475 行目に定義があります。

◆ getShiftArrow()

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

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

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

Window.h1389 行目に定義があります。

◆ getShiftArrowX()

GLfloat Window::getShiftArrowX ( ) const
inline

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

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

Window.h1375 行目に定義があります。

◆ getShiftArrowY()

GLfloat Window::getShiftArrowY ( ) const
inline

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

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

Window.h1382 行目に定義があります。

◆ getSize() [1/2]

const GLsizei* Window::getSize ( ) const
inline

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

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

Window.h1281 行目に定義があります。

◆ getSize() [2/2]

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

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

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

Window.h1288 行目に定義があります。

◆ getTrackball()

GgMatrix Window::getTrackball ( int  button = GLFW_MOUSE_BUTTON_1) const
inline

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

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

Window.h1554 行目に定義があります。

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

◆ getTrackballData()

GgQuaternion Window::getTrackballData ( int  button = GLFW_MOUSE_BUTTON_1) const
inline

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

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

Window.h1544 行目に定義があります。

呼び出し関係図:

◆ getTranslation()

GgMatrix Window::getTranslation ( int  button = GLFW_MOUSE_BUTTON_1) const
inline

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

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

Window.h1534 行目に定義があります。

呼び出し関係図:

◆ getUserPointer()

void* Window::getUserPointer ( ) const
inline

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

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

Window.h1608 行目に定義があります。

◆ getWheel() [1/3]

const GLfloat* Window::getWheel ( ) const
inline

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

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

Window.h1483 行目に定義があります。

◆ getWheel() [2/3]

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

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

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

Window.h1491 行目に定義があります。

◆ getWheel() [3/3]

GLfloat Window::getWheel ( int  direction) const
inline

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

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

Window.h1501 行目に定義があります。

◆ getWheelX()

const GLfloat Window::getWheelX ( ) const
inline

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

Window.h1508 行目に定義があります。

◆ getWheelY()

const GLfloat Window::getWheelY ( ) const
inline

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

Window.h1515 行目に定義があります。

◆ getWidth()

GLsizei Window::getWidth ( ) const
inline

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

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

Window.h1267 行目に定義があります。

◆ init()

static void Window::init ( int  major = 0,
int  minor = 1 
)
inlinestatic

初期化, 最初に一度だけ実行する.

引数
major使用する OpenGL の major 番号, 0 なら無指定.
minor使用する OpenGL の minor 番号, major 番号が 0 なら無視.

Window.h561 行目に定義があります。

被呼び出し関係図:

◆ operator bool()

Window::operator bool ( )
inline

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

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

Window.h1199 行目に定義があります。

呼び出し関係図:

◆ operator=()

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

代入演算子は使用禁止.

◆ reset()

void Window::reset ( )
inline

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

Window.h1597 行目に定義があります。

◆ reset_trackball()

void Window::reset_trackball ( )
inline

トラックボール処理をリセットする

Window.h1562 行目に定義があります。

◆ reset_translation()

void Window::reset_translation ( )
inline

現在位置と平行移動量をリセットする

Window.h1572 行目に定義があります。

◆ restoreViewport()

void Window::restoreViewport ( )
inline

ビューポートをウィンドウ全体に設定する.

Window.h1302 行目に定義があります。

◆ selectInterface()

void Window::selectInterface ( int  no)
inline

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

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

Window.h1324 行目に定義があります。

◆ setClose()

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

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

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

Window.h1184 行目に定義があります。

被呼び出し関係図:

◆ setKeyboardFunc()

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

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

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

Window.h1629 行目に定義があります。

◆ setMouseFunc()

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

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

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

Window.h1636 行目に定義があります。

◆ setResizeFunc() [1/2]

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

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

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

Window.h1643 行目に定義があります。

◆ setResizeFunc() [2/2]

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

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

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

Window.h1622 行目に定義があります。

◆ setUserPointer()

void Window::setUserPointer ( void *  pointer)
inline

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

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

Window.h1615 行目に定義があります。

◆ setVelocity()

void Window::setVelocity ( GLfloat  vx,
GLfloat  vy 
)
inline

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

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

Window.h1333 行目に定義があります。

◆ shouldClose()

bool Window::shouldClose ( ) const
inline

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

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

Window.h1191 行目に定義があります。

◆ swapBuffers()

void Window::swapBuffers ( )
inline

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

Window.h1251 行目に定義があります。

被呼び出し関係図:

メンバ詳解

◆ eyeCount

const int Window::eyeCount = 1

視点の数.

Window.h1171 行目に定義があります。


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