summaryrefslogtreecommitdiffstats
path: root/src/color.h
diff options
context:
space:
mode:
authorJon A. Cruz <jon@joncruz.org>2007-09-15 16:37:27 +0000
committerjoncruz <joncruz@users.sourceforge.net>2007-09-15 16:37:27 +0000
commitc13edab979886a7dc0a23e8bf8b5da77fb5676de (patch)
treed0af3cb43043747680e49269441978694656e6f8 /src/color.h
parentavoid code duplication, i.e. use sp_item_snappoints in the object-snapper.cpp (diff)
downloadinkscape-c13edab979886a7dc0a23e8bf8b5da77fb5676de.tar.gz
inkscape-c13edab979886a7dc0a23e8bf8b5da77fb5676de.zip
Refactoring SPColor to C++ and removing legacy CMYK implementation
(bzr r3753)
Diffstat (limited to 'src/color.h')
-rw-r--r--src/color.h54
1 files changed, 21 insertions, 33 deletions
diff --git a/src/color.h b/src/color.h
index 2c3f91fe7..e93943609 100644
--- a/src/color.h
+++ b/src/color.h
@@ -2,11 +2,12 @@
#define __SP_COLOR_H__
/** \file
- * Colors and colorspaces
+ * Colors.
*
* Author:
* Lauris Kaplinski <lauris@kaplinski.com>
* bulia byak <buliabyak@users.sf.net>
+ * Jon A. Cruz <jon@joncruz.org>
*
* Copyright (C) 2001-2002 Lauris Kaplinski
* Copyright (C) 2001 Ximian, Inc.
@@ -16,8 +17,6 @@
#include <gdk/gdktypes.h>
-struct SPColorSpace;
-
/* Useful composition macros */
#define SP_RGBA32_R_U(v) (((v) >> 24) & 0xff)
@@ -33,44 +32,34 @@ struct SPColorSpace;
#define SP_RGBA32_U_COMPOSE(r,g,b,a) ((((r) & 0xff) << 24) | (((g) & 0xff) << 16) | (((b) & 0xff) << 8) | ((a) & 0xff))
#define SP_RGBA32_F_COMPOSE(r,g,b,a) SP_RGBA32_U_COMPOSE (SP_COLOR_F_TO_U (r), SP_COLOR_F_TO_U (g), SP_COLOR_F_TO_U (b), SP_COLOR_F_TO_U (a))
-typedef enum {
- SP_COLORSPACE_CLASS_INVALID,
- SP_COLORSPACE_CLASS_NONE,
- SP_COLORSPACE_CLASS_UNKNOWN,
- SP_COLORSPACE_CLASS_PROCESS,
- SP_COLORSPACE_CLASS_SPOT
-} SPColorSpaceClass;
-
-typedef enum {
- SP_COLORSPACE_TYPE_INVALID,
- SP_COLORSPACE_TYPE_NONE,
- SP_COLORSPACE_TYPE_UNKNOWN,
- SP_COLORSPACE_TYPE_RGB,
- SP_COLORSPACE_TYPE_CMYK
-} SPColorSpaceType;
+struct SVGICCColor;
/**
- * An RGBA color in an SPColorSpace
+ * An RGB color with optional icc-color part
*/
struct SPColor {
- const SPColorSpace *colorspace;
- union {
- float c[4];
- } v;
-};
+ SPColor();
+ SPColor( SPColor const& other );
+ SPColor( float r, float g, float b );
+ SPColor( guint32 value );
+ ~SPColor();
-SPColorSpaceClass sp_color_get_colorspace_class (const SPColor *color);
-SPColorSpaceType sp_color_get_colorspace_type (const SPColor *color);
+ SPColor& operator= (SPColor const& other);
-void sp_color_copy (SPColor *dst, const SPColor *src);
+ bool operator == ( SPColor const& other ) const;
+ bool isClose( SPColor const& other, float epsilon ) const;
-gboolean sp_color_is_equal (const SPColor *c0, const SPColor *c1);
-gboolean sp_color_is_close (const SPColor *c0, const SPColor *c1, float epsilon);
+ void set( float r, float g, float b );
+ void set( guint32 value );
-void sp_color_set_rgb_float (SPColor *color, float r, float g, float b);
-void sp_color_set_rgb_rgba32 (SPColor *color, guint32 value);
+ guint32 toRGBA32( gint alpha ) const;
+ guint32 toRGBA32( gdouble alpha ) const;
-void sp_color_set_cmyk_float (SPColor *color, float c, float m, float y, float k);
+ SVGICCColor* icc;
+ union {
+ float c[3];
+ } v;
+};
guint32 sp_color_get_rgba32_ualpha (const SPColor *color, guint32 alpha);
guint32 sp_color_get_rgba32_falpha (const SPColor *color, float alpha);
@@ -90,6 +79,5 @@ void sp_color_rgb_to_cmyk_floatv (float *cmyk, float r, float g, float b);
void sp_color_cmyk_to_rgb_floatv (float *rgb, float c, float m, float y, float k);
-
#endif