FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
AppWindow.h
[詳解]
1#if !defined(__FK_APP_WINDOW_HEADER__)
2#define __FK_APP_WINDOW_HEADER__
3
4#include <FK/Window.h>
5#include <FK/Light.h>
7#include <FK/GuideObject.h>
8#include <FK/TrackBall.h>
10#include <FK/SpriteModel.h>
11#include <FK/Fullscreen.h>
12
13namespace FK {
14
16
29 class Member {
30 public:
31 std::shared_ptr<Fl_Window> mainWin;
32 std::unique_ptr<fk_Window> drawWin;
33
34 fk_AppWindow *ref_child;
35 fk_FrameController fps_admin;
36 fk_GuideObject guide;
37 std::unique_ptr<fk_TrackBall> tb;
39
40 fk_Scene scene;
41 fk_Scene *ref_scene;
42
43 fk_Light lightShape;
44 fk_Model camera, light;
45 fk_Model *ref_camera;
46 int fps;
47 bool tbFlag, childMode;
48
49 Member(void);
50 };
51
52 public:
54#if defined(FK_CLI_CODE)
55#if defined(_WIN64)
56 fk_AppWindow(uint64_t *argCallbacks);
57#else
58 fk_AppWindow(uint32_t *argCallbacks);
59#endif
60#else
62#endif
67
70
72
79 void setWindowName(const std::string &name);
80
82
92 void setSize(int w, int h);
93
95
104 void setInnerSize(int x, int y, int w, int h);
105
107
120 void setBGColor(double r, double g, double b);
121
122
124
131 void setBGColor(const fk_Color &color);
132
134
148 void toFullscreen(void);
149
151
162 void toWindow(void);
164
167
169
174 void open(void);
175
177
187 void close(void);
188
190
206 bool update(bool forceFlag = false);
207
209
217 void setFPS(int fps);
219
220
223
225
241 void showGuide(fk_Guide mode =
246
248
254 void hideGuide(void);
255
256#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
258
266 void setGuideAxisWidth(double width);
267
269
277 void setGuideGridWidth(double width);
278#endif
279
281
289 void setGuideScale(double scale);
290
292
300 void setGuideNum(int num);
302
305
307
314 void setCameraPos(double x, double y, double z);
315
317
322 void setCameraPos(const fk_Vector &pos);
323
325
333 void setCameraFocus(double x, double y, double z);
334
336
342 void setCameraFocus(const fk_Vector &pos);
343
345
355
357
367
369
379
380
382
391
394
396
399 void setLightDefault(void);
400
402
408
410
417 void setDefaultLightVec(double x, double y, double z);
418
420
426
428
434
436
442
444
447
449
470 void setScene(fk_Scene *scene, bool defCameraAndLight = false);
471
473
494 void setScene(fk_Scene &scene, bool defCameraAndLight = false);
495
497
506
508
515 void setSceneDefault(void);
516
518
535 void entry(fk_Model *model);
536
538
547 void entry(fk_Model &model);
548
550
562 void entry(fk_Model *model, fk_GuideObject *guide);
563
565
577 void entry(fk_Model &model, fk_GuideObject &guide);
578
580
588 void entry(fk_SpriteModel *model);
589
591
599 void entry(fk_SpriteModel &model);
600
602
611 void entry(fk_Performer *chara);
612
614
623 void entry(fk_Performer &chara);
624
626
634 void remove(fk_Model *model);
635
637
645 void remove(fk_Model &model);
646
648
660 void remove(fk_Model *model, fk_GuideObject *guide);
661
663
675 void remove(fk_Model &model, fk_GuideObject &guide);
676
678
687 void remove(fk_SpriteModel *model);
688
690
699 void remove(fk_SpriteModel &model);
700
702
711 void remove(fk_Performer *chara);
712
714
723 void remove(fk_Performer &chara);
724
726
734 void clearModel(bool defCameraAndLight = false);
736
737
740
742
767 bool getKeyStatus(char keyChar, fk_Switch status, bool insideFlg = false);
768
770
790 bool getKeyStatus(char keyChar, bool insideFlg = false);
791
793
821 bool getSpecialKeyStatus(fk_Key keyCode, fk_Switch status, bool insideFlg = false);
822
824
848 bool getSpecialKeyStatus(fk_Key keyCode, bool insideFlg = false);
849
851
870 bool getKeyStatus(fk_Key key, fk_Switch status, bool insideFlag = true);
871
873
889 bool getKeyStatus(fk_Key key, bool insideFlag = true);
890
892
895
897
916 fk_Switch status, bool insideFlag);
917
918#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
920#endif
921
923
936
938
953 void setCursorState(bool visible, bool center);
955
958
960
968 void setTrackBallMode(bool mode);
969
971
981 void procMouseView(fk_Model *camera, double spinX, double spinY, bool lockSW);
982
984
994 void procMouseView(fk_Model &camera, double spinX, double spinY, bool lockSW);
996
999
1001
1020 std::tuple<bool, fk_Vector> getProjectPosition(double x, double y, fk_Plane &plane);
1021
1022#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
1023 bool getProjectPosition(double x, double y, fk_Plane *plane, fk_Vector *pos);
1024#endif
1025
1027
1043 std::tuple<bool, fk_Vector> getProjectPosition(double x, double y, double dist);
1044
1045#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
1046 bool getProjectPosition(double x, double y, double dist, fk_Vector *pos);
1047#endif
1049
1069 std::tuple<bool, fk_Vector> getWindowPosition(fk_Vector &pos_3D);
1070
1071#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
1072 bool getWindowPosition(fk_Vector pos_3D, fk_Vector *pos_2D);
1073#endif
1075
1078
1080
1096 bool snapImage(std::string fileName,
1099
1101
1114 bool snapImage(fk_Image *image,
1116
1118
1121
1123
1151
1153
1159
1161
1166 void setShadowVec(const fk_Vector &v);
1167
1169
1176 void setShadowVec(double x, double y, double z);
1177
1179
1185
1187
1207 void setShadowResolution(int resolution);
1208
1210
1218
1220
1231 void setShadowAreaSize(double size);
1232
1234
1241 double getShadowAreaSize(void);
1242
1244
1255 void setShadowDistance(double distance);
1256
1258
1265 double getShadowDistance(void);
1266
1268
1276 void setShadowVisibility(double value);
1277
1279
1285
1287
1301 void setShadowBias(double bias);
1302
1304
1309 double getShadowBias(void);
1310
1312
1315
1317
1346 void setFogMode(const fk_FogMode mode);
1347
1349
1356 void setFogDensity(const double d);
1357
1359
1369 void setFogLinearMap(const double S, const double E);
1370
1372
1379 void setFogColor(const fk_Color &col);
1380
1382
1393 void setFogColor(float r, float g, float b, float a);
1394
1396
1407 void setFogColor(double r, double g, double b, double a);
1408
1410
1417
1419
1426 double getFogDensity(void) const;
1427
1429
1436 double getFogLinearStart(void) const;
1437
1439
1446 double getFogLinearEnd(void) const;
1447
1449
1455
1457
1458#if !defined(FK_DOXYGEN_USER_PROCESS)
1459 void SetFinalizeMode(void);
1460 fk_Window * GetDrawWin(void) const;
1461#endif
1462
1463 private:
1464 //friend class fk_ShaderBinder;
1465 std::unique_ptr<Member> _m;
1466
1467 //void ToggleScreen(void);
1468 };
1469
1470#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
1471 using fkut_SimpleWindow = fk_AppWindow;
1472#endif
1473}
1474
1475#endif
1476
1477/****************************************************************************
1478 *
1479 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
1480 *
1481 * Redistribution and use in source and binary forms,
1482 * with or without modification, are permitted provided that the
1483 * following conditions are met:
1484 *
1485 * - Redistributions of source code must retain the above
1486 * copyright notice, this list of conditions and the
1487 * following disclaimer.
1488 *
1489 * - Redistributions in binary form must reproduce the above
1490 * copyright notice, this list of conditions and the
1491 * following disclaimer in the documentation and/or
1492 * other materials provided with the distribution.
1493 *
1494 * - Neither the name of the copyright holders nor the names
1495 * of its contributors may be used to endorse or promote
1496 * products derived from this software without specific
1497 * prior written permission.
1498 *
1499 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1500 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1501 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
1502 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
1503 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
1504 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1505 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1506 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1507 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1508 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1509 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1510 * POSSIBILITY OF SUCH DAMAGE.
1511 *
1512 ****************************************************************************/
1513/****************************************************************************
1514 *
1515 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
1516 *
1517 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
1518 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
1519 *
1520 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
1521 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
1522 *
1523 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
1524 * および下記免責条項を含めること。
1525 *
1526 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
1527 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
1528 * 含めること。
1529 *
1530 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
1531 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
1532 * コントリビューターの名前を使用してはならない。
1533 *
1534 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
1535 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
1536 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
1537 * に限定されない、いかなる保証もないものとします。著作権者もコン
1538 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
1539 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
1540 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
1541 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
1542 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
1543 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
1544 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
1545 * ついて、一切責任を負わないものとします。
1546 *
1547 ****************************************************************************/
アプリケーションウィンドウクラス
Definition AppWindow.h:28
void setDefaultLightVec(const fk_Vector &v)
デフォルト光源方向設定関数1
void setSceneDefault(void)
シーン設定初期化関数
double getFogLinearEnd(void) const
霧線形式係数取得関数1
void setTrackBallMode(bool mode)
トラックボールモード制御関数
void setFogDensity(const double d)
霧指数式係数設定関数
void setShadowVisibility(double value)
影濃度設定関数
void setShadowVec(double x, double y, double z)
影光線方向設定関数2
void setCursorState(bool visible, bool center)
マウスカーソル表示制御関数
double getShadowBias(void)
影バイアス値取得関数
void setShadowMode(fk_ShadowMode mode)
影表示設定変更関数
fk_AppWindow(void)
コンストラクタ
bool snapImage(fk_Image *image, fk_SnapProcMode mode=fk_SnapProcMode::FRONT)
描画画像データ出力関数
void entry(fk_Performer &chara)
fk_Performer モデル登録関数2
bool getMouseStatus(fk_MouseButton buttonCode, fk_Switch status, bool insideFlag)
マウスボタン状態取得関数
double getShadowAreaSize(void)
シャドウマップ領域取得関数
void remove(fk_SpriteModel &model)
スプライトモデル表示解除関数2
std::tuple< bool, fk_Vector > getProjectPosition(double x, double y, double dist)
投影平面から任意距離での射影点算出関数
double getFogDensity(void) const
霧指数式係数取得関数
void procMouseView(fk_Model *camera, double spinX, double spinY, bool lockSW)
FPS視点的カメラ制御関数1
void setShadowDistance(double distance)
シャドウマップ領域奥行き幅設定関数
void remove(fk_Performer *chara)
fk_Performer モデル表示解除関数1
void setLightDefault(void)
光源初期化関数
void setScene(fk_Scene &scene, bool defCameraAndLight=false)
シーン設定関数2
void entry(fk_SpriteModel &model)
スプライトモデル登録関数2
void setShadowVec(const fk_Vector &v)
影光線方向設定関数1
void toFullscreen(void)
フルスクリーン化関数
void setCameraDefault(void)
カメラ初期化関数
void remove(fk_SpriteModel *model)
スプライトモデル表示解除関数1
void procMouseView(fk_Model &camera, double spinX, double spinY, bool lockSW)
FPS視点的カメラ制御関数2
void setScene(fk_Scene *scene, bool defCameraAndLight=false)
シーン設定関数1
bool snapImage(std::string fileName, fk_ImageType format=fk_ImageType::BMP, fk_SnapProcMode mode=fk_SnapProcMode::FRONT)
描画画像ファイル出力関数
void setCameraFocus(const fk_Vector &pos)
カメラ注視点設定関数2
fk_ShadowMode getShadowMode(void)
影表示設定参照関数
void setFogLinearMap(const double S, const double E)
霧線形式係数設定関数
void entry(fk_Performer *chara)
fk_Performer モデル登録関数1
void toWindow(void)
ウィンドウ化関数
void remove(fk_Model *model, fk_GuideObject *guide)
座標軸付きモデル表示解除関数1
~fk_AppWindow(void)
デストラクタ
bool getKeyStatus(fk_Key key, fk_Switch status, bool insideFlag=true)
特殊キー状態取得関数3
void setFogColor(double r, double g, double b, double a)
霧色設定関数3
void clearModel(bool defCameraAndLight=false)
全モデル登録解除関数
void setFogColor(const fk_Color &col)
霧色設定関数1
fk_AppWindow(fk_AppWindow &parent)
子ウィンドウ作成時用コンストラクタ
bool getKeyStatus(char keyChar, fk_Switch status, bool insideFlg=false)
通常キー状態取得関数1
void setBGColor(double r, double g, double b)
背景色設定関数1
void entry(fk_SpriteModel *model)
スプライトモデル登録関数1
fk_Material * getDefaultLightMaterial(void)
デフォルト光源マテリアル取得関数
void setFogMode(const fk_FogMode mode)
霧減衰関数設定関数
void setDefaultLightVec(double x, double y, double z)
デフォルト光源方向設定関数2
double getShadowDistance(void)
シャドウマップ領域奥行き幅取得関数
void setSize(int w, int h)
ウィンドウサイズ設定関数
bool getSpecialKeyStatus(fk_Key keyCode, fk_Switch status, bool insideFlg=false)
特殊キー状態取得関数1
fk_Vector getMousePosition(void)
マウスポインタ位置取得関数
fk_Vector getShadowVec(void)
影光線方向取得関数
void entry(fk_Model &model)
モデル表示登録関数2
void setCameraPos(const fk_Vector &pos)
カメラ位置設定関数2
void setGuideNum(int num)
グリッド数設定関数
void remove(fk_Model &model, fk_GuideObject &guide)
座標軸付きモデル表示解除関数2
void remove(fk_Performer &chara)
fk_Performer モデル表示解除関数2
void setCameraFocus(double x, double y, double z)
カメラ注視点設定関数1
int getShadowResolution(void)
シャドウマップ解像度取得関数
std::tuple< bool, fk_Vector > getProjectPosition(double x, double y, fk_Plane &plane)
投影平面から任意平面への射影点算出関数
void setCameraPos(double x, double y, double z)
カメラ位置設定関数1
void setShadowAreaSize(double size)
シャドウマップ領域設定関数
void setGuideScale(double scale)
グリッド幅設定関数
void entry(fk_Model *model, fk_GuideObject *guide)
座標軸付きモデル表示登録関数1
bool getSpecialKeyStatus(fk_Key keyCode, bool insideFlg=false)
特殊キー状態取得関数2
fk_FogMode getFogMode(void) const
霧減衰関数取得関数
void setShadowBias(double bias)
影バイアス値設定関数
void setWindowName(const std::string &name)
ウィンドウタイトル設定関数
void setCameraModel(fk_Model *model)
カメラモデル設定関数1
double getFogLinearStart(void) const
霧線形式係数取得関数1
void remove(fk_Model *model)
モデル表示解除関数1
fk_Scene * getScene(void)
シーン取得関数
bool getKeyStatus(fk_Key key, bool insideFlag=true)
特殊キー状態取得関数4
void setFPS(int fps)
FPS設定関数
void setCameraModel(fk_Model &model)
カメラモデル設定関数2
void entry(fk_Model *model)
モデル表示登録関数1
void setBGColor(const fk_Color &color)
背景色設定関数2
std::tuple< bool, fk_Vector > getWindowPosition(fk_Vector &pos_3D)
空間座標から投影座標への射影点算出関数
void setDefaultLightMaterial(const fk_Material &mat)
デフォルト光源マテリアル設定関数
double getShadowVisibility(void)
影濃度取得関数
fk_Vector getDefaultLightVec(void)
デフォルト光源方向取得関数
void hideGuide(void)
グリッド・軸消去関数
bool getKeyStatus(char keyChar, bool insideFlg=false)
通常キー状態取得関数2
void setInnerSize(int x, int y, int w, int h)
描画領域サイズ設定関数
fk_Color getFogColor(void) const
霧霧色取得関数
void remove(fk_Model &model)
モデル表示解除関数2
bool update(bool forceFlag=false)
シーン描画関数
fk_Model * getCameraModel(void)
カメラモデル取得関数
void showGuide(fk_Guide mode=fk_Guide::AXIS_X|fk_Guide::AXIS_Y|fk_Guide::AXIS_Z|fk_Guide::GRID_XZ)
グリッド・軸設定関数
void setShadowResolution(int resolution)
シャドウマップ解像度設定関数
void close(void)
ウィンドウ破棄関数
void setFogColor(float r, float g, float b, float a)
霧色設定関数2
void entry(fk_Model &model, fk_GuideObject &guide)
座標軸付きモデル表示登録関数2
void open(void)
ウィンドウ生成関数
RGB色を管理するクラス
Definition Color.h:21
フレームレート制御クラス
Definition FrameController.h:28
フルスクリーン制御クラス
Definition Fullscreen.h:26
座標系可視化支援クラス
Definition GuideObject.h:43
画像を生成、管理するクラス
Definition Image.h:260
光源を管理するクラス
Definition Light.h:48
マテリアル(質感)を管理するクラス
Definition Material.h:40
モデルを生成、管理するクラス
Definition Model.h:98
FK Performer キャラクターランタイムクラス
Definition MotionCharactor.h:43
幾何平面を管理するクラス
Definition Plane.h:32
シーンを制御するクラス
Definition Scene.h:48
2D スプライトモデルクラス
Definition SpriteModel.h:36
3次元ベクトルを管理するクラス
Definition Vector.h:45
FLTK 用シーン描画ウィジェットクラス
Definition Window.h:120
Fine Kernel Toolkit 名前空間
Definition Angle.h:6
fk_Key
特殊キーを表す列挙型
Definition Window.h:24
fk_SnapProcMode
画像取り込み方法を表す列挙型
Definition Image.h:56
@ FRONT
OpenGL フロントバッファ
fk_ShadowMode
影モードを表す列挙型
Definition Scene.h:9
fk_FogMode
霧効果の減衰関数を表す列挙型
Definition Fog.h:10
fk_ImageType
画像フォーマットを表す列挙型
Definition Image.h:49
@ BMP
Windows Bitmap (BMP) 形式
fk_Guide
座標ガイドを表す列挙型
Definition GuideObject.h:9
@ GRID_XZ
xz 平面
fk_Switch
ボタン系デバイス状態を表す列挙型
Definition Window.h:77
fk_MouseButton
マウスボタンを表す列挙型
Definition Window.h:61