c

struct Storm

Include: Clouds/CloudKeyframer.h

A structure representing a thunderstorm. See CloudKeyframer::AddStorm.

Functions

void AddStrike(float cloudbase_km, float game_time, float real_time)
float GetDefaultFloat(char name)
int GetDefaultInt(char name)
float GetFloat(char name)
int GetInt(char name)
simul::clouds::LightningProperties GetLightningProperties(float game_time, float real_time, float base_km)
simul::clouds::Strike GetStrike(int i)
int GetTotalNumStrikes()
bool HasFloat(char name)
bool HasInt(char name)
void SetFloat(char name, float val)
void SetInt(char name, int val)
int SpawnStrike(float time, vec3 startpos, vec3 endpos, float magnitude, vec3 colour, bool sh, float dur, float leader_dur)
void Update(float game_time, float real_time)

A structure representing a thunderstorm. See CloudKeyframer::AddStorm.

Functions

void AddStrike(float cloudbase_km, float game_time, float real_time)

Add the next random strike.

float GetDefaultFloat(char name)

Returns the default for the named property - see HasFloat().

int GetDefaultInt(char name)

Returns the default for the named property - see HasInt().

float GetFloat(char name)

Returns the named property - see HasFloat().

int GetInt(char name)

Returns the named property - see HasInt().

simul::clouds::LightningProperties GetLightningProperties(float game_time, float real_time, float base_km)

Get the properties of the currently active lightning strike

simul::clouds::Strike GetStrike(int i)

Return the currently active strike, or return a default strike

int GetTotalNumStrikes()

Get the approximate number of strikes that are generated over a day with the current settings

bool HasFloat(char name)

Returns true if the keyframe has the named property.

bool HasInt(char name)

Returns true if the keyframe type has the named integer property.

void SetFloat(char name, float val)

Set the named property - see HasFloat().

void SetInt(char name, int val)

Set the named property - see HasFloat().

int SpawnStrike(float time, vec3 startpos, vec3 endpos, float magnitude, vec3 colour, bool sh, float dur, float leader_dur)

Spawn a strike at a certain time with the given properties

void Update(float game_time, float real_time)

Once per frame update to discard old strikes.

Fields

radiusKm < Centre of the lightning storm.

start_time < Radius of the lightning storm.

end_time < Time the storm commences.

realTime < Time the storm ends.

sheet < If true, frequency and duration of strikes are in real time, not simulation time.

strikeFrequencyPerSecond < What proportion of the strikes are sheet lightning as opposed to ground strikes.

strikeDurationSeconds < In simulated seconds - not necessarily realtime

strikeThicknessMetres < How long, in simulated seconds - not realtime - each strike should last.

roughness < Thickness of the main trunk.

motion < How rough/smooth to make the branches.

seed < How much to move/animate during a strike.

numLevels < Pseudo-random seed.

numBranches < Number of levels of branching.

branchAngleDegrees < Mean number of branches to generate from each parent.

colour < Mean angle of branching.

maxRadiance < Colour of the strikes.

minPixelWidth < Maximum radiance of the strikes.

unique_id < Minimum pixel-size for strike rendering.

last_strike_uid < A non-persistent unique identifier.

strikes We can store a stack of non-random strikes. These take precedence over pseudo-randomly generated strikes.