1#if !defined(__FK_WINDOW_HEADER__)
2#define __FK_WINDOW_HEADER__
8#include <FL/Fl_Gl_Window.H>
9#include <FL/Fl_Multi_Browser.H>
20 class fk_GraphicsEngine;
122#if !defined(FK_DOXYGEN_USER_PROCESS)
132 std::map<char, bool> keyStatus;
133 std::map<char, bool> keyPrev;
134 std::map<fk_Key, bool> specialKeyStatus;
135 std::map<fk_Key, bool> specialKeyPrev;
136 std::map<fk_MouseButton, bool> mouseStatus;
137 std::map<fk_MouseButton, bool> mousePrev;
138 double frameTime, prevTime;
139 double frameInterval;
143#if !defined(FK_OLD_NONSUPPORT)
147 Member(
int,
int,
int,
int);
161 fk_Window(
int x = 0,
int y = 0,
int w = 300,
int h = 300, std::string name =
"FK Window");
453#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
487#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
549#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
571#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
597#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
654#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
655 virtual void preDrawLeft(
void) {}
656 virtual void postDrawLeft(
void) {}
657 virtual void preDrawRight(
void) {}
658 virtual void postDrawRight(
void) {}
661#if !defined(FK_DOXYGEN_USER_PROCESS)
662 std::list<fk_funcSet> preDrawList;
663 std::list<fk_funcSet> postDrawList;
783#if !defined(FK_CLI_CODE)
799 static void printf(
const char *format, ...);
834#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
859 void setOGLStereoMode(
bool mode);
875 bool getOGLStereoMode(
void);
879#if !defined(FK_DOXYGEN_USER_PROCESS)
880 fk_GraphicsEngine * GetEngine(
void);
884 std::unique_ptr<Member> _m;
886 static inline std::unique_ptr<Fl_Window> _s_putWin;
887 static inline Fl_Multi_Browser * _s_browser;
888 static inline std::unique_ptr<fk_PutStrMode> _s_putStrMode;
889 static inline std::unique_ptr<std::ofstream> _s_putStrOFS;
890 static inline std::unique_ptr<int> _s_winNum;
892 static inline std::unique_ptr<Fl_Window> _s_error_win;
893 static inline std::map<fk_Key, int> _keyMap;
895 bool IsInsideWindow(
void);
896 Fl_Group * GetInhParentWindow(
void);
897 void PushPrevStatus(
void);
901 static void PutBrowser(
const std::string &);
906 static void ErrorInit(
void);
907 static void MakeKeyMap(
void);
909 static void StaticInit(
void);
914#if !defined(FK_DOXYGEN_USER_PROCESS)
915 std::unique_ptr<fk_GraphicsEngine> _m_engine;
917 void drawScene(
void);
918 void drawSceneLeft(
void);
919 void drawSceneRight(
void);
フレームレート制御クラス
Definition FrameController.h:28
画像を生成、管理するクラス
Definition Image.h:260
幾何平面を管理するクラス
Definition Plane.h:32
シーンを制御するクラス
Definition Scene.h:48
3次元ベクトルを管理するクラス
Definition Vector.h:45
char getLastKey(void)
最終押下キー取得関数
bool getKeyStatus(fk_Key key, fk_Switch status, bool insideFlag=true)
特殊キー状態取得関数3
virtual ~fk_Window()
デストラクタ
bool snapImage(fk_Image *image, fk_SnapProcMode mode=fk_SnapProcMode::FRONT)
描画画像データ出力関数
int getMouseWheelStatus(void)
マウスホイール回転量取得関数
int drawWindow(bool drawFlag=true)
描画更新関数
bool getSpecialKeyStatus(fk_Key key, fk_Switch status, bool insideFlag=true)
特殊キー状態取得関数1
bool winOpenStatus(void)
描画状態取得関数
std::tuple< bool, fk_Vector > getProjectPosition(double x, double y, fk_Plane &plane)
投影平面から任意平面への射影点算出関数
bool getKeyStatus(char key, fk_Switch status, bool insideFlag=true)
標準キー状態取得関数1
static bool setPutFile(const std::string &fileName)
メッセージ出力用ファイル設定関数
static void printf(const char *format,...)
メッセージ出力書式付き設定関数
virtual void preDraw(void)
描画前処理関数
Definition Window.h:640
fk_Window(int x=0, int y=0, int w=300, int h=300, std::string name="FK Window")
コンストラクタ
std::tuple< bool, fk_Vector > getWindowPosition(fk_Vector &pos_3D)
空間座標から投影座標への射影点算出関数
virtual void postInit(void)
初期化後処理関数
Definition Window.h:629
static void clearBrowser(void)
メッセージ出力用ブラウザ初期化関数
static void putString(const std::string &str)
メッセージ出力文字列設定関数
bool getKeyStatus(fk_Key key, bool insideFlag=true)
特殊キー状態取得関数4
virtual void postDraw(void)
描画後処理関数
Definition Window.h:651
bool snapImage(std::string fileName, fk_ImageType format=fk_ImageType::BMP, fk_SnapProcMode mode=fk_SnapProcMode::FRONT)
描画画像ファイル出力関数
bool getMouseStatus(fk_MouseButton button, fk_Switch status, bool insideFlag=true)
マウスボタン状態取得関数
void resizeWindow(int x, int y, int w, int h)
描画領域寸法変更関数
bool getKeyStatus(char key, bool insideFlag=true)
標準キー状態取得関数2
bool getSpecialKeyStatus(fk_Key key, bool insideFlag=true)
特殊キー状態取得関数2
virtual void preInit(void)
初期化前処理関数
Definition Window.h:616
static fk_PutStrMode getPutStrMode(void)
メッセージ出力モード参照関数
static void setPutStrMode(const fk_PutStrMode mode)
メッセージ出力モード設定関数
std::tuple< int, int > getMousePosition(bool insideFlag=true)
マウスポインタ位置取得関数
void setScene(fk_Scene *scene)
シーン登録関数
static void fontInit(void)
フォント初期化関数
std::tuple< bool, fk_Vector > getProjectPosition(double x, double y, double dist)
投影平面から任意距離での射影点算出関数
Fine Kernel Toolkit 名前空間
Definition Angle.h:6
fk_PutStrMode
メッセージ出力タイプを表す列挙型
Definition Window.h:68
@ CONSOLE
コンソール標準出力
Definition Window.h:70
@ ERR_CONSOLE
コンソールエラー出力
Definition Window.h:71
@ BROWSER
専用ブラウザ出力
Definition Window.h:72
@ FILE
ファイル出力
Definition Window.h:73
@ NONE
未定義境界
Definition Boundary.h:19
fk_Key
特殊キーを表す列挙型
Definition Window.h:24
@ F6
F6 ファンクションキー
Definition Window.h:50
@ DEL
デリート(削除)キー
Definition Window.h:33
@ CTRL_R
右コントロールキー
Definition Window.h:27
@ ENTER
エンター(改行、リターン)キー
Definition Window.h:31
@ F5
F5 ファンクションキー
Definition Window.h:49
@ F7
F7 ファンクションキー
Definition Window.h:51
@ F8
F8 ファンクションキー
Definition Window.h:52
@ F3
F3 ファンクションキー
Definition Window.h:47
@ ALT_R
右オルトキー
Definition Window.h:29
@ SHIFT_R
右シフトキー
Definition Window.h:25
@ INSERT
インサートキー
Definition Window.h:40
@ SHIFT_L
左シフトキー
Definition Window.h:26
@ F11
F11 ファンクションキー
Definition Window.h:55
@ SPACE
スペースキー
Definition Window.h:57
@ BACKSPACE
バックスペース(後退)キー
Definition Window.h:32
@ HOME
ホームキー
Definition Window.h:38
@ F9
F9 ファンクションキー
Definition Window.h:53
@ ALT_L
左オルトキー
Definition Window.h:30
@ END
エンドキー
Definition Window.h:39
@ F10
F10 ファンクションキー
Definition Window.h:54
@ DOWN
下矢印キー
Definition Window.h:44
@ F1
F1 ファンクションキー
Definition Window.h:45
@ CAPS_LOCK
キャップスロックキー
Definition Window.h:34
@ PAGE_UP
ページアップキー
Definition Window.h:36
@ F4
F4 ファンクションキー
Definition Window.h:48
@ F12
F12 ファンクションキー
Definition Window.h:56
@ PAGE_DOWN
ページダウンキー
Definition Window.h:37
@ CTRL_L
左コントロールキー
Definition Window.h:28
@ TAB
タブキー
Definition Window.h:35
@ UP
上矢印キー
Definition Window.h:43
@ F2
F2 ファンクションキー
Definition Window.h:46
fk_SnapProcMode
画像取り込み方法を表す列挙型
Definition Image.h:56
@ FRONT
OpenGL フロントバッファ
Definition Image.h:57
fk_ImageType
画像フォーマットを表す列挙型
Definition Image.h:49
@ BMP
Windows Bitmap (BMP) 形式
Definition Image.h:50
fk_Switch
ボタン系デバイス状態を表す列挙型
Definition Window.h:77
@ RELEASE
離しっぱなしの状態
Definition Window.h:78
@ PRESS
押しっぱなしの状態
Definition Window.h:81
@ RIGHT
右目側
Definition DList.h:15
@ LEFT
左目側
Definition DList.h:14
fk_MouseButton
マウスボタンを表す列挙型
Definition Window.h:61
@ M2
マウス中クリック、あるいはホイールクリック(第2ボタン)
Definition Window.h:63
@ M3
マウス右クリック(第3ボタン)
Definition Window.h:64
@ M1
マウス左クリック(第1ボタン)
Definition Window.h:62