diff options
author | Frederico Linhares <fred@linhares.blue> | 2024-05-08 17:56:29 -0300 |
---|---|---|
committer | Frederico Linhares <fred@linhares.blue> | 2024-05-08 17:56:29 -0300 |
commit | 43821b0cffc5aa419c0218992f06f8962ae54a13 (patch) | |
tree | 97bdbbf710a78e6dcb181d92dd83e98d8b329c6d /src/vk/animation | |
parent | 70e156d47346ae3198c623e0af75e5703f894db3 (diff) |
refa Rename graphical engine to BluCat
Diffstat (limited to 'src/vk/animation')
-rw-r--r-- | src/vk/animation/frame.hpp | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/src/vk/animation/frame.hpp b/src/vk/animation/frame.hpp deleted file mode 100644 index 953a6a6..0000000 --- a/src/vk/animation/frame.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2022-2023 Frederico de Oliveira Linhares - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef CANDY_GEAR_VK_FRAME_H -#define CANDY_GEAR_VK_FRAME_H 1 - -#include <vector> - -#include "../core.hpp" - -namespace VK -{ - -template<typename T> -struct Frame -{ - const T value; - const float timestamp; - - Frame(T value, float timestamp): - value{value}, - timestamp{timestamp} - { - } - -}; - -template<typename T> -struct Channel -{ - int current_index{0}; - std::vector<Frame<T>> key_frames; - - inline glm::mat4 - interpolate( - float animation_time, - glm::mat4 (*single_frame)(T frame), - glm::mat4 (*multiple_frames)(T current_frame, T next_frame, float scale)) - { - if(this->key_frames.size() == 1) - return single_frame(this->key_frames[0].value); - else - { - while(animation_time > this->key_frames[current_index].timestamp) - this->current_index++; - - float scale_factor; - Frame<T> *previous_frame; - Frame<T> *next_frame{&(this->key_frames[this->current_index])}; - if(this->current_index == 0) - { - previous_frame = &(this->key_frames[this->key_frames.size() - 1]); - float midway_length{animation_time - 0}; - float frames_diff{next_frame->timestamp - 0}; - scale_factor = midway_length / frames_diff; - } - else - { - previous_frame = &(this->key_frames[this->current_index - 1]); - float midway_length{animation_time - previous_frame->timestamp}; - float frames_diff{next_frame->timestamp - previous_frame->timestamp}; - scale_factor = midway_length / frames_diff; - } - - return multiple_frames( - previous_frame->value, next_frame->value, scale_factor); - } - }; -}; - -} -#endif /* CANDY_GEAR_VK_FRAME_H */ |