14#include "../Material.h"
15#include "../../../../../Utils/Math/Mathematics.h"
16#include "../../../../../Utils/Math/Vector2D.h"
17#include "../../../../../Utils/Math/Rotation.h"
Abstract base class for rendering materials.
Represents an RGB color and provides methods for manipulation.
Generates striped patterns with configurable properties.
void SetStripeWidth(float stripeWidth)
Sets the stripe width.
void SetPositionOffset(Vector2D positionOffset)
Sets the position offset for the pattern.
void SetRotationAngle(float rotationAngle)
Sets the rotation angle for the pattern.
float waveAmplitude
Amplitude of the sinusoidal wave effect.
RGBColor * rgbColors
Array of colors used for the stripes.
Vector2D positionOffset
Offset for the stripe position.
void SetWaveAmplitude(float waveAmplitude)
Sets the wave amplitude for the sinusoidal effect.
void HueShift(float hueDeg)
Applies a hue shift to the stripe colors.
uint8_t colorCount
Number of colors in the stripe pattern.
float rotationAngle
Angle for rotating the pattern.
RGBColor GetRGB(const Vector3D &position, const Vector3D &normal, const Vector3D &uvw) override
Computes the color at a given position.
void SetRotationOffset(Vector2D rotationOffset)
Sets the rotation offset (center point) for the pattern.
RGBColor * baseRGBColors
Backup of the original colors for hue adjustments.
float wavePeriod
Period of the sinusoidal wave effect.
void SetWavePeriod(float wavePeriod)
Sets the wave period for the sinusoidal effect.
StripeMaterial(uint8_t colorCount, RGBColor *rgbColors, float stripeWidth, float wavePeriod, float waveAmplitude)
Constructs a StripeMaterial with given properties.
Vector2D rotationOffset
Rotation center for the pattern.
float stripeWidth
Width of each stripe in the pattern.
Represents a 2D vector (X, Y) and provides methods for vector arithmetic.
Represents a 3D vector (X, Y, Z) and provides methods for vector arithmetic.