1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
|
#ifndef BLASTPLUGIN_H
#define BLASTPLUGIN_H
#include <QtCore/QObject>
#include <QtCore/QtPlugin>
#include "PluginInterface.h"
#include "UIGlobal.h"
class QMenu;
class QAction;
class QDoubleSpinBox;
class QComboBox;
class QCheckBox;
class QVBoxLayout;
class BlastToolbar;
class FileReferencesPanel;
class GeneralPanel;
class BlastCompositePanel;
class DefaultDamagePanel;
class MaterialLibraryPanel;
class MaterialAssignmentsPanel;
class FractureCutoutSettingsPanel;
class FractureGeneralPanel;
class FractureShellCutSettingsPanel;
class FractureSliceSettingsPanel;
class FractureVisualizersPanel;
class FractureVoronoiSettingsPanel;
class SupportPanel;
class BlastSceneTree;
class FiltersDockWidget;
class Camera;
class Light;
namespace NvParameterized
{
class Interface;
class Handle;
}
class D3D11RenderShader;
#define BlastPluginName "BlastPlugin"
class BlastPlugin : public QObject, public PluginInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID PluginInterface_iid FILE "blastplugin.json")
Q_INTERFACES(PluginInterface)
public:
virtual QString GetPluginName();
virtual bool CoreLib_RunApp();
virtual bool LoadRenderPlugin(std::string api);
virtual bool GetBoneNames(std::vector<std::string>& BoneNames);
virtual bool MainToolbar_updateValues();
virtual bool CurveEditor_updateValues(int _paramId, float* _values);
virtual bool CurveEditor_onUpdateValues(int _paramId, float* _values);
virtual bool DisplayMeshesPanel_updateValues();
virtual bool DisplayMeshesPanel_EmitToggleSignal(unsigned int id, bool visible);
virtual bool Camera_LoadParameters(void* ptr, Camera* pCamera);
virtual bool Camera_SaveParameters(void * ptr, Camera* pCamera);
virtual bool Gamepad_ToggleSimulation();
virtual bool Gamepad_LoadSamples(QString fn);
virtual bool Gamepad_ResetScene();
virtual bool Gamepad_StartAnimation();
virtual bool GamepadHandler_ShowHair();
virtual bool GamepadHandler_SpinWindStrength(float windStrength);
virtual bool Gamepad_ResetAnimation();
virtual bool Gamepad_PlayPauseAnimation();
virtual bool Light_loadParameters(NvParameterized::Handle& handle, Light* pLight);
virtual bool Light_saveParameters(NvParameterized::Handle& handle, Light* pLight);
virtual bool SimpleScene_SimpleScene();
virtual bool SimpleScene_Initialize(int backdoor);
virtual bool SimpleScene_Shutdown();
virtual bool SimpleScene_Clear();
virtual bool SimpleScene_Draw_DX12();
virtual bool SimpleScene_Draw_DX11();
virtual bool SimpleScene_FitCamera(atcore_float3& center, atcore_float3& extents);
virtual bool SimpleScene_DrawGround();
virtual bool SimpleScene_DrawWind();
virtual bool SimpleScene_DrawAxis();
virtual bool SimpleScene_LoadSceneFromFbx(const char* dir, const char* fbxName);
virtual bool SimpleScene_LoadProject(const char* dir, const char* file);
virtual bool SimpleScene_SaveProject(const char* dir, const char* file);
virtual bool SimpleScene_LoadParameters(NvParameterized::Interface* iface);
virtual bool SimpleScene_SaveParameters(NvParameterized::Interface* iface);
virtual bool SimpleScene_LoadCameraBookmarks(NvParameterized::Interface* iface);
virtual bool SimpleScene_SaveCameraBookmarks(NvParameterized::Interface* iface);
virtual bool D3DWidget_resizeEvent(QResizeEvent* e);
virtual bool D3DWidget_paintEvent(QPaintEvent* e);
virtual bool D3DWidget_mousePressEvent(QMouseEvent* e);
virtual bool D3DWidget_mouseReleaseEvent(QMouseEvent* e);
virtual bool D3DWidget_mouseMoveEvent(QMouseEvent* e);
virtual bool D3DWidget_wheelEvent(QWheelEvent * e);
virtual bool D3DWidget_keyPressEvent(QKeyEvent* e);
virtual bool D3DWidget_keyReleaseEvent(QKeyEvent* e);
virtual bool D3DWidget_dragEnterEvent(QDragEnterEvent *e);
virtual bool D3DWidget_dragMoveEvent(QDragMoveEvent *e);
virtual bool D3DWidget_dragLeaveEvent(QDragLeaveEvent *e);
virtual bool D3DWidget_dropEvent(QDropEvent *e);
virtual bool D3DWidget_contextMenuEvent(QContextMenuEvent *e);
virtual bool D3D11Shaders_InitializeShadersD3D11(std::map<int, D3D11RenderShader*>& ShaderMap);
virtual bool AppMainWindow_AppMainWindow();
virtual bool AppMainWindow_InitMenuItems(QMenuBar* pMenuBar);
virtual bool AppMainWindow_InitMainTab(QWidget *displayScrollAreaContents, QVBoxLayout *displayScrollAreaLayout, int idx);
virtual bool AppMainWindow_InitPluginTab(QTabWidget* pTabWidget);
virtual bool AppMainWindow_InitUI();
virtual bool AppMainWindow_updateUI();
virtual bool AppMainWindow_updatePluginUI();
virtual bool AppMainWindow_processDragAndDrop(QString fname);
virtual bool AppMainWindow_closeEvent(QCloseEvent *event);
virtual bool AppMainWindow_InitToolbar(QWidget *pQWidget, QVBoxLayout* pLayout);
virtual bool AppMainWindow_shortcut_expert(bool mode);
virtual bool AppMainWindow_updateMainToolbar();
virtual bool AppMainWindow_menu_about();
virtual bool AppMainWindow_menu_opendoc();
#if USE_CURVE_EDITOR
virtual bool AppMainWindow_UpdateCurveEditor();
virtual bool AppMainWindow_ShowCurveEditor(int paramId);
virtual bool AppMainWindow_onCurveAttributeChanged(nvidia::CurveEditor::CurveAttribute* attribute);
virtual bool AppMainWindow_onColorAttributeChanged(nvidia::CurveEditor::ColorAttribute* attribute);
virtual bool AppMainWindow_onReloadColorAttributeTexture(nvidia::CurveEditor::ColorAttribute* attribute, bool reloadColorTex, int selectedCtrlPntIndex);
#endif
BlastToolbar* GetMainToolbar() { return _mainToolbar; }
public:
static void DrawHUD();
/////////////////////////////////////////////////////////////////////
// profiler and timer
static void ResetFrameTimer();
public slots:
bool menu_openProject();
bool menu_saveProject();
bool menu_saveProjectAs();
bool shortcut_damagetool();
bool shortcut_selecttool();
bool shortcut_Translate();
bool shortcut_Rotation();
bool shortcut_Scale();
bool shortcut_edittool();
bool slot_Make_Support();
bool slot_Make_Static_Support();
bool slot_Remove_Support();
bool slot_Bond_Chunks();
bool slot_Bond_Chunks_with_Joints();
bool slot_Remove_all_Bonds();
private:
BlastToolbar* _mainToolbar;
MaterialLibraryPanel* _materialLibraryPanel;
MaterialAssignmentsPanel* _materialAssignmentsPanel;
FileReferencesPanel* _fileReferencesPanel;
GeneralPanel* _generalPanel;
BlastCompositePanel* _blastCompositePanel;
DefaultDamagePanel* _defaultDamagePanel;
FractureCutoutSettingsPanel* _fractureCutoutSettingsPanel;
FractureGeneralPanel* _fractureGeneralPanel;
FractureShellCutSettingsPanel* _fractureShellCutSettingPanel;
FractureSliceSettingsPanel* _fractureSliceSettingsPanel;
FractureVisualizersPanel* _fractureVisualizersPanel;
FractureVoronoiSettingsPanel* _fractureVoronoiSettingsPanel;
SupportPanel* _supportPanel;
BlastSceneTree* _blastSceneTree;
FiltersDockWidget* _filtersDockWidget;
QMenu* _chunkContextMenu;
QMenu* _bondContextMenu;
QAction* action_Make_Support;
QAction* action_Make_Static_Support;
QAction* action_Remove_Support;
QAction* action_Bond_Chunks;
QAction* action_Bond_Chunks_with_Joints;
QAction* action_Remove_all_Bonds;
};
#endif // HAIRWORKSPLUGIN_H
|