-
Notifications
You must be signed in to change notification settings - Fork 0
/
transition_color_fill.cpp
37 lines (28 loc) · 990 Bytes
/
transition_color_fill.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <cstdint>
#include "core/properties.hpp"
#include "transition_color.hpp"
#include "types.hpp"
using namespace std;
namespace sc {
static PropertyKey const colorProperty( "color" );
class FillColorTransition final
: public ColorTransition
{
public:
FillColorTransition( string&& id, Manager& manager, PropertyNode const& properties )
: ColorTransition( move( id ) )
, color_( properties[ colorProperty ].as< Rgb >() )
{
}
protected:
void transform( ChannelBuffer const& values, ColorBuffer& output ) const override
{
std::transform( values.cbegin(), values.cend(), output.begin(), [this]( auto const& value ) {
return Rgb( color_ ).scale( RangedUnit< double >( value ).get() );
} );
}
private:
Rgb color_;
};
static TransitionRegistry< FillColorTransition > registry( "color:fill" );
} // namespace sc