Cogs.Core
Public Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
Cogs::WaveSpectrum Class Reference

Public Member Functions

void initialize (IGraphicsDevice *device)
 
void setSize (const int Nlog2)
 
float setConditions (const float tileExtent, const float waveNumberMute, const float waveNumberPass, const float significantWavePeriod, const float windSpeed, const float windDirection, const float scale=0.f, const unsigned int seed=42)
 
bool update (RenderContext &renderContext, const float dt)
 
TextureHandle positionTex ()
 
TextureHandle derivativesTex ()
 
float getTileExtent () const
 
float getTileExtentAdjust () const
 
float getAdjustedTileExtent () const
 

Static Protected Member Functions

static float createDirectionalWaveSpectrum (std::vector< float > &E, int N, float L, float freqPassZero, float freqPassOne, float windSpeed, float windDirection, float dominantWavePeriod, float scale=0.f)
 
static void createRandomizedWaveSpectrumInstance (std::vector< glm::vec2 > &H, const std::vector< float > &E, const unsigned int seed, const size_t N)
 

Protected Attributes

GPGPUQuadRenderer gpgpuQuadRenderer
 
FourierTransform2D fourierTransform
 
IGraphicsDevicedevice
 
float tileExtent
 
float tileExtentAdjust
 
int NLog2
 
int N
 
int frame
 
TextureHandle phaseTex [2]
 
RenderTargetHandle dispersionTarget [2]
 
struct {
   EffectHandle   effect
 
   InputLayoutHandle   il
 
   BufferHandle   constantBuffer
 
texturePack
 
struct {
   EffectHandle   effect
 
   InputLayoutHandle   il
 
   BufferHandle   constantBuffer
 
disperse
 
struct {
   std::vector< float >   E
 
   std::vector< glm::vec2 >   a
 Frequency representation of sea state at t=0. More...
 
   TextureHandle   aTex
 
   TextureHandle   xyTex
 
   TextureHandle   zTex
 
   TextureHandle   dzdu_dzdv_Tex
 
frequencyDomain
 
struct {
   TextureHandle   xyzTex
 
   TextureHandle   dxdu_dydv_dzdu_dzdvTex
 
   RenderTargetHandle   packTarget
 
packed
 
struct {
   TextureHandle   xyTex
 
   TextureHandle   zTex
 
   TextureHandle   dzdu_dzdv_Tex
 
   RenderTargetHandle   xyTarget
 
   RenderTargetHandle   zTarget
 
   RenderTargetHandle   dzduTarget
 
spatialDomain
 

Detailed Description

Definition at line 14 of file WaveSpectrum.h.

Member Function Documentation

◆ createDirectionalWaveSpectrum()

float Cogs::WaveSpectrum::createDirectionalWaveSpectrum ( std::vector< float > &  E,
int  N,
float  L,
float  freqPassZero,
float  freqPassOne,
float  windSpeed,
float  windDirection,
float  dominantWavePeriod,
float  scale = 0.f 
)
staticprotected
Parameters
EResulting wave spectrum.
NSamples along one side.
LExtent of one side, in meters.
windSpeedWind speed at 10 meters altitude, in m/s.
windDirectionWind direction relative to x-axis, in radians.
dominantWavePeriodDominant wave period in seconds.

Definition at line 115 of file WaveSpectrum.cpp.

◆ createRandomizedWaveSpectrumInstance()

void Cogs::WaveSpectrum::createRandomizedWaveSpectrumInstance ( std::vector< glm::vec2 > &  H,
const std::vector< float > &  E,
const unsigned int  seed,
const size_t  N 
)
staticprotected

Definition at line 195 of file WaveSpectrum.cpp.

◆ derivativesTex()

TextureHandle Cogs::WaveSpectrum::derivativesTex ( )
inline

Definition at line 35 of file WaveSpectrum.h.

◆ getAdjustedTileExtent()

float Cogs::WaveSpectrum::getAdjustedTileExtent ( ) const
inline

Definition at line 42 of file WaveSpectrum.h.

◆ getTileExtent()

float Cogs::WaveSpectrum::getTileExtent ( ) const
inline

Definition at line 38 of file WaveSpectrum.h.

◆ getTileExtentAdjust()

float Cogs::WaveSpectrum::getTileExtentAdjust ( ) const
inline

Definition at line 40 of file WaveSpectrum.h.

◆ initialize()

void Cogs::WaveSpectrum::initialize ( IGraphicsDevice device)

Definition at line 253 of file WaveSpectrum.cpp.

◆ positionTex()

TextureHandle Cogs::WaveSpectrum::positionTex ( )
inline

Definition at line 33 of file WaveSpectrum.h.

◆ setConditions()

float Cogs::WaveSpectrum::setConditions ( const float  tileExtent,
const float  waveNumberMute,
const float  waveNumberPass,
const float  significantWavePeriod,
const float  windSpeed,
const float  windDirection,
const float  scale = 0.f,
const unsigned int  seed = 42 
)

Definition at line 218 of file WaveSpectrum.cpp.

◆ setSize()

void Cogs::WaveSpectrum::setSize ( const int  Nlog2)

Definition at line 287 of file WaveSpectrum.cpp.

◆ update()

bool Cogs::WaveSpectrum::update ( RenderContext renderContext,
const float  dt 
)

Definition at line 339 of file WaveSpectrum.cpp.

Member Data Documentation

◆ a

std::vector<glm::vec2> Cogs::WaveSpectrum::a

Frequency representation of sea state at t=0.

Definition at line 73 of file WaveSpectrum.h.

◆ aTex

TextureHandle Cogs::WaveSpectrum::aTex

Definition at line 74 of file WaveSpectrum.h.

◆ constantBuffer

BufferHandle Cogs::WaveSpectrum::constantBuffer

Definition at line 61 of file WaveSpectrum.h.

◆ device

IGraphicsDevice* Cogs::WaveSpectrum::device
protected

Definition at line 47 of file WaveSpectrum.h.

◆ dispersionTarget

RenderTargetHandle Cogs::WaveSpectrum::dispersionTarget[2]
protected

Definition at line 56 of file WaveSpectrum.h.

◆ dxdu_dydv_dzdu_dzdvTex

TextureHandle Cogs::WaveSpectrum::dxdu_dydv_dzdu_dzdvTex

Definition at line 82 of file WaveSpectrum.h.

◆ dzdu_dzdv_Tex

TextureHandle Cogs::WaveSpectrum::dzdu_dzdv_Tex

Definition at line 77 of file WaveSpectrum.h.

◆ dzduTarget

RenderTargetHandle Cogs::WaveSpectrum::dzduTarget

Definition at line 92 of file WaveSpectrum.h.

◆ E

std::vector<float> Cogs::WaveSpectrum::E

Definition at line 72 of file WaveSpectrum.h.

◆ effect

EffectHandle Cogs::WaveSpectrum::effect

Definition at line 59 of file WaveSpectrum.h.

◆ fourierTransform

FourierTransform2D Cogs::WaveSpectrum::fourierTransform
protected

Definition at line 46 of file WaveSpectrum.h.

◆ frame

int Cogs::WaveSpectrum::frame
protected

Definition at line 53 of file WaveSpectrum.h.

◆ gpgpuQuadRenderer

GPGPUQuadRenderer Cogs::WaveSpectrum::gpgpuQuadRenderer
protected

Definition at line 45 of file WaveSpectrum.h.

◆ il

InputLayoutHandle Cogs::WaveSpectrum::il

Definition at line 60 of file WaveSpectrum.h.

◆ N

int Cogs::WaveSpectrum::N
protected

Definition at line 51 of file WaveSpectrum.h.

◆ NLog2

int Cogs::WaveSpectrum::NLog2
protected

Definition at line 50 of file WaveSpectrum.h.

◆ packTarget

RenderTargetHandle Cogs::WaveSpectrum::packTarget

Definition at line 83 of file WaveSpectrum.h.

◆ phaseTex

TextureHandle Cogs::WaveSpectrum::phaseTex[2]
protected

Definition at line 55 of file WaveSpectrum.h.

◆ tileExtent

float Cogs::WaveSpectrum::tileExtent
protected

Definition at line 48 of file WaveSpectrum.h.

◆ tileExtentAdjust

float Cogs::WaveSpectrum::tileExtentAdjust
protected

Definition at line 49 of file WaveSpectrum.h.

◆ xyTarget

RenderTargetHandle Cogs::WaveSpectrum::xyTarget

Definition at line 90 of file WaveSpectrum.h.

◆ xyTex

TextureHandle Cogs::WaveSpectrum::xyTex

Definition at line 75 of file WaveSpectrum.h.

◆ xyzTex

TextureHandle Cogs::WaveSpectrum::xyzTex

Definition at line 81 of file WaveSpectrum.h.

◆ zTarget

RenderTargetHandle Cogs::WaveSpectrum::zTarget

Definition at line 91 of file WaveSpectrum.h.

◆ zTex

TextureHandle Cogs::WaveSpectrum::zTex

Definition at line 76 of file WaveSpectrum.h.


The documentation for this class was generated from the following files: