iWaveOcean
3ds Max ocean simulation plugin
Simulator.h
1 #pragma once
2 
3 #include <point3.h>
4 #include <iparamb2.h>
5 #include <vector>
6 #include "Grid.h"
7 #include "ExternalFile.h"
8 
9 class iWaveOcean;
10 
15 class Simulator
16 {
18  volatile bool _finished;
19 
21  volatile bool _cancelled;
22 
24  Grid* _staticGrid;
25 
27  int _cacheStartFrame;
28 
30  std::vector<Grid*> _cache;
31 
33  iWaveOcean* _geom;
34 
36  bool _saveExternal;
37 
39  std::wstring _saveExternalPath;
40 
42  static int simStart;
43 
45  static int simLength;
46 
48  static int simCounter;
49 
51  static void DoWork(void* ptr);
52 
54  static HRESULT CALLBACK SimulateTaskDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, LONG_PTR dwRefData);
55 
57  bool IsCancelled() const;
58 
60  bool IsFinished() const;
61 
63  bool IsTopmostModifier() const;
64 
65  bool CompleteSelectExternalFile(HWND hDlg, std::wstring file);
66 
67 public:
69  Simulator(iWaveOcean* geom);
70  ~Simulator(void);
71 
78  void BeginSimulation(HWND hDlg);
79 
84  void Cancel();
85 
87  void Reset();
88 
90  int GetSimulatedStartFrame() const;
91 
93  int GetSimulatedFrameCount() const;
94 
101  Grid* GetSimulatedGrid(int frame);
102 
103  IOResult Load(ILoad* iload);
104  IOResult Save(ISave* isave);
105  bool LoadExternal(ExternalFile& file);
106 
107  void BeginSelectExternalFile(HWND hDlg);
108  void UseNativeStorage();
109  bool IsUsingExternalStorage() const;
110  std::wstring GetExternalFileName() const;
111 
112  void ErrorDialog(HWND hDlg, std::wstring main, std::wstring detail) const;
113 };
114 
Simulator(iWaveOcean *geom)
Definition: Simulator.cpp:21
Grid * GetSimulatedGrid(int frame)
Definition: Simulator.cpp:175
Definition: Simulator.h:15
Definition: ExternalFile.h:9
Definition: iWaveOcean.h:38
int GetSimulatedFrameCount() const
Definition: Simulator.cpp:170
void BeginSimulation(HWND hDlg)
Definition: Simulator.cpp:95
void Cancel()
Definition: Simulator.cpp:131
Definition: Grid.h:4
int GetSimulatedStartFrame() const
Definition: Simulator.cpp:165
void Reset()
Definition: Simulator.cpp:152