libNeon
Loading...
Searching...
No Matches
neo::gradient Class Reference

#include <gradient.hpp>

Public Types

using iterator = gradient_entry *
 
using const_iterator = fixed_gradient_entry const *
 

Public Member Functions

 gradient ()=default
 
 gradient (std::vector< gradient_entry > entries)
 
 gradient (std::vector< fixed_gradient_entry > const &entries)
 
 gradient (std::vector< rgb > const &colors)
 
 gradient (std::vector< hsv > const &colors)
 
std::size_t size () const
 
bool empty () const
 
const_iterator begin () const
 
const_iterator end () const
 
iterator begin ()
 
iterator end ()
 
fixed_gradient_entryfront ()
 
fixed_gradient_entryback ()
 
fixed_gradient_entry const & front () const
 
fixed_gradient_entry const & back () const
 
std::pair< iterator, bool > emplace (fixed_gradient_entry entry)
 
std::pair< iterator, bool > emplace (gradient_entry entry)
 
const_iterator lower_bound (float t) const
 
const_iterator upper_bound (float t) const
 
void normalize ()
 
fixed_gradient_entry const & operator[] (std::size_t i) const
 
fixed_gradient_entryoperator[] (std::size_t i)
 
rgb sample (float t, blending_method=blend_linear) const
 
void sample_uniform (float period, float offset, std::vector< rgb > &buffer, blending_method method=blend_linear) const
 
std::vector< rgbsample_uniform (float period, float offset, std::size_t num_samples, std::vector< rgb > reuse_buffer={}, blending_method method=blend_linear) const
 
std::string to_string () const
 

Private Attributes

std::vector< gradient_entry_entries
 

Member Typedef Documentation

◆ const_iterator

◆ iterator

Constructor & Destructor Documentation

◆ gradient() [1/5]

neo::gradient::gradient ( )
default

◆ gradient() [2/5]

neo::gradient::gradient ( std::vector< gradient_entry entries)
explicit

◆ gradient() [3/5]

neo::gradient::gradient ( std::vector< fixed_gradient_entry > const &  entries)
explicit

◆ gradient() [4/5]

neo::gradient::gradient ( std::vector< rgb > const &  colors)
explicit

◆ gradient() [5/5]

neo::gradient::gradient ( std::vector< hsv > const &  colors)
explicit

Member Function Documentation

◆ back() [1/2]

fixed_gradient_entry & neo::gradient::back ( )
inline

◆ back() [2/2]

fixed_gradient_entry const & neo::gradient::back ( ) const
inline

◆ begin() [1/2]

gradient::iterator neo::gradient::begin ( )
inline

◆ begin() [2/2]

gradient::const_iterator neo::gradient::begin ( ) const
inline

◆ emplace() [1/2]

std::pair< gradient::iterator, bool > neo::gradient::emplace ( fixed_gradient_entry  entry)
inline

◆ emplace() [2/2]

std::pair< gradient::iterator, bool > neo::gradient::emplace ( gradient_entry  entry)

◆ empty()

bool neo::gradient::empty ( ) const
inline

◆ end() [1/2]

gradient::iterator neo::gradient::end ( )
inline

◆ end() [2/2]

gradient::const_iterator neo::gradient::end ( ) const
inline

◆ front() [1/2]

fixed_gradient_entry & neo::gradient::front ( )
inline

◆ front() [2/2]

fixed_gradient_entry const & neo::gradient::front ( ) const
inline

◆ lower_bound()

gradient::const_iterator neo::gradient::lower_bound ( float  t) const

◆ normalize()

void neo::gradient::normalize ( )

◆ operator[]() [1/2]

fixed_gradient_entry & neo::gradient::operator[] ( std::size_t  i)
inline

◆ operator[]() [2/2]

fixed_gradient_entry const & neo::gradient::operator[] ( std::size_t  i) const
inline

◆ sample()

rgb neo::gradient::sample ( float  t,
blending_method  method = blend_linear 
) const

◆ sample_uniform() [1/2]

std::vector< rgb > neo::gradient::sample_uniform ( float  period,
float  offset,
std::size_t  num_samples,
std::vector< rgb reuse_buffer = {},
blending_method  method = blend_linear 
) const

◆ sample_uniform() [2/2]

void neo::gradient::sample_uniform ( float  period,
float  offset,
std::vector< rgb > &  buffer,
blending_method  method = blend_linear 
) const

◆ size()

std::size_t neo::gradient::size ( ) const
inline

◆ to_string()

std::string neo::gradient::to_string ( ) const

◆ upper_bound()

gradient::const_iterator neo::gradient::upper_bound ( float  t) const

Member Data Documentation

◆ _entries

std::vector<gradient_entry> neo::gradient::_entries
private

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