------------------------------ SwirlyLightSystem::Process
| 25 | // SwirlyLightSystem::Process |
| 26 | // |
| 27 | void SwirlyLightSystem::Process(fw::ComponentRange<SwirlyLightSystemView>& range) |
| 28 | { |
| 29 | // common vars |
| 30 | float const dt = core::ContextManager::GetInstance()->GetActiveContext()->time->DeltaTime(); |
| 31 | |
| 32 | for (SwirlyLightSystemView& view : range) |
| 33 | { |
| 34 | // update first angle |
| 35 | view.swirly->timeOffset1 += dt; |
| 36 | view.swirly->angle1 += dt * view.swirly->timeMult1 * (1.f + 0.9f * std::cosf(view.swirly->timeOffset1)); |
| 37 | |
| 38 | // update second angle |
| 39 | view.swirly->timeOffset2 += dt; |
| 40 | view.swirly->angle2 += dt * view.swirly->timeMult2 * (1.f + 0.9f * std::cosf(view.swirly->timeOffset2)); |
| 41 | |
| 42 | // calc position |
| 43 | vec3 pos = view.swirly->origin; |
| 44 | pos.x += view.swirly->radius1 * std::cosf(view.swirly->angle1); |
| 45 | pos.y -= view.swirly->radius2 * std::sinf(view.swirly->angle2); |
| 46 | pos.z -= view.swirly->radius1 * std::sinf(view.swirly->angle1); |
| 47 | |
| 48 | view.transf->SetPosition(pos); |
| 49 | |
| 50 | // update light brightness |
| 51 | view.light->SetBrightness(view.light->GetBrightness() + std::cosf(view.swirly->angle1) * 3.5f); |
| 52 | } |
| 53 | } |
| 54 | |
| 55 | |
| 56 | } // namespace demo |
nothing calls this directly
no test coverage detected