Fission FSN
Loading...
Searching...
No Matches
fsCParticleParameterModifier.h
Go to the documentation of this file.
1/********************************************************************
2*
3* Created: 1/9/2015 9:24
4*
5* File: fsCParticleParameterModifier.h
6*
7* Author: Martin P. King
8*
9* Purpose: Control the modification of a particle parameter -
10* scale/rotate etc through a variety of methods (initially
11* graph or constant)
12*
13*********************************************************************/
14
15#ifndef fsCParticleParameterModifierhdr
16#define fsCParticleParameterModifierhdr
17
18#include <fsCore/fsBaseTypes.h>
19#include <fsCore/fsStr.h>
20
22
24
25#include <memory>
26typedef std::shared_ptr<fsCParticleParameterModifier> fsCParticleParameterModifierRef;
27
28
30{
31public:
32
33 fsF32 finalise(fsS32 pRunningTime, fsF32 pDelta);
34
36 fsBool constant() const { return nullptr == mGraph; }
37
38 static fsF32 rndF32Get(fsS32 pRange);
39 static fsS32 s32Get(fsStr& pFileData);
40 static fsF32 f32Get(fsStr& pFileData);
41 static void charStrip(fsStr& pFileData);
42
43 fsF32 update(fsS32 pRunningTime, fsS32 pTimeDelta, fsF32 pDelta);
44
45 void randomRangeLoad(fsStr& pParamVals);
46 void tableLoad(fsStr& pParamVals);
47
48 fsCParticleParameterModifier(fsF32 (*pValueLoadFn)(fsStr& pFileData));
50
51protected:
52
53private:
54
55 static fsF32 valueLoad(fsStr& pParamVals);
56
57 fsF32 (*mValueLoadFn)(fsStr& pFileData);
58
59 fsCGraph<fsF32>* mGraph;
60 fsF32 mConstant;
61 fsS32 mConstantRange;
62};
63
64#endif
Definition fsCGraph.h:24
Definition fsCParticleParameterModifier.h:30
void randomRangeLoad(fsStr &pParamVals)
Definition fsCParticleParameterModifier.cpp:88
fsCParticleParameterModifier(fsF32(*pValueLoadFn)(fsStr &pFileData))
Definition fsCParticleParameterModifier.cpp:132
static fsF32 f32Get(fsStr &pFileData)
Definition fsCParticleParameterModifier.cpp:63
fsBool constant() const
Definition fsCParticleParameterModifier.h:36
fsF32 finalise(fsS32 pRunningTime, fsF32 pDelta)
Definition fsCParticleParameterModifier.cpp:8
void tableLoad(fsStr &pParamVals)
Definition fsCParticleParameterModifier.cpp:103
static fsF32 rndF32Get(fsS32 pRange)
Definition fsCParticleParameterModifier.cpp:37
static fsS32 s32Get(fsStr &pFileData)
Definition fsCParticleParameterModifier.cpp:46
~fsCParticleParameterModifier()
Definition fsCParticleParameterModifier.cpp:147
static void charStrip(fsStr &pFileData)
Definition fsCParticleParameterModifier.cpp:81
fsF32 update(fsS32 pRunningTime, fsS32 pTimeDelta, fsF32 pDelta)
Definition fsCParticleParameterModifier.cpp:17
fsF32 initialise()
Definition fsCParticleParameterModifier.cpp:28
Definition fsStr.h:23
std::shared_ptr< fsCParticleParameterModifier > fsCParticleParameterModifierRef
Definition fsCParticleParameterModifier.h:26
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
float fsF32
Definition fsBaseTypes.h:28