ProtoTracer  1.0
Real-time 3D rendering and animation engine
Loading...
Searching...
No Matches
RainbowSpiral Class Reference

A dynamic material creating a colorful rainbow spiral animation. More...

#include <RainbowSpiral.h>

Inheritance diagram for RainbowSpiral:
Collaboration diagram for RainbowSpiral:

Public Member Functions

 RainbowSpiral ()
 Default constructor for RainbowSpiral.
 
void Update (float ratio)
 Updates the material animation based on the time ratio.
 
MaterialGetMaterial ()
 Retrieves the associated spiral material.
 
RGBColor GetRGB (const Vector3D &position, const Vector3D &normal, const Vector3D &uvw) override
 Computes the color at a given position in the material.
 
- Public Member Functions inherited from Material
virtual ~Material ()=default
 Virtual destructor for proper cleanup in derived classes.
 

Private Attributes

FunctionGenerator fGenMatBend = FunctionGenerator(FunctionGenerator::Sine, 0.8f, 0.9f, 6.7f)
 Function generator for animating spiral bending.
 
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)}
 Predefined rainbow color spectrum.
 
SpiralMaterial spiralMaterial = SpiralMaterial(6, rainbowSpectrum, 3.0f, 7.0f)
 Spiral material configured with rainbow spectrum and scale parameters.
 

Additional Inherited Members

- Public Types inherited from Material
enum  Method {
  Base , Add , Subtract , Multiply ,
  Divide , Darken , Lighten , Screen ,
  Overlay , SoftLight , Replace , EfficientMask ,
  Bypass
}
 Defines blending methods for combining colors. More...
 

Detailed Description

A dynamic material creating a colorful rainbow spiral animation.

The RainbowSpiral class generates a visually dynamic effect by combining a spiral material with a rainbow gradient and function-driven animation.

Definition at line 25 of file RainbowSpiral.h.

Constructor & Destructor Documentation

◆ RainbowSpiral()

RainbowSpiral ( )
inline

Default constructor for RainbowSpiral.

Definition at line 35 of file RainbowSpiral.h.

Member Function Documentation

◆ GetMaterial()

Material * GetMaterial ( )
virtual

Retrieves the associated spiral material.

Returns
Pointer to the SpiralMaterial instance.

Implements AnimatedMaterial.

Definition at line 9 of file RainbowSpiral.cpp.

References spiralMaterial.

◆ GetRGB()

RGBColor GetRGB ( const Vector3D position,
const Vector3D normal,
const Vector3D uvw 
)
overridevirtual

Computes the color at a given position in the material.

Parameters
positionThe position in 3D space.
normalThe surface normal vector.
uvwThe texture coordinates.
Returns
The computed color as an RGBColor.

Implements Material.

Definition at line 13 of file RainbowSpiral.cpp.

References SpiralMaterial::GetRGB(), and spiralMaterial.

◆ Update()

Member Data Documentation

◆ fGenMatBend

FunctionGenerator fGenMatBend = FunctionGenerator(FunctionGenerator::Sine, 0.8f, 0.9f, 6.7f)
private

Function generator for animating spiral bending.

Definition at line 27 of file RainbowSpiral.h.

Referenced by Update().

◆ rainbowSpectrum

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)}
private

Predefined rainbow color spectrum.

Definition at line 28 of file RainbowSpiral.h.

◆ spiralMaterial

SpiralMaterial spiralMaterial = SpiralMaterial(6, rainbowSpectrum, 3.0f, 7.0f)
private

Spiral material configured with rainbow spectrum and scale parameters.

Definition at line 29 of file RainbowSpiral.h.

Referenced by GetMaterial(), GetRGB(), and Update().


The documentation for this class was generated from the following files: