pixled-lib  1.0
Namespaces | Classes | Typedefs | Functions | Variables
pixled Namespace Reference

Namespaces

 animation
 
 arithmetic
 
 chroma
 
 chrono
 
 conditional
 
 detail
 
 geometry
 
 mapping
 
 random
 
 signal
 

Classes

class  color
 
struct  is_pixled_function
 
class  Constant
 
class  FctWrapper
 
class  Function
 
struct  point
 
class  angle
 
struct  line
 
struct  point_hash
 
struct  point_equal
 
class  box
 
class  bounding_box
 
class  spiral
 
struct  led
 
struct  led_equal
 
struct  Mapping
 
class  Output
 
class  Runtime
 

Typedefs

typedef float coordinate
 
typedef std::size_t index_t
 
typedef std::minstd_rand random_engine
 
typedef base::Function< colorAnimation
 
typedef unsigned long time
 

Functions

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Plus< typename std::common_type< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type >::type, typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type > operator+ (Arg1 &&f1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Plus< typename std::common_type< typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type >::type, typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type > operator+ (Arg1 &&c1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Plus< typename std::common_type< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type >::type, typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type > operator+ (Arg1 &&f1, Arg2 &&c2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Minus< typename std::common_type< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type >::type, typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type > operator- (Arg1 &&f1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Minus< typename std::common_type< typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type >::type, typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type > operator- (Arg1 &&c1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Minus< typename std::common_type< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type >::type, typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type > operator- (Arg1 &&f1, Arg2 &&c2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Multiplies< typename std::common_type< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type >::type, typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type > operator* (Arg1 &&f1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Multiplies< typename std::common_type< typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type >::type, typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type > operator* (Arg1 &&c1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Multiplies< typename std::common_type< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type >::type, typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type > operator* (Arg1 &&f1, Arg2 &&c2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Divides< typename std::common_type< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type >::type, typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type > operator/ (Arg1 &&f1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Divides< typename std::common_type< typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type >::type, typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type > operator/ (Arg1 &&c1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Divides< typename std::common_type< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type >::type, typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type > operator/ (Arg1 &&f1, Arg2 &&c2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Modulus< typename std::common_type< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type >::type, typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type > operator% (Arg1 &&f1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Modulus< typename std::common_type< typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type >::type, typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type > operator% (Arg1 &&c1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Modulus< typename std::common_type< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type >::type, typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type > operator% (Arg1 &&f1, Arg2 &&c2)
 
bool operator== (const color &c1, const color &c2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::Equal< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type > operator== (Arg1 &&f1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::Equal< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type > operator== (Arg1 &&f1, Arg2 &&c2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::Equal< typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type > operator== (Arg1 &&c1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::NotEqual< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type > operator!= (Arg1 &&f1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::NotEqual< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type > operator!= (Arg1 &&f1, Arg2 &&c2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::NotEqual< typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type > operator!= (Arg1 &&c1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::LessThan< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type > operator< (Arg1 &&f1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::LessThan< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type > operator< (Arg1 &&f1, Arg2 &&c2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::LessThan< typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type > operator< (Arg1 &&c1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::LessThanOrEqual< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type > operator<= (Arg1 &&f1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::LessThanOrEqual< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type > operator<= (Arg1 &&f1, Arg2 &&c2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::LessThanOrEqual< typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type > operator<= (Arg1 &&c1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::GreaterThan< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type > operator> (Arg1 &&f1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::GreaterThan< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type > operator> (Arg1 &&f1, Arg2 &&c2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::GreaterThan< typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type > operator> (Arg1 &&c1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::GreaterThanOrEqual< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type::Type > operator>= (Arg1 &&f1, Arg2 &&f2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::GreaterThanOrEqual< typename std::remove_reference< Arg1 >::type::Type, typename std::remove_reference< Arg2 >::type > operator>= (Arg1 &&f1, Arg2 &&c2)
 
template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::GreaterThanOrEqual< typename std::remove_reference< Arg1 >::type, typename std::remove_reference< Arg2 >::type::Type > operator>= (Arg1 &&c1, Arg2 &&f2)
 
template<typename To , typename From >
detail::Cast< To, typename std::remove_reference< From >::type::Type > Cast (From &&from)
 
float distance (const point &p1, const point &p2)
 
angle operator+ (const angle &a, const angle &b)
 
angle operator- (const angle &a, const angle &b)
 
bool operator== (const point &c1, const point &c2)
 
std::ostream & operator<< (std::ostream &o, const point &p)
 
float cos (const angle &a)
 
float sin (const angle &a)
 
float tan (const angle &a)
 
bool operator== (const led &l1, const led &l2)
 

Variables

static const float PI = 3.14159265358979323846f
 

Detailed Description

Main pixled namespace.

Typedef Documentation

◆ coordinate

typedef float pixled::coordinate

Type used to define point coordinates.

◆ index_t

typedef std::size_t pixled::index_t

Type used to index leds on a led strip.

◆ random_engine

typedef std::minstd_rand pixled::random_engine

Random engine pixled fundamental type.

◆ Animation

Pixled Animation definition.

An animation is simply defined as a base::Function that returns a color according to the current time and led.

◆ time

typedef unsigned long pixled::time

Type used to represent the current frame.

Function Documentation

◆ operator+() [1/4]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Plus< typename std::common_type< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type >::type, typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type > pixled::operator+ ( Arg1 &&  f1,
Arg2 &&  f2 
)

+ operator definition, where Arg1 and Arg2 are Functions.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg1 and Arg2 are pixled functions.
Parameters
f1left operand: lvalue or rvalue to a Function
f2right operand: lvalue or rvalue to a Function
Returns
an arithmetic::Plus instance that returns the common fundamental type between Arg1::Type and Arg2::Type.

◆ operator+() [2/4]

template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Plus< typename std::common_type< typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type >::type, typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type> pixled::operator+ ( Arg1 &&  c1,
Arg2 &&  f2 
)

+ operator definition, where Arg1 is an arithmetic constant and Arg2 is a Function.

Template Parameters
Arg1automatically deduced left operand fundamental type
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg2 is a pixled function and Arg1 is not
Parameters
c1left operand: arithmetic constant
f2right operand: lvalue or rvalue to a Function
Returns
an arithmetic::Plus instance that returns the common fundamental type between Arg1 and Arg2::Type.

◆ operator+() [3/4]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Plus< typename std::common_type< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type >::type, typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type> pixled::operator+ ( Arg1 &&  f1,
Arg2 &&  c2 
)

+ operator definition, where Arg1 is a Function and Arg2 is an arithmetic constant.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand fundamental type
EnableSFINAE condition: this overload is considered only if Arg1 is a pixled function and Arg2 is not
Parameters
f1left operand: arithmetic constant
c2right operand: lvalue or rvalue to a Function
Returns
an arithmetic::Plus instance that returns the common fundamental type between Arg1 and Arg2::Type.

◆ operator-() [1/4]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Minus< typename std::common_type< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type >::type, typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type > pixled::operator- ( Arg1 &&  f1,
Arg2 &&  f2 
)

- operator definition, where Arg1 and Arg2 are Functions.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg1 and Arg2 are pixled functions.
Parameters
f1left operand: lvalue or rvalue to a Function
f2right operand: lvalue or rvalue to a Function
Returns
an arithmetic::Minus instance that returns the common fundamental type between Arg1::Type and Arg2::Type.

◆ operator-() [2/4]

template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Minus< typename std::common_type< typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type >::type, typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type> pixled::operator- ( Arg1 &&  c1,
Arg2 &&  f2 
)

- operator definition, where Arg1 is an arithmetic constant and Arg2 is a Function.

Template Parameters
Arg1automatically deduced left operand fundamental type
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg2 is a pixled function and Arg1 is not
Parameters
c1left operand: arithmetic constant
f2right operand: lvalue or rvalue to a Function
Returns
an arithmetic::Minus instance that returns the common fundamental type between Arg1 and Arg2::Type.

◆ operator-() [3/4]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Minus< typename std::common_type< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type >::type, typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type> pixled::operator- ( Arg1 &&  f1,
Arg2 &&  c2 
)

- operator definition, where Arg1 is a Function and Arg2 is an arithmetic constant.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand fundamental type
EnableSFINAE condition: this overload is considered only if Arg1 is a pixled function and Arg2 is not
Parameters
f1left operand: arithmetic constant
c2right operand: lvalue or rvalue to a Function
Returns
an arithmetic::Minus instance that returns the common fundamental type between Arg1 and Arg2::Type.

◆ operator*() [1/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Multiplies< typename std::common_type< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type >::type, typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type > pixled::operator* ( Arg1 &&  f1,
Arg2 &&  f2 
)
  • operator definition, where Arg1 and Arg2 are Functions.
Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg1 and Arg2 are pixled functions.
Parameters
f1left operand: lvalue or rvalue to a Function
f2right operand: lvalue or rvalue to a Function
Returns
an arithmetic::Multiplies instance that returns the common fundamental type between Arg1::Type and Arg2::Type.

◆ operator*() [2/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Multiplies< typename std::common_type< typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type >::type, typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type > pixled::operator* ( Arg1 &&  c1,
Arg2 &&  f2 
)
  • operator definition, where Arg1 is an arithmetic constant and Arg2 is a Function.
Template Parameters
Arg1automatically deduced left operand fundamental type
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg2 is a pixled function and Arg1 is not
Parameters
c1left operand: arithmetic constant
f2right operand: lvalue or rvalue to a Function
Returns
an arithmetic::Multiplies instance that returns the common fundamental type between Arg1 and Arg2::Type.

◆ operator*() [3/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Multiplies< typename std::common_type< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type >::type, typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type> pixled::operator* ( Arg1 &&  f1,
Arg2 &&  c2 
)
  • operator definition, where Arg1 is a Function and Arg2 is an arithmetic constant.
Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand fundamental type
EnableSFINAE condition: this overload is considered only if Arg1 is a pixled function and Arg2 is not
Parameters
f1left operand: arithmetic constant
c2right operand: lvalue or rvalue to a Function
Returns
an arithmetic::Multiplies instance that returns the common fundamental type between Arg1 and Arg2::Type.

◆ operator/() [1/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Divides< typename std::common_type< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type >::type, typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type > pixled::operator/ ( Arg1 &&  f1,
Arg2 &&  f2 
)

/ operator definition, where Arg1 and Arg2 are Functions.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg1 and Arg2 are pixled functions.
Parameters
f1left operand: lvalue or rvalue to a Function
f2right operand: lvalue or rvalue to a Function
Returns
an arithmetic::Divide instance that returns the common fundamental type between Arg1::Type and Arg2::Type.

◆ operator/() [2/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Divides< typename std::common_type< typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type >::type, typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type > pixled::operator/ ( Arg1 &&  c1,
Arg2 &&  f2 
)

/ operator definition, where Arg1 is an arithmetic constant and Arg2 is a Function.

Template Parameters
Arg1automatically deduced left operand fundamental type
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg2 is a pixled function and Arg1 is not
Parameters
c1left operand: arithmetic constant
f2right operand: lvalue or rvalue to a Function
Returns
an arithmetic::Divide instance that returns the common fundamental type between Arg1 and Arg2::Type.

◆ operator/() [3/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Divides< typename std::common_type< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type >::type, typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type > pixled::operator/ ( Arg1 &&  f1,
Arg2 &&  c2 
)

/ operator definition, where Arg1 is a Function and Arg2 is an arithmetic constant.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand fundamental type
EnableSFINAE condition: this overload is considered only if Arg1 is a pixled function and Arg2 is not
Parameters
f1left operand: arithmetic constant
c2right operand: lvalue or rvalue to a Function
Returns
an arithmetic::Divide instance that returns the common fundamental type between Arg1 and Arg2::Type.

◆ operator%() [1/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Modulus< typename std::common_type< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type >::type, typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type > pixled::operator% ( Arg1 &&  f1,
Arg2 &&  f2 
)

% operator definition (modulus), where Arg1 and Arg2 are Functions returning integer types.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg1 and Arg2 are pixled functions.
Parameters
f1left operand: lvalue or rvalue to a Function
f2right operand: lvalue or rvalue to a Function
Returns
an arithmetic::Modulus instance that returns the common fundamental type between Arg1::Type and Arg2::Type.

◆ operator%() [2/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Modulus< typename std::common_type< typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type >::type, typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type > pixled::operator% ( Arg1 &&  c1,
Arg2 &&  f2 
)

% operator definition, where Arg1 is an integer constant and Arg2 is a Function.

Template Parameters
Arg1automatically deduced left operand fundamental type
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg2 is a pixled function and Arg1 is not
Parameters
c1left operand: integer constant
f2right operand: lvalue or rvalue to a Function
Returns
an arithmetic::Modulus instance that returns the common fundamental type between Arg1 and Arg2::Type.

◆ operator%() [3/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
arithmetic::Modulus< typename std::common_type< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type >::type, typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type > pixled::operator% ( Arg1 &&  f1,
Arg2 &&  c2 
)

% operator definition, where Arg1 is a Function and Arg2 is an integer constant.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand fundamental type
EnableSFINAE condition: this overload is considered only if Arg1 is a pixled function and Arg2 is not
Parameters
f1left operand: arithmetic constant
c2right operand: lvalue or rvalue to a Function
Returns
an arithmetic::Modulus instance that returns the common fundamental type between Arg1 and Arg2::Type.

◆ operator==() [1/6]

bool pixled::operator== ( const color c1,
const color c2 
)

Checks if the two colors are equal, i.e. if their red / green / blue components are equal.

Returns
true iff c1 == c2

◆ operator==() [2/6]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::Equal< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type > pixled::operator== ( Arg1 &&  f1,
Arg2 &&  f2 
)

== operator definition, where Arg1 and Arg2 are Functions.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg1 and Arg2 are pixled functions.
Parameters
f1left operand: lvalue or rvalue to a Function
f2right operand: lvalue or rvalue to a Function
Returns
a conditional::Equal instance

◆ operator==() [3/6]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::Equal< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type > pixled::operator== ( Arg1 &&  f1,
Arg2 &&  c2 
)

== operator definition, where Arg1 is a Function and Arg2 is a constant.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand fundamental type
EnableSFINAE condition: this overload is considered only if Arg1 is a pixled function and Arg2 is not
Parameters
f1left operand: arithmetic constant
c2right operand: lvalue or rvalue to a Function
Returns
a conditional::Equal instance

◆ operator==() [4/6]

template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::Equal< typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type > pixled::operator== ( Arg1 &&  c1,
Arg2 &&  f2 
)

== operator definition, where Arg1 is a constant and Arg2 is a Function.

Template Parameters
Arg1automatically deduced left operand fundamental type
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg2 is a pixled function and Arg1 is not
Parameters
c1left operand: integer constant
f2right operand: lvalue or rvalue to a Function
Returns
a conditional::Equal instance

◆ operator!=() [1/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::NotEqual< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type > pixled::operator!= ( Arg1 &&  f1,
Arg2 &&  f2 
)

!= operator definition, where Arg1 and Arg2 are Functions.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg1 and Arg2 are pixled functions.
Parameters
f1left operand: lvalue or rvalue to a Function
f2right operand: lvalue or rvalue to a Function
Returns
a conditional::NotEqual instance

◆ operator!=() [2/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::NotEqual< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type > pixled::operator!= ( Arg1 &&  f1,
Arg2 &&  c2 
)

!= operator definition, where Arg1 is a Function and Arg2 is a constant.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand fundamental type
EnableSFINAE condition: this overload is considered only if Arg1 is a pixled function and Arg2 is not
Parameters
f1left operand: arithmetic constant
c2right operand: lvalue or rvalue to a Function
Returns
a conditional::Equal instance

◆ operator!=() [3/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::NotEqual< typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type > pixled::operator!= ( Arg1 &&  c1,
Arg2 &&  f2 
)

!= operator definition, where Arg1 is a constant and Arg2 is a Function.

Template Parameters
Arg1automatically deduced left operand fundamental type
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg2 is a pixled function and Arg1 is not
Parameters
c1left operand: integer constant
f2right operand: lvalue or rvalue to a Function
Returns
a conditional::Equal instance

◆ operator<() [1/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::LessThan< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type > pixled::operator< ( Arg1 &&  f1,
Arg2 &&  f2 
)

< operator definition, where Arg1 and Arg2 are Functions.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg1 and Arg2 are pixled functions.
Parameters
f1left operand: lvalue or rvalue to a Function
f2right operand: lvalue or rvalue to a Function
Returns
a conditional::LessThan instance

◆ operator<() [2/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::LessThan< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type > pixled::operator< ( Arg1 &&  f1,
Arg2 &&  c2 
)

< operator definition, where Arg1 is a Function and Arg2 is a constant.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand fundamental type
EnableSFINAE condition: this overload is considered only if Arg1 is a pixled function and Arg2 is not
Parameters
f1left operand: arithmetic constant
c2right operand: lvalue or rvalue to a Function
Returns
a conditional::LessThan instance

◆ operator<() [3/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::LessThan< typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type > pixled::operator< ( Arg1 &&  c1,
Arg2 &&  f2 
)

< operator definition, where Arg1 is a constant and Arg2 is a Function.

Template Parameters
Arg1automatically deduced left operand fundamental type
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg2 is a pixled function and Arg1 is not
Parameters
c1left operand: integer constant
f2right operand: lvalue or rvalue to a Function
Returns
a conditional::LessThan instance

◆ operator<=() [1/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::LessThanOrEqual< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type > pixled::operator<= ( Arg1 &&  f1,
Arg2 &&  f2 
)

<= operator definition, where Arg1 and Arg2 are Functions.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg1 and Arg2 are pixled functions.
Parameters
f1left operand: lvalue or rvalue to a Function
f2right operand: lvalue or rvalue to a Function
Returns
a conditional::LessThanOrEqual instance

◆ operator<=() [2/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::LessThanOrEqual< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type > pixled::operator<= ( Arg1 &&  f1,
Arg2 &&  c2 
)

<= operator definition, where Arg1 is a Function and Arg2 is a constant.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand fundamental type
EnableSFINAE condition: this overload is considered only if Arg1 is a pixled function and Arg2 is not
Parameters
f1left operand: arithmetic constant
c2right operand: lvalue or rvalue to a Function
Returns
a conditional::LessThanOrEqual instance

◆ operator<=() [3/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::LessThanOrEqual< typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type > pixled::operator<= ( Arg1 &&  c1,
Arg2 &&  f2 
)

<= operator definition, where Arg1 is a constant and Arg2 is a Function.

Template Parameters
Arg1automatically deduced left operand fundamental type
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg2 is a pixled function and Arg1 is not
Parameters
c1left operand: integer constant
f2right operand: lvalue or rvalue to a Function
Returns
a conditional::LessThanOrEqual instance

◆ operator>() [1/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::GreaterThan< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type > pixled::operator> ( Arg1 &&  f1,
Arg2 &&  f2 
)

operator definition, where Arg1 and Arg2 are Functions.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg1 and Arg2 are pixled functions.
Parameters
f1left operand: lvalue or rvalue to a Function
f2right operand: lvalue or rvalue to a Function
Returns
a conditional::GreaterThan instance

◆ operator>() [2/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::GreaterThan< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type > pixled::operator> ( Arg1 &&  f1,
Arg2 &&  c2 
)

operator definition, where Arg1 is a Function and Arg2 is

a constant.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand fundamental type
EnableSFINAE condition: this overload is considered only if Arg1 is a pixled function and Arg2 is not
Parameters
f1left operand: arithmetic constant
c2right operand: lvalue or rvalue to a Function
Returns
a conditional::GreaterThan instance

◆ operator>() [3/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::GreaterThan< typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type > pixled::operator> ( Arg1 &&  c1,
Arg2 &&  f2 
)

operator definition, where Arg1 is a constant and Arg2 is a

Function.

Template Parameters
Arg1automatically deduced left operand fundamental type
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg2 is a pixled function and Arg1 is not
Parameters
c1left operand: integer constant
f2right operand: lvalue or rvalue to a Function
Returns
a conditional::GreaterThan instance

◆ operator>=() [1/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::GreaterThanOrEqual< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type::Type > pixled::operator>= ( Arg1 &&  f1,
Arg2 &&  f2 
)

>= operator definition, where Arg1 and Arg2 are Functions.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg1 and Arg2 are pixled functions.
Parameters
f1left operand: lvalue or rvalue to a Function
f2right operand: lvalue or rvalue to a Function
Returns
a conditional::GreaterThanOrEqual instance

◆ operator>=() [2/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< is_pixled_function< Arg1 >::value &&!is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::GreaterThanOrEqual< typename std::remove_reference<Arg1>::type::Type, typename std::remove_reference<Arg2>::type > pixled::operator>= ( Arg1 &&  f1,
Arg2 &&  c2 
)

>= operator definition, where Arg1 is a Function and Arg2 is a constant.

Template Parameters
Arg1automatically deduced left operand type (Function)
Arg2automatically deduced right operand fundamental type
EnableSFINAE condition: this overload is considered only if Arg1 is a pixled function and Arg2 is not
Parameters
f1left operand: arithmetic constant
c2right operand: lvalue or rvalue to a Function
Returns
a conditional::GreaterThanOrEqual instance

◆ operator>=() [3/3]

template<typename Arg1 , typename Arg2 , typename std::enable_if< !is_pixled_function< Arg1 >::value &&is_pixled_function< Arg2 >::value, bool >::type = true>
conditional::GreaterThanOrEqual< typename std::remove_reference<Arg1>::type, typename std::remove_reference<Arg2>::type::Type > pixled::operator>= ( Arg1 &&  c1,
Arg2 &&  f2 
)

>= operator definition, where Arg1 is a constant and Arg2 is a Function.

Template Parameters
Arg1automatically deduced left operand fundamental type
Arg2automatically deduced right operand type (Function)
EnableSFINAE condition: this overload is considered only if Arg2 is a pixled function and Arg1 is not
Parameters
c1left operand: integer constant
f2right operand: lvalue or rvalue to a Function
Returns
a conditional::GreaterThanOrEqual instance

◆ Cast()

template<typename To , typename From >
detail::Cast<To, typename std::remove_reference<From>::type::Type> pixled::Cast ( From &&  from)

Cast function, that allows to convert a function with return type From to a function with return type To.

Only the To template parameter must be provided: From can be automatically deduced.

using namespace pixled;
auto float_function = Cast<float>(T());
auto int_function = Cast<int>(X());
Definition: animation.cpp:3
Template Parameters
Toreturn type of the converted function (fundamental type)
Fromautomatically deducible return type of the input function (fundamental type)
Parameters
frombase::Function<From>
Returns
base::Function<To>

◆ distance()

float pixled::distance ( const point p1,
const point p2 
)

Returns the euclidian distance between the two points.

Parameters
p1point 1
p2point 2
Returns
distance between p1 and p2

◆ operator+() [4/4]

angle pixled::operator+ ( const angle a,
const angle b 
)

Sums a to b.

Returns
An angle with value a+b

◆ operator-() [4/4]

angle pixled::operator- ( const angle a,
const angle b 
)

Substracts b from a.

Returns
An angle with value a-b

◆ operator==() [5/6]

bool pixled::operator== ( const point p1,
const point p2 
)

Checks if the two points are equal, i.e. if their x/y coordinates are equal.

Returns
true iff p1 == p2

◆ operator<<()

std::ostream & pixled::operator<< ( std::ostream &  o,
const point p 
)

Point output stream operator.

◆ cos()

float pixled::cos ( const angle a)

Computes the cosine of a.

Parameters
aangle
Returns
cos(a)

◆ sin()

float pixled::sin ( const angle a)

Computes the sine of a.

Parameters
aangle
Returns
sin(a)

◆ tan()

float pixled::tan ( const angle a)

Computes the tangent of a.

Parameters
aangle
Returns
tan(a)

◆ operator==() [6/6]

bool pixled::operator== ( const led l1,
const led l2 
)

Checks if the two leds are equal, i.e. if their location and index are equal.

Returns
true iff l1 == l2

Variable Documentation

◆ PI

const float pixled::PI = 3.14159265358979323846f
static

Predefined PI constant.