14#include "../../../Animation/EasyEaseAnimator.h"
15#include "../CombineMaterial.h"
16#include "../Material.h"
27template<
size_t materialCount>
Combines multiple materials with specified blending methods and opacities.
A template class for implementing advanced animation easing.
@ Cosine
Smooth cosine interpolation.
Animates transitions and blends between multiple materials.
Material * dictionary[materialCount]
Holds the materials in the animator.
EasyEaseAnimator< materialCount > eEA
Animator for easing transitions.
void AddMaterial(Material::Method method, Material *material, uint16_t frames, float minOpacity, float maxOpacity)
Adds a material to the animation with specified properties.
float materialRatios[materialCount]
Stores the opacity ratios for each material.
MaterialAnimator()
Default constructor for MaterialAnimator.
CombineMaterial< materialCount > combineMaterial
Combines multiple materials for rendering.
bool baseMaterialSet
Indicates if the base material is set.
RGBColor GetRGB(const Vector3D &position, const Vector3D &normal, const Vector3D &uvw) override
Retrieves the color at a specific position, considering the blended materials.
void SetBaseMaterial(Material::Method method, Material *material)
Sets the base material for the animation.
float GetMaterialOpacity(Material &material)
Retrieves the current opacity of a material.
void AddMaterialFrame(Material &material, float opacity)
Adds a specific frame for a material in the animation.
void Update()
Updates the animator, advancing the transitions.
uint8_t currentMaterials
Tracks the number of materials added.
Abstract base class for rendering materials.
Method
Defines blending methods for combining colors.
Represents an RGB color and provides methods for manipulation.
Represents a 3D vector (X, Y, Z) and provides methods for vector arithmetic.