📄 ocean.h
字号:
#ifndef OCEAN_H
#define OCEAN_H
#include "OceanUtil.h"
#include <math.h>
typedef struct
{
public:
bool active;//活动状态
double life;//生命周期
double fade;//生命控制变量
oceanVector particlePosition;//粒子位置
oceanVector particleVelocity;//粒子速度
oceanVector particleColor;//粒子颜色
oceanVector particleAcc;//粒子加速度
}OceanParticle;
class T_Ocean
{
public:
int oceanSizeX;//海面网格大小
int oceanSizeY;
double oceanWindScaleX; //风力大小系数
double oceanWindScaleY;
double oceanLambda;//对流系数
double oceanWaveHeight;//浪高系数
double oceanTimeDiff;//时间步长
double oceanGridSize;//海面网格点X,Z大小
int fftDir;
double oceanGridPosition[512][512][3];//海洋各网格点位置
double oceanHoldHorizontal[512][512][4];//保存初始化状态时的浪高度
double oceanDisplayXY[512][512][2]; // holds the actual x and y for display
double oceanNormals[512][512][3]; //法线中间存储数组
double oceanBigNormals[512][512][3];
oceanComplex oceanDeltaX[512][512];
oceanComplex oceanDeltaY[512][512];
oceanComplex oceanH0[512][512];
oceanComplex oceanC[512][512];
bool showParticle;
int particleNum;
OceanParticle oceanParticle[512][512][10];// 海洋碎波粒子
T_Ocean(int sizeX, int sizeY, float oceanGridSize, float windScaleX, float windScaleY, float lambda, float waveHeight);//调用oceanInitial
T_Ocean();
~T_Ocean();
void oceanInitial();
void oceanMakeNormals(oceanComplex c[512][512]);
void oceanSimulating(float timeStep);
void oceanPrepLoop();
void oceanPreChoppy();
void particleIntial();
void BreakingWaveSimulating();
};
void enableBreakingWave(T_Ocean*);
void disableBreakingWave(T_Ocean*);
void setOceanWaveHeight(T_Ocean*, float);
int getOceanSizeX(T_Ocean*);
int getOceanSizeY(T_Ocean*);
float getOceanWindScaleX(T_Ocean*);
float getOceanWindScaleY(T_Ocean*);
float getOceanLambda(T_Ocean*);
float getOceanWaveHeight(T_Ocean*);
void simuOcean(T_Ocean* , float );
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -