Simple++
Powerfull and lightning fast C++ Library
Public Member Functions | Static Public Member Functions | List of all members
Graphic::GradientRadial< C, InterFunc > Class Template Reference

#include <Gradient.h>

Inheritance diagram for Graphic::GradientRadial< C, InterFunc >:
Graphic::Gradient< C, InterFunc >

Public Member Functions

 GradientRadial (const Math::Vec2< float > &center=Math::Vec2< float >(0.5f), const Math::Vec2< float > &radius=Math::Vec2< float >(1.0f), const InterFunc &functor=InterFunc())
 Create a new Radial Gradient. More...
 
void setCenter (const Math::Vec2< float > &center)
 Set the center of the radial gradient (between 0 and 1) More...
 
const Math::Vec2< float > & getCenter () const
 get the center of this gradient More...
 
void setRadius (const Math::Vec2< float > &radius)
 set the radius More...
 
const Math::Vec2< float > & getRadius () const
 get the radius of this gradient More...
 
int computeIndex (const Math::Vec2< float > &p, int maxIndex) const
 Compute the index in the interpolated array. More...
 
- Public Member Functions inherited from Graphic::Gradient< C, InterFunc >
 ~Gradient ()
 destructor More...
 
void addPoint (float position, const C &color)
 add a point to this gradient. More...
 
Vector< GradientPoint< C > * >::Size getNumPoints () const
 get the number of points of this gradient. More...
 
GradientPoint< C > & operator[] (typename Vector< GradientPoint< C > * >::Size i)
 Operator [] to direct access points inside this gradient. More...
 
const GradientPoint< C > & operator[] (typename Vector< GradientPoint< C > * >::Size i) const
 Operator [] to direct access points inside this gradient. More...
 
template<size_t N, typename InterFunc2 = InterFunc>
void computeInterpolation (C(&buffer)[N], const InterFunc2 &functor=InterFunc(), float begin=0.0f, float end=1.0f) const
 Compute the interpolation of every color of this gradient in an 1D array. More...
 
template<typename InterFunc2 = InterFunc>
void computeInterpolation (C *buffer, size_t size, const InterFunc2 &functor=InterFunc(), float begin=0.0f, float end=1.0f) const
 Compute the interpolation of every color of this gradient in an 1D array. More...
 
void computeInterpolation (C *buffer, size_t size, float begin=0.0f, float end=1.0f) const
 Compute the interpolation of every color of this gradient in an 1D array. More...
 

Static Public Member Functions

static int computeIndex (const Math::Vec2< float > &p, int maxIndex, const Math::Vec2< float > &radius)
 Compute the index in the interpolated array. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Graphic::Gradient< C, InterFunc >
 Gradient (const InterFunc &functor=InterFunc())
 Create a new gradient. More...
 

Constructor & Destructor Documentation

template<typename C , typename InterFunc >
Graphic::GradientRadial< C, InterFunc >::GradientRadial ( const Math::Vec2< float > &  center = Math::Vec2<float>( 0.5f ),
const Math::Vec2< float > &  radius = Math::Vec2<float>( 1.0f ),
const InterFunc &  functor = InterFunc() 
)

Create a new Radial Gradient.

Parameters
centerPoint of the center relatively of the surface applied (between 0 and 1)
radiusRadius horizontal and vertical relatively to the size of the surface applied (between 0 and 1)
functorFunctor used to interpolate the colors overloaded with : template<typename C> inline C operator()(const C & color1, const C & color2, float x) const;

Member Function Documentation

template<typename C , typename InterFunc >
int Graphic::GradientRadial< C, InterFunc >::computeIndex ( const Math::Vec2< float > &  p,
int  maxIndex 
) const

Compute the index in the interpolated array.

Parameters
pPoint relative of this gradient.
maxIndexmaximal value of an interpolation table index.
Returns
Computed index.
template<typename C , typename InterFunc >
int Graphic::GradientRadial< C, InterFunc >::computeIndex ( const Math::Vec2< float > &  p,
int  maxIndex,
const Math::Vec2< float > &  radius 
)
static

Compute the index in the interpolated array.

Parameters
pPoint relative of this gradient.
maxIndexmaximal value of an interpolation table index.
radiusRadius of the gradient (between 0.0 and 1.0)
Returns
Computed index.
template<typename C , typename InterFunc >
const Math::Vec2< float > & Graphic::GradientRadial< C, InterFunc >::getCenter ( ) const

get the center of this gradient

Returns
Center
template<typename C , typename InterFunc >
const Math::Vec2< float > & Graphic::GradientRadial< C, InterFunc >::getRadius ( ) const

get the radius of this gradient

Returns
Radius of this gradient
template<typename C , typename InterFunc >
void Graphic::GradientRadial< C, InterFunc >::setCenter ( const Math::Vec2< float > &  center)

Set the center of the radial gradient (between 0 and 1)

Parameters
centerCenter of the radial gradient (between 0 and 1)
template<typename C , typename InterFunc >
void Graphic::GradientRadial< C, InterFunc >::setRadius ( const Math::Vec2< float > &  radius)

set the radius

Parameters
radiusRadius of this radial gradient relatively of the size of the surface (between 0 and 1)

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