/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/EnginePlugins/ParticlePlugin/Finalizer/ParticleFinalizer_LastPosition.cpp
65 строк
2 KB
Ingrater
Clang-format fixes and update to 18.1.1 (#1234)
10 мар 2024, 15:51
Не верифицирован
10 мар 2024, 15:51
2f16acf
Код
Авторство
О чём код?
#include <ParticlePlugin/ParticlePluginPCH.h> #include <Core/World/World.h> #include <Foundation/DataProcessing/Stream/ProcessingStreamIterator.h> #include <Foundation/Math/Declarations.h> #include <Foundation/Profiling/Profiling.h> #include <ParticlePlugin/Finalizer/ParticleFinalizer_LastPosition.h> // clang-format off EZ_BEGIN_DYNAMIC_REFLECTED_TYPE(ezParticleFinalizerFactory_LastPosition, 1, ezRTTIDefaultAllocator<ezParticleFinalizerFactory_LastPosition>) EZ_END_DYNAMIC_REFLECTED_TYPE; EZ_BEGIN_DYNAMIC_REFLECTED_TYPE(ezParticleFinalizer_LastPosition, 1, ezRTTIDefaultAllocator<ezParticleFinalizer_LastPosition>) EZ_END_DYNAMIC_REFLECTED_TYPE; // clang-format on ezParticleFinalizerFactory_LastPosition::ezParticleFinalizerFactory_LastPosition() = default; const ezRTTI* ezParticleFinalizerFactory_LastPosition::GetFinalizerType() const { return ezGetStaticRTTI<ezParticleFinalizer_LastPosition>(); } void ezParticleFinalizerFactory_LastPosition::CopyFinalizerProperties(ezParticleFinalizer* pObject, bool bFirstTime) const { ezParticleFinalizer_LastPosition* pFinalizer = static_cast<ezParticleFinalizer_LastPosition*>(pObject); } ////////////////////////////////////////////////////////////////////////// ezParticleFinalizer_LastPosition::ezParticleFinalizer_LastPosition() { // do this at the start of the frame, but after the initializers m_fPriority = -499.0f; } ezParticleFinalizer_LastPosition::~ezParticleFinalizer_LastPosition() = default; void ezParticleFinalizer_LastPosition::CreateRequiredStreams() { CreateStream("Position", ezProcessingStream::DataType::Float4, &m_pStreamPosition, false); CreateStream("LastPosition", ezProcessingStream::DataType::Float3, &m_pStreamLastPosition, false); } void ezParticleFinalizer_LastPosition::Process(ezUInt64 uiNumElements) { EZ_PROFILE_SCOPE("PFX: LastPosition"); ezProcessingStreamIterator<ezVec4> itPosition(m_pStreamPosition, uiNumElements, 0); ezProcessingStreamIterator<ezVec3> itLastPosition(m_pStreamLastPosition, uiNumElements, 0); while (!itPosition.HasReachedEnd()) { ezVec3 curPos = itPosition.Current().GetAsVec3(); ezVec3& lastPos = itLastPosition.Current(); lastPos = curPos; itPosition.Advance(); itLastPosition.Advance(); } } EZ_STATICLINK_FILE(ParticlePlugin, ParticlePlugin_Finalizer_ParticleFinalizer_LastPosition);