14#include "../Material.h"
15#include "../Static/GradientMaterial.h"
16#include "../../../Physics/Utils/BouncePhysics.h"
17#include "../../../Utils/Filter/MaxFilter.h"
18#include "../../../Utils/Filter/MinFilter.h"
19#include "../../../Utils/Math/Mathematics.h"
45 RGBColor rainbowSpectrum[6] = {
RGBColor(255, 0, 0),
RGBColor(255, 255, 0),
RGBColor(0, 255, 0),
RGBColor(0, 255, 255),
RGBColor(0, 0, 255),
RGBColor(255, 0, 255)};
Simulates bouncing physics with gravity and velocity damping.
Creates a customizable gradient material for rendering.
Abstract base class for rendering materials.
Implements a maximum filter over a sliding window.
Implements a minimum filter over a sliding window.
A dynamic oscilloscope material for visualizing audio signals.
MaxFilter< 40 > maxF
Filter for tracking maximum values.
RGBColor rainbowSpectrum[6]
Predefined rainbow colors.
void SetPosition(Vector2D offset)
Sets the position of the oscilloscope visualization.
float radius
Radius for circular visualization patterns.
float * data
Pointer to the audio sample data.
BouncePhysics * bPhy[128]
Array of BouncePhysics instances for dynamic bouncing behavior.
float hueAngle
Hue angle for color adjustments.
float midPoint
Midpoint for audio data normalization.
RGBColor GetRGB(const Vector3D &position, const Vector3D &normal, const Vector3D &uvw) override
Computes the color at a given position in the visualization.
float * GetSampleData()
Retrieves the current sample data.
void SetSize(Vector2D size)
Sets the size of the oscilloscope visualization.
MinFilter< 40 > minF
Filter for tracking minimum values.
~Oscilloscope()
Destroys the Oscilloscope instance.
Vector2D offset
The position offset of the visualization.
float angle
Rotation angle of the visualization.
void Update(float *data)
Updates the oscilloscope visualization based on new audio data.
GradientMaterial< 6 > gM
Gradient material for the rainbow spectrum.
float maxValue
Minimum and maximum values for data scaling.
uint8_t colors
Number of colors in the gradient.
void SetMaterial(Material *material)
Sets an additional material for visual effects.
void SetRotation(float angle)
Sets the rotation angle of the visualization.
Material * material
Pointer to an additional material for effects.
uint8_t bins
Number of bins for audio data processing.
void SetHueAngle(float hueAngle)
Sets the hue angle for color adjustments.
Vector2D size
The size of the oscilloscope visualization.
Represents an RGB color and provides methods for manipulation.
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.