FineKernelToolKit 3.1.0

- 総合概要
- 名前空間
- クラス
- ファイル

- ファイル一覧

AppWindow_CLI.h
[詳解]
1 // AppWindow_CLI.h
2
3 #pragma once
4
5 #include <FK/SimpleWindow.h>
6 #include "GuideObject_CLI.h"
7 #include "SpriteModel_CLI.h"
8 #include "Performer_CLI.h"
9 #include "Plane_CLI.h"
10
11 namespace FK_CLI
12 {
13 public enum class fk_SpecialKey {
14 SHIFT_R,
15 SHIFT_L,
16 CTRL_R,
17 CTRL_L,
18 ALT_R,
19 ALT_L,
20 ENTER,
21 BACKSPACE,
22 DELETEKEY,
23 CAPS_LOCK,
24 TAB,
25 PAGE_UP,
26 PAGE_DOWN,
27 HOME,
28 END,
29 INSERT,
30 LEFT,
31 RIGHT,
32 UP,
33 DOWN,
34 F1,
35 F2,
36 F3,
37 F4,
38 F5,
39 F6,
40 F7,
41 F8,
42 F9,
43 F10,
44 F11,
45 F12
46 };
47
49 public enum class fk_MouseButton {
50 MOUSE1,
51 MOUSE2,
52 MOUSE3
53 };
54
56 public enum class fk_SwitchStatus {
57 RELEASE,
58 UP,
59 DOWN,
60 PRESS
61 };
62
64
75 public ref class fk_AppWindow : public fk_IBindableDrawer {
76 internal:
77 ::fk_AppWindow *pWin;
78 fk_Scene^ scene;
79
80 delegate void ShaderCallback(void);
81 ShaderCallback^ preInit;
82 ShaderCallback^ postInit;
83 ShaderCallback^ preDraw;
84 ShaderCallback^ postDraw;
85 ShaderCallback^ preDrawLeft;
86 ShaderCallback^ postDrawLeft;
87 ShaderCallback^ preDrawRight;
88 ShaderCallback^ postDrawRight;
89
90 ::fk_AppWindow * GetP(void);
91 ::fk_SpecialKey GetSK(fk_SpecialKey);
92 ::fk_SwitchStatus GetSS(fk_SwitchStatus);
93
94 public:
96 fk_AppWindow();
97
99 ~fk_AppWindow();
100
102 !fk_AppWindow();
103
105
110 property String^ WindowName {
111 void set(String^);
112 }
113
115
123 property fk_Dimension^ Size {
124 void set(fk_Dimension^);
125 }
126
128
137 property fk_Rect^ InnerSize {
138 void set(fk_Rect^);
139 }
140
142
153 property fk_Color^ BGColor {
154 void set(fk_Color^);
155 }
156
158
166 property int FPS {
167 void set(int);
168 }
169
171
179 property double AxisWidth {
180 void set(double);
181 }
182
184
192 property double GridWidth {
193 void set(double);
194 }
195
197
205 property double GuideScale {
206 void set(double);
207 }
208
210
218 property int GuideNum {
219 void set(int);
220 }
221
223
232 property fk_Vector^ CameraPos {
233 void set(fk_Vector^);
234 fk_Vector^ get();
235 }
236
238
246 property fk_Vector^ CameraFocus {
247 void set(fk_Vector^);
248 }
249
251
263 property fk_Model^ CameraModel {
264 void set(fk_Model^);
265 fk_Model^ get();
266 }
267
269
284 property fk_Scene^ Scene {
285 void set(fk_Scene^);
286 fk_Scene^ get();
287 }
288
290
301 property fk_Vector^ MousePosition {
302 fk_Vector^ get();
303 }
304
306
313 property bool TrackBallMode {
314 void set(bool);
315 }
316
318
319
321
327 void SetCameraDefault(void);
329
331
332
355 void SetScene(fk_Scene^ scene, bool defCameraAndLight);
356
358
364 void SetSceneDefault(void);
365
367
384 void Entry(fk_Model^ model);
385
387
398 void Entry(fk_Model^ model, fk_GuideObject^ guide);
399
401
408 void Entry(fk_SpriteModel^ model);
409
411
419 void Entry(fk_Performer^ chara);
420
422
430 void Remove(fk_Model^ model);
431
433
443 void Remove(fk_Model^ model, fk_GuideObject^ guide);
444
446
455 void Remove(fk_SpriteModel^ model);
456
458
467 void Remove(fk_Performer^ chara);
468
470
478 void ClearModel(bool defCameraAndLight);
479
481
487 void ClearModel(void);
489
491
492
498 void Open(void);
499
501
511 void Close(void);
512
514
529 bool Update(bool forceFlg);
530
532
540 bool Update(void);
542
544
545
547
562 void ShowGuide(fk_GuideMode mode);
563
565
573 void ShowGuide(void);
574
576
582 void HideGuide(void);
584
586
587
589
621 bool GetKeyStatus(wchar_t key, fk_SwitchStatus status, bool insideFlag);
622
624
653 bool GetKeyStatus(wchar_t key, fk_SwitchStatus status);
654
656
689 bool GetSpecialKeyStatus(fk_SpecialKey keyCode,
690 fk_SwitchStatus status, bool insideFlag);
691
693
723 bool GetSpecialKeyStatus(fk_SpecialKey keyCode, fk_SwitchStatus status);
725
727
728
730
754 bool GetMouseStatus(fk_MouseButton buttonCode, fk_SwitchStatus status, bool insideFlag);
755
757
769 void SetCursorState(bool visible, bool center);
770
771
773
799 bool IsModelPicked(fk_Model^ model, int pixel, int mouseX, int mouseY);
800
802
817 bool IsModelPicked(fk_Model^ model, int pixel);
818
820
835 bool IsModelPicked(fk_Model^ model);
836
838
848 void ProcMouseView(fk_Model^ camera, double x, double y, bool lockSW);
850
852
853
855
872 bool GetProjectPosition(double x, double y,
873 fk_Plane^ plane, fk_Vector^ pos);
874
876
889 bool GetProjectPosition(double x, double y,
890 double dist, fk_Vector^ pos);
891
893
909 bool GetWindowPosition(fk_Vector^ pos_3D, fk_Vector^ pos_2D);
911
912 #ifndef FK_DOXYGEN_USER_PROCESS
913 event fk_DrawCallback^ PreInit;
914 event fk_DrawCallback^ PostInit;
915 virtual event fk_DrawCallback^ PreDraw;
916 virtual event fk_DrawCallback^ PostDraw;
917 event fk_DrawCallback^ PreDrawLeft;
918 event fk_DrawCallback^ PostDrawLeft;
919 event fk_DrawCallback^ PreDrawRight;
920 event fk_DrawCallback^ PostDrawRight;
921
922 virtual void OnPreInit()
923 {
924 PreInit();
925 };
926
927 virtual void OnPostInit()
928 {
929 PostInit();
930 };
931
932 virtual void OnPreDraw()
933 {
934 PreDraw();
935 };
936
937 virtual void OnPostDraw()
938 {
939 PostDraw();
940 };
941
942 virtual void OnPreDrawLeft()
943 {
944 PreDrawLeft();
945 };
946
947 virtual void OnPostDrawLeft()
948 {
949 PostDrawLeft();
950 };
951
952 virtual void OnPreDrawRight()
953 {
954 PreDrawRight();
955 };
956
957 virtual void OnPostDrawRight()
958 {
959 PostDrawRight();
960 };
961
962 #endif
963 };
964 }
965
966 /****************************************************************************
967 *
968 * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
969 *
970 * Redistribution and use in source and binary forms,
971 * with or without modification, are permitted provided that the
972 * following conditions are met:
973 *
974 * - Redistributions of source code must retain the above
975 * copyright notice, this list of conditions and the
976 * following disclaimer.
977 *
978 * - Redistributions in binary form must reproduce the above
979 * copyright notice, this list of conditions and the
980 * following disclaimer in the documentation and/or
981 * other materials provided with the distribution.
982 *
983 * - Neither the name of the copyright holders nor the names
984 * of its contributors may be used to endorse or promote
985 * products derived from this software without specific
986 * prior written permission.
987 *
988 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
989 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
990 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
991 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
992 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
993 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
994 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
995 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
996 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
997 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
998 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
999 * POSSIBILITY OF SUCH DAMAGE.
1000 *
1001 ****************************************************************************/
1002 /****************************************************************************
1003 *
1004 * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
1005 *
1006 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
1007 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
1008 *
1009 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
1010 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
1011 *
1012 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
1013 * および下記免責条項を含めること。
1014 *
1015 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
1016 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
1017 * 含めること。
1018 *
1019 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
1020 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
1021 * コントリビューターの名前を使用してはならない。
1022 *
1023 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
1024 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
1025 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
1026 * に限定されない、いかなる保証もないものとします。著作権者もコン
1027 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
1028 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
1029 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
1030 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
1031 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
1032 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
1033 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
1034 * ついて、一切責任を負わないものとします。
1035 *
1036 ****************************************************************************/
FK_CLI::fk_AppWindow::SetSceneDefault
void SetSceneDefault(void)
シーン設定初期化メソッド
FK_CLI::fk_AppWindow::ClearModel
void ClearModel(void)
全モデル登録解除メソッド2
FK_CLI::fk_AppWindow::Scene
fk_Scene^ Scene
シーン設定プロパティ
Definition: AppWindow_CLI.h:284
FK_CLI::fk_SpecialKey::DELETEKEY
デリート(削除)キー
FK_CLI::fk_Dimension
画像サイズを表すクラス
Definition: Image_CLI.h:24
FK_CLI::fk_AppWindow::GridWidth
double GridWidth
グリッド線幅設定プロパティ
Definition: AppWindow_CLI.h:192
FK_CLI::fk_SpecialKey::END
エンドキー
FK_CLI::fk_AppWindow::GetMouseStatus
bool GetMouseStatus(fk_MouseButton buttonCode, fk_SwitchStatus status, bool insideFlag)
マウスボタン状態取得メソッド
FK_CLI::fk_MouseButton::MOUSE3
マウス右クリック(第3ボタン)
FK_CLI::fk_AppWindow::IsModelPicked
bool IsModelPicked(fk_Model^ model, int pixel, int mouseX, int mouseY)
モデルクリック判定メソッド1
FK_CLI::fk_SpecialKey::F5
F5 ファンクションキー
FK_CLI::fk_AppWindow::WindowName
String^ WindowName
ウィンドウタイトルプロパティ
Definition: AppWindow_CLI.h:110
FK_CLI::fk_SpecialKey::HOME
ホームキー
FK_CLI::fk_AppWindow::TrackBallMode
bool TrackBallMode
トラックボールモード制御プロパティ
Definition: AppWindow_CLI.h:313
FK_CLI::fk_AppWindow::InnerSize
fk_Rect^ InnerSize
描画領域サイズ設定プロパティ
Definition: AppWindow_CLI.h:137
FK_CLI::fk_SpecialKey::F1
F1 ファンクションキー
FK_CLI::fk_AppWindow::Close
void Close(void)
ウィンドウ破棄メソッド
FK_CLI::fk_AppWindow::GetProjectPosition
bool GetProjectPosition(double x, double y, fk_Plane^ plane, fk_Vector^ pos)
投影平面から任意平面への射影点算出メソッド
FK_CLI::fk_AppWindow::fk_AppWindow
fk_AppWindow()
コンストラクタ
FK_CLI::fk_SpecialKey::F11
F11 ファンクションキー
FK_CLI::fk_AppWindow::CameraFocus
fk_Vector^ CameraFocus
カメラ注視点設定プロパティ
Definition: AppWindow_CLI.h:246
FK_CLI::fk_MouseButton::MOUSE2
マウス中クリック、あるいはホイールクリック(第2ボタン)
FK_CLI::fk_AppWindow::CameraModel
fk_Model^ CameraModel
カメラモデル設定プロパティ
Definition: AppWindow_CLI.h:263
FK_CLI::fk_AppWindow::SetScene
void SetScene(fk_Scene^ scene, bool defCameraAndLight)
シーン設定メソッド
FK_CLI::fk_SpecialKey::F2
F2 ファンクションキー
FK_CLI::fk_AppWindow::Entry
void Entry(fk_Model^ model)
通常モデル表示登録メソッド
FK_CLI::fk_MouseButton::MOUSE1
マウス左クリック(第1ボタン)
FK_CLI::fk_SpecialKey::F12
F12 ファンクションキー
FK_CLI::fk_AppWindow::~fk_AppWindow
~fk_AppWindow()
デストラクタ
GuideObject_CLI.h
FK_CLI::fk_SpecialKey::RIGHT
右矢印キー
FK_CLI::fk_AppWindow::Open
void Open(void)
ウィンドウ生成メソッド
FK_CLI::fk_AppWindow::Size
fk_Dimension^ Size
ウィンドウサイズプロパティ
Definition: AppWindow_CLI.h:123
FK_CLI::fk_SpecialKey::SHIFT_R
右シフトキー
FK_CLI::fk_SpecialKey::F8
F8 ファンクションキー
FK_CLI::fk_SpecialKey::SHIFT_L
左シフトキー
FK_CLI::fk_AppWindow::GuideNum
int GuideNum
グリッド数設定プロパティ
Definition: AppWindow_CLI.h:218
FK_CLI::fk_Performer
FK Performer キャラクターランタイムクラス
Definition: Performer_CLI.h:41
FK_CLI::fk_SpecialKey::BACKSPACE
バックスペース(後退)キー
FK_CLI::fk_AppWindow::Update
bool Update(void)
シーン描画メソッド2
FK_CLI::fk_AppWindow::GetWindowPosition
bool GetWindowPosition(fk_Vector^ pos_3D, fk_Vector^ pos_2D)
空間座標から投影座標への射影点算出メソッド
FK_CLI::fk_SpecialKey::ALT_R
右オルトキー
FK_CLI::fk_SpecialKey::PAGE_DOWN
ページダウンキー
FK_CLI::fk_AppWindow::MousePosition
fk_Vector^ MousePosition
マウスポインタ位置取得プロパティ
Definition: AppWindow_CLI.h:301
Performer_CLI.h
FK_CLI::fk_SpecialKey
fk_SpecialKey
Definition: AppWindow_CLI.h:13
FK_CLI::fk_AppWindow::GuideScale
double GuideScale
グリッド幅設定プロパティ
Definition: AppWindow_CLI.h:205
FK_CLI::fk_Rect
画像中の矩形領域を表すクラス
Definition: Image_CLI.h:104
FK_CLI::fk_AppWindow::SetCameraDefault
void SetCameraDefault(void)
カメラ初期化メソッド
FK_CLI::fk_AppWindow::GetSpecialKeyStatus
bool GetSpecialKeyStatus(fk_SpecialKey keyCode, fk_SwitchStatus status, bool insideFlag)
特殊キー状態取得メソッド1
FK_CLI::fk_SpecialKey::F10
F10 ファンクションキー
FK_CLI::fk_AppWindow::GetKeyStatus
bool GetKeyStatus(wchar_t key, fk_SwitchStatus status, bool insideFlag)
通常キー状態取得メソッド1
FK_CLI::fk_SpecialKey::UP
上矢印キー
FK_CLI::fk_Scene
シーンを制御するクラス
Definition: Scene_CLI.h:40
FK_CLI::fk_MouseButton
fk_MouseButton
マウスボタンを表す列挙型
Definition: AppWindow_CLI.h:49
FK_CLI::fk_SpecialKey::F4
F4 ファンクションキー
FK_CLI::fk_AppWindow::ProcMouseView
void ProcMouseView(fk_Model^ camera, double x, double y, bool lockSW)
FPS視点的カメラ制御メソッド
FK_CLI::fk_SpecialKey::INSERT
インサートキー
FK_CLI::fk_Vector
3次元ベクトルを管理するクラス
Definition: Vector_CLI.h:37
FK_CLI::fk_Color
RGB色を管理するクラス
Definition: Material_CLI.h:24
FK_CLI::fk_AppWindow::CameraPos
fk_Vector^ CameraPos
カメラ位置設定・取得プロパティ
Definition: AppWindow_CLI.h:232
FK_CLI::fk_SpecialKey::CAPS_LOCK
キャップスロックキー
FK_CLI::fk_SpecialKey::F7
F7 ファンクションキー
FK_CLI::fk_SpecialKey::F6
F6 ファンクションキー
FK_CLI::fk_SpecialKey::F3
F3 ファンクションキー
FK_CLI::fk_Model
モデルを生成、管理するクラス
Definition: Model_CLI.h:125
FK_CLI::fk_SwitchStatus::RELEASE
離しっぱなしの状態
FK_CLI::fk_GuideMode
fk_GuideMode
fk_GuideObject での座標軸と座標平面を表す列挙型
Definition: GuideObject_CLI.h:13
FK_CLI::fk_SpriteModel
2D スプライトモデルクラス
Definition: SpriteModel_CLI.h:35
FK_CLI::fk_GuideObject
座標系可視化支援クラス
Definition: GuideObject_CLI.h:36
FK_CLI::fk_SpecialKey::LEFT
左矢印キー
FK_CLI::fk_AppWindow::AxisWidth
double AxisWidth
軸線幅設定プロパティ
Definition: AppWindow_CLI.h:179
FK_CLI::fk_AppWindow::SetCursorState
void SetCursorState(bool visible, bool center)
マウスカーソル表示制御メソッド
FK_CLI::fk_SpecialKey::CTRL_R
右コントロールキー
FK_CLI::fk_SpecialKey::PAGE_UP
ページアップキー
FK_CLI::fk_SpecialKey::ALT_L
左オルトキー
FK_CLI::fk_AppWindow::BGColor
fk_Color^ BGColor
背景色設定プロパティ
Definition: AppWindow_CLI.h:153
FK_CLI::fk_AppWindow::HideGuide
void HideGuide(void)
グリッド・軸消去メソッド
FK_CLI::fk_AppWindow::ShowGuide
void ShowGuide(void)
グリッド・軸設定メソッド2
FK_CLI::fk_Plane
幾何平面を管理するクラス
Definition: Plane_CLI.h:31
FK_CLI::fk_SpecialKey::CTRL_L
左コントロールキー
FK_CLI::fk_SpecialKey::TAB
タブキー
FK_CLI::fk_SpecialKey::ENTER
エンター(改行、リターン)キー
FK_CLI::fk_SwitchStatus::PRESS
押しっぱなしの状態
FK_CLI::fk_SwitchStatus
fk_SwitchStatus
ボタン系デバイス状態を表す列挙型
Definition: AppWindow_CLI.h:56
FK_CLI::fk_AppWindow::FPS
int FPS
FPS設定プロパティ
Definition: AppWindow_CLI.h:166
FK_CLI::fk_SpecialKey::DOWN
下矢印キー
FK_CLI::fk_AppWindow::Remove
void Remove(fk_Model^ model)
通常モデル表示解除メソッド
SpriteModel_CLI.h
FK_CLI::fk_SpecialKey::F9
F9 ファンクションキー
FK_CLI
Definition: AppWindow_CLI.h:11
FK_CLI::fk_AppWindow
アプリケーションウィンドウクラス
Definition: AppWindow_CLI.h:75
Plane_CLI.h