From 59b0a4f74fd358d44c65137e41594fc7dc8a106e Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Fri, 14 Feb 2020 00:30:42 +0800 Subject: New scheme for visualizing note velocity. Updated default color scheme for better results. New class smColor, which is going to replace smColorHSVA & smColorRGBA in the future. --- visualization/extrasmeltutils.hpp | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'visualization/extrasmeltutils.hpp') diff --git a/visualization/extrasmeltutils.hpp b/visualization/extrasmeltutils.hpp index d827567..3cea3fc 100644 --- a/visualization/extrasmeltutils.hpp +++ b/visualization/extrasmeltutils.hpp @@ -1,3 +1,8 @@ +//Extra utilities for SMELT +//Chris Xiong, 2016-2020 +//License: LGPL v3 +//This file contains staging extensions for SMELT, +//which will be moved into SMELT once they are mature. #ifndef EXTRASMELTUTILS_H #define EXTRASMELTUTILS_H #include @@ -5,6 +10,7 @@ #include #include #include +#define EPSF 1e-6f class smEntity3D { friend class smEntity3DBuffer; @@ -34,6 +40,38 @@ class smEntity3DBuffer void drawBatch(); }; +class smColor +{ + private: + float r,g,b,h,s,v,a; + void update_rgb(); + void update_hsv(); + public: + smColor(); + void clamp(bool hsv); + float alpha()const; + float red()const; + float green()const; + float blue()const; + float hue()const; + float saturation()const; + float hslSaturation()const; + float value()const; + float lightness()const; + void setAlpha(float alpha); + void setRed(float red); + void setGreen(float green); + void setBlue(float blue); + void setHue(float hue); + void setSaturation(float saturation); + void setHSLSaturation(float saturation); + void setValue(float value); + void setLightness(float lightness); + smColor lighter(int factor); + smColor darker(int factor); + uint32_t toHWColor(); + static smColor fromHWColor(uint32_t color); +}; class smPSEmissionPositionGenerator { public: -- cgit v1.2.3