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<fk_Key, bool> specialKeyStatus;
134 std::map<fk_MouseButton, bool> mouseStatus;
135 double frameTime, prevTime;
136 double frameInterval;
140#if !defined(FK_OLD_NONSUPPORT)
144 Member(
int,
int,
int,
int);
158 fk_Window(
int x = 0,
int y = 0,
int w = 300,
int h = 300, std::string name =
"FK Window");
450#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
484#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
546#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
568#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
594#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
651#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
652 virtual void preDrawLeft(
void) {}
653 virtual void postDrawLeft(
void) {}
654 virtual void preDrawRight(
void) {}
655 virtual void postDrawRight(
void) {}
658#if !defined(FK_DOXYGEN_USER_PROCESS)
659 std::list<fk_funcSet> preDrawList;
660 std::list<fk_funcSet> postDrawList;
780#if !defined(FK_CLI_CODE)
796 static void printf(
const char *format, ...);
831#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
856 void setOGLStereoMode(
bool mode);
872 bool getOGLStereoMode(
void);
876#if !defined(FK_DOXYGEN_USER_PROCESS)
877 fk_GraphicsEngine * GetEngine(
void);
881 std::unique_ptr<Member> _m;
883 static inline std::unique_ptr<Fl_Window> _s_putWin;
884 static inline Fl_Multi_Browser * _s_browser;
885 static inline std::unique_ptr<fk_PutStrMode> _s_putStrMode;
886 static inline std::unique_ptr<std::ofstream> _s_putStrOFS;
887 static inline std::unique_ptr<int> _s_winNum;
889 static inline std::unique_ptr<Fl_Window> _s_error_win;
890 static inline std::map<fk_Key, int> _keyMap;
892 bool IsInsideWindow(
void);
893 Fl_Group * GetInhParentWindow(
void);
894 void PushPrevStatus(
void);
898 static void PutBrowser(
const std::string &);
903 static void ErrorInit(
void);
904 static void MakeKeyMap(
void);
906 static void StaticInit(
void);
911#if !defined(FK_DOXYGEN_USER_PROCESS)
912 std::unique_ptr<fk_GraphicsEngine> _m_engine;
914 void drawScene(
void);
915 void drawSceneLeft(
void);
916 void drawSceneRight(
void);
フレームレート制御クラス
Definition FrameController.h:28
画像を生成、管理するクラス
Definition Image.h:260
幾何平面を管理するクラス
Definition Plane.h:32
シーンを制御するクラス
Definition Scene.h:48
3次元ベクトルを管理するクラス
Definition Vector.h:45
FLTK 用シーン描画ウィジェットクラス
Definition Window.h:120
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:637
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:626
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:648
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:613
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
fk_Key
特殊キーを表す列挙型
Definition Window.h:24
fk_SnapProcMode
画像取り込み方法を表す列挙型
Definition Image.h:56
fk_ImageType
画像フォーマットを表す列挙型
Definition Image.h:49
@ BMP
Windows Bitmap (BMP) 形式
fk_Switch
ボタン系デバイス状態を表す列挙型
Definition Window.h:77
fk_MouseButton
マウスボタンを表す列挙型
Definition Window.h:61
@ M2
マウス中クリック、あるいはホイールクリック(第2ボタン)