Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
path: root/src/math
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2011-07-03 18:51:58 +0000
committerStijn Buys <ingar@osirion.org>2011-07-03 18:51:58 +0000
commitf2e0f1b5865e4927097214bd29d09c58844511bc (patch)
treeb997a53fc62289f95707d63df28cd68d5a765ab9 /src/math
parentce32ccfad5572f70a9cfbd80a4a3b6f8b3646392 (diff)
Convert RGB colors in the 0-255 range to 0.0-1.0 when reading clor values from inputstreams.
Diffstat (limited to 'src/math')
-rw-r--r--src/math/color.cc11
-rw-r--r--src/math/color.h3
2 files changed, 14 insertions, 0 deletions
diff --git a/src/math/color.cc b/src/math/color.cc
index b807b96..70a48e5 100644
--- a/src/math/color.cc
+++ b/src/math/color.cc
@@ -131,6 +131,12 @@ Color & Color::operator*=(const float scalar)
return (*this);
}
+Color & Color::operator/=(const float scalar)
+{
+ for (int i = 0; i < 3; i++)
+ rgba_data[i] /= scalar;
+ return (*this);
+}
std::ostream &operator<<(std::ostream &os, Color const & color)
{
@@ -143,6 +149,11 @@ std::istream &operator>>(std::istream & is, Color & color)
is >> color.r;
is >> color.g;
is >> color.b;
+
+ if ((color.r > 1.0f) || (color.g > 1.0f) || (color.b > 1.0f)) {
+ color /= 255.0f;
+ }
+
//is >> color.a;
color.a = 1.0;
return (is);
diff --git a/src/math/color.h b/src/math/color.h
index 8996af2..507402d 100644
--- a/src/math/color.h
+++ b/src/math/color.h
@@ -48,6 +48,9 @@ public:
/// multiply rgb values with scalar value.
Color & operator*=(const float scalar);
+
+ /// divide rgb values with scalar value.
+ Color & operator/=(const float scalar);
/// assign a value to an element of this color
/*! WARNING: range is not checked