OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
ParticleFx Class Referencefinal

#include <particlefx.h>

Public Types

enum class  EmitterType : uint8_t {
  Point , Line , Box , Circle ,
  Sphere , Mesh
}
 
enum class  Dir : uint8_t { Rand , Dir , Target }
 
enum class  Frame : uint8_t { World , Object , Node }
 
enum class  Distribution : uint8_t { Rand , Dir , Uniform , Walk }
 
enum class  Orientation : uint8_t { None , Velocity , Velocity3d }
 
using KeyList = std::vector< float >
 

Public Member Functions

 ParticleFx (const Material &mat, const zenkit::VirtualObject &vob)
 
 ParticleFx (const zenkit::IParticleEffect &src, std::string_view name)
 
 ParticleFx (const ParticleFx &proto, const VisualFx::Key &key)
 
bool isDecal () const
 
bool hasTrails () const
 
uint64_t maxLifetime () const
 
uint64_t effectPrefferedTime () const
 
float maxPps () const
 
float shpScale (uint64_t time) const
 
float ppsScale (uint64_t time) const
 

Public Attributes

std::string dbgName
 
float ppsValue = 0
 
KeyList ppsScaleKeys
 
bool ppsIsLooping = false
 
bool ppsIsSmooth = false
 
float ppsFPS = 0
 
const ParticleFxppsCreateEm = nullptr
 
uint64_t ppsCreateEmDelay = 0
 
EmitterType shpType = EmitterType::Point
 
Frame shpFOR = Frame::Object
 
Tempest::Vec3 shpOffsetVec
 
Distribution shpDistribType = Distribution::Rand
 
float shpDistribWalkSpeed = 0.f
 
bool shpIsVolume = false
 
Tempest::Vec3 shpDim
 
const PfxEmitterMeshshpMesh = nullptr
 
std::string shpMesh_S
 
bool shpMeshRender = false
 
KeyList shpScaleKeys
 
bool shpScaleIsLooping = false
 
bool shpScaleIsSmooth = false
 
float shpScaleFPS = 0.f
 
Dir dirMode = Dir::Rand
 
Frame dirFOR = Frame::Object
 
Frame dirModeTargetFOR = Frame::Object
 
Tempest::Vec3 dirModeTargetPos
 
float dirAngleHead = 0.f
 
float dirAngleHeadVar = 0.f
 
float dirAngleElev = 0.f
 
float dirAngleElevVar = 0.f
 
float velAvg = 0.f
 
float velVar = 0.f
 
float lspPartAvg = 0.f
 
float lspPartVar = 0.f
 
Tempest::Vec3 flyGravity
 
bool flyCollDet = false
 
Material visMaterial
 
Orientation visOrientation = Orientation::None
 
bool visTexIsQuadPoly = true
 
float visTexAniFPS = 0.f
 
bool visTexAniIsLooping = false
 
Tempest::Vec3 visTexColorStart
 
Tempest::Vec3 visTexColorEnd
 
Tempest::Vec2 visSizeStart
 
float visSizeEndScale = 0.f
 
float visAlphaStart = 0.f
 
float visAlphaEnd = 0.f
 
bool visYawAlign = false
 
bool visZBias = false
 
const Tempest::Texture2d * trlTexture = nullptr
 
float trlFadeSpeed = 0.f
 
float trlWidth = 0.f
 
const Tempest::Texture2d * mrkTexture = nullptr
 
float mrkFadeSpeed = 0.f
 
float mrkSize = 0.f
 
std::string flockMode
 
float flockStrength = 0
 
bool useEmittersFOR = true
 
std::string timeStartEnd_S
 
bool m_bIsAmbientPFX =false
 
uint64_t prefferedTime = 0
 

Detailed Description

Definition at line 14 of file particlefx.h.

Member Typedef Documentation

◆ KeyList

using ParticleFx::KeyList = std::vector<float>

Definition at line 54 of file particlefx.h.

Member Enumeration Documentation

◆ Dir

enum class ParticleFx::Dir : uint8_t
strong
Enumerator
Rand 
Dir 
Target 

Definition at line 29 of file particlefx.h.

◆ Distribution

enum class ParticleFx::Distribution : uint8_t
strong
Enumerator
Rand 
Dir 
Uniform 
Walk 

Definition at line 41 of file particlefx.h.

◆ EmitterType

enum class ParticleFx::EmitterType : uint8_t
strong
Enumerator
Point 
Line 
Box 
Circle 
Sphere 
Mesh 

Definition at line 20 of file particlefx.h.

◆ Frame

enum class ParticleFx::Frame : uint8_t
strong
Enumerator
World 
Object 
Node 

Definition at line 35 of file particlefx.h.

◆ Orientation

enum class ParticleFx::Orientation : uint8_t
strong
Enumerator
None 
Velocity 
Velocity3d 

Definition at line 48 of file particlefx.h.

Constructor & Destructor Documentation

◆ ParticleFx() [1/3]

ParticleFx::ParticleFx ( const Material mat,
const zenkit::VirtualObject &  vob 
)

Definition at line 10 of file particlefx.cpp.

◆ ParticleFx() [2/3]

ParticleFx::ParticleFx ( const zenkit::IParticleEffect &  src,
std::string_view  name 
)

Definition at line 39 of file particlefx.cpp.

◆ ParticleFx() [3/3]

ParticleFx::ParticleFx ( const ParticleFx proto,
const VisualFx::Key key 
)

Definition at line 112 of file particlefx.cpp.

Member Function Documentation

◆ effectPrefferedTime()

uint64_t ParticleFx::effectPrefferedTime ( ) const

Definition at line 159 of file particlefx.cpp.

◆ hasTrails()

bool ParticleFx::hasTrails ( ) const

Definition at line 151 of file particlefx.cpp.

◆ isDecal()

bool ParticleFx::isDecal ( ) const

Definition at line 147 of file particlefx.cpp.

◆ maxLifetime()

uint64_t ParticleFx::maxLifetime ( ) const

Definition at line 155 of file particlefx.cpp.

◆ maxPps()

float ParticleFx::maxPps ( ) const

Definition at line 168 of file particlefx.cpp.

◆ ppsScale()

float ParticleFx::ppsScale ( uint64_t  time) const

Definition at line 186 of file particlefx.cpp.

◆ shpScale()

float ParticleFx::shpScale ( uint64_t  time) const

Definition at line 181 of file particlefx.cpp.

Member Data Documentation

◆ dbgName

std::string ParticleFx::dbgName

Definition at line 56 of file particlefx.h.

◆ dirAngleElev

float ParticleFx::dirAngleElev = 0.f

Definition at line 87 of file particlefx.h.

◆ dirAngleElevVar

float ParticleFx::dirAngleElevVar = 0.f

Definition at line 88 of file particlefx.h.

◆ dirAngleHead

float ParticleFx::dirAngleHead = 0.f

Definition at line 85 of file particlefx.h.

◆ dirAngleHeadVar

float ParticleFx::dirAngleHeadVar = 0.f

Definition at line 86 of file particlefx.h.

◆ dirFOR

Frame ParticleFx::dirFOR = Frame::Object

Definition at line 82 of file particlefx.h.

◆ dirMode

Dir ParticleFx::dirMode = Dir::Rand

Definition at line 81 of file particlefx.h.

◆ dirModeTargetFOR

Frame ParticleFx::dirModeTargetFOR = Frame::Object

Definition at line 83 of file particlefx.h.

◆ dirModeTargetPos

Tempest::Vec3 ParticleFx::dirModeTargetPos

Definition at line 84 of file particlefx.h.

◆ flockMode

std::string ParticleFx::flockMode

Definition at line 120 of file particlefx.h.

◆ flockStrength

float ParticleFx::flockStrength = 0

Definition at line 121 of file particlefx.h.

◆ flyCollDet

bool ParticleFx::flyCollDet = false

Definition at line 96 of file particlefx.h.

◆ flyGravity

Tempest::Vec3 ParticleFx::flyGravity

Definition at line 95 of file particlefx.h.

◆ lspPartAvg

float ParticleFx::lspPartAvg = 0.f

Definition at line 92 of file particlefx.h.

◆ lspPartVar

float ParticleFx::lspPartVar = 0.f

Definition at line 93 of file particlefx.h.

◆ m_bIsAmbientPFX

bool ParticleFx::m_bIsAmbientPFX =false

Definition at line 126 of file particlefx.h.

◆ mrkFadeSpeed

float ParticleFx::mrkFadeSpeed = 0.f

Definition at line 117 of file particlefx.h.

◆ mrkSize

float ParticleFx::mrkSize = 0.f

Definition at line 118 of file particlefx.h.

◆ mrkTexture

const Tempest::Texture2d* ParticleFx::mrkTexture = nullptr

Definition at line 116 of file particlefx.h.

◆ ppsCreateEm

const ParticleFx* ParticleFx::ppsCreateEm = nullptr

Definition at line 63 of file particlefx.h.

◆ ppsCreateEmDelay

uint64_t ParticleFx::ppsCreateEmDelay = 0

Definition at line 64 of file particlefx.h.

◆ ppsFPS

float ParticleFx::ppsFPS = 0

Definition at line 62 of file particlefx.h.

◆ ppsIsLooping

bool ParticleFx::ppsIsLooping = false

Definition at line 60 of file particlefx.h.

◆ ppsIsSmooth

bool ParticleFx::ppsIsSmooth = false

Definition at line 61 of file particlefx.h.

◆ ppsScaleKeys

KeyList ParticleFx::ppsScaleKeys

Definition at line 59 of file particlefx.h.

◆ ppsValue

float ParticleFx::ppsValue = 0

Definition at line 58 of file particlefx.h.

◆ prefferedTime

uint64_t ParticleFx::prefferedTime = 0

Definition at line 128 of file particlefx.h.

◆ shpDim

Tempest::Vec3 ParticleFx::shpDim

Definition at line 72 of file particlefx.h.

◆ shpDistribType

Distribution ParticleFx::shpDistribType = Distribution::Rand

Definition at line 69 of file particlefx.h.

◆ shpDistribWalkSpeed

float ParticleFx::shpDistribWalkSpeed = 0.f

Definition at line 70 of file particlefx.h.

◆ shpFOR

Frame ParticleFx::shpFOR = Frame::Object

Definition at line 67 of file particlefx.h.

◆ shpIsVolume

bool ParticleFx::shpIsVolume = false

Definition at line 71 of file particlefx.h.

◆ shpMesh

const PfxEmitterMesh* ParticleFx::shpMesh = nullptr

Definition at line 73 of file particlefx.h.

◆ shpMesh_S

std::string ParticleFx::shpMesh_S

Definition at line 74 of file particlefx.h.

◆ shpMeshRender

bool ParticleFx::shpMeshRender = false

Definition at line 75 of file particlefx.h.

◆ shpOffsetVec

Tempest::Vec3 ParticleFx::shpOffsetVec

Definition at line 68 of file particlefx.h.

◆ shpScaleFPS

float ParticleFx::shpScaleFPS = 0.f

Definition at line 79 of file particlefx.h.

◆ shpScaleIsLooping

bool ParticleFx::shpScaleIsLooping = false

Definition at line 77 of file particlefx.h.

◆ shpScaleIsSmooth

bool ParticleFx::shpScaleIsSmooth = false

Definition at line 78 of file particlefx.h.

◆ shpScaleKeys

KeyList ParticleFx::shpScaleKeys

Definition at line 76 of file particlefx.h.

◆ shpType

EmitterType ParticleFx::shpType = EmitterType::Point

Definition at line 66 of file particlefx.h.

◆ timeStartEnd_S

std::string ParticleFx::timeStartEnd_S

Definition at line 125 of file particlefx.h.

◆ trlFadeSpeed

float ParticleFx::trlFadeSpeed = 0.f

Definition at line 113 of file particlefx.h.

◆ trlTexture

const Tempest::Texture2d* ParticleFx::trlTexture = nullptr

Definition at line 112 of file particlefx.h.

◆ trlWidth

float ParticleFx::trlWidth = 0.f

Definition at line 114 of file particlefx.h.

◆ useEmittersFOR

bool ParticleFx::useEmittersFOR = true

Definition at line 123 of file particlefx.h.

◆ velAvg

float ParticleFx::velAvg = 0.f

Definition at line 90 of file particlefx.h.

◆ velVar

float ParticleFx::velVar = 0.f

Definition at line 91 of file particlefx.h.

◆ visAlphaEnd

float ParticleFx::visAlphaEnd = 0.f

Definition at line 108 of file particlefx.h.

◆ visAlphaStart

float ParticleFx::visAlphaStart = 0.f

Definition at line 107 of file particlefx.h.

◆ visMaterial

Material ParticleFx::visMaterial

Definition at line 98 of file particlefx.h.

◆ visOrientation

Orientation ParticleFx::visOrientation = Orientation::None

Definition at line 99 of file particlefx.h.

◆ visSizeEndScale

float ParticleFx::visSizeEndScale = 0.f

Definition at line 106 of file particlefx.h.

◆ visSizeStart

Tempest::Vec2 ParticleFx::visSizeStart

Definition at line 105 of file particlefx.h.

◆ visTexAniFPS

float ParticleFx::visTexAniFPS = 0.f

Definition at line 101 of file particlefx.h.

◆ visTexAniIsLooping

bool ParticleFx::visTexAniIsLooping = false

Definition at line 102 of file particlefx.h.

◆ visTexColorEnd

Tempest::Vec3 ParticleFx::visTexColorEnd

Definition at line 104 of file particlefx.h.

◆ visTexColorStart

Tempest::Vec3 ParticleFx::visTexColorStart

Definition at line 103 of file particlefx.h.

◆ visTexIsQuadPoly

bool ParticleFx::visTexIsQuadPoly = true

Definition at line 100 of file particlefx.h.

◆ visYawAlign

bool ParticleFx::visYawAlign = false

Definition at line 109 of file particlefx.h.

◆ visZBias

bool ParticleFx::visZBias = false

Definition at line 110 of file particlefx.h.


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