iWaveOcean
3ds Max ocean simulation plugin
Dynamics.h
1 #pragma once
2 #include "Grid.h"
3 #include <object.h>
4 #include "IConvolution.h"
5 
6 #define P 6
9 class Dynamics
10 {
11  int frame_num;
12 
13  INode* parent_node;
14  INode** collision_nodes;
15  const int collision_nodes_count;
16 
17  const float dt;
18  const float alpha;
19  const float gravity;
20  const float sigma;
21  const float wake_exp;
23  const int vertices_x;
24  const int vertices_y;
25  const int vertices_total;
26 
27  const float width;
28  const float length;
29  const float height_scale;
30 
31  IConvolution<2>* gaussianConvolution;
32  IConvolution<P>* verticalDerivConvolution;
33 
34  float* obstruction_raw;
35  float* obstruction;
36  float* source;
37  float* height;
38  float* previous_height;
39  float* vertical_derivative;
41  Grid* ambient;
44  void UpdateObstructions();
45 
47  void PropagateWaves();
48 
50  Grid* GetDisplayGrid();
51 
52 public:
70  Dynamics(int startFrame, float width, float length, int widthSegs, int lengthSegs, float heightScale, float dt, float alpha, float sigma, float wakePower, INode* parentNode, INode** collisionNodes, int numCollisionNodes, Grid* ambient);
71  ~Dynamics(void);
72 
77  Grid* NextGrid();
78 };
79 
Definition: Grid.h:4
Definition: Dynamics.h:9