diff options
| author | Jon A. Cruz <jon@joncruz.org> | 2007-09-15 16:37:27 +0000 |
|---|---|---|
| committer | joncruz <joncruz@users.sourceforge.net> | 2007-09-15 16:37:27 +0000 |
| commit | c13edab979886a7dc0a23e8bf8b5da77fb5676de (patch) | |
| tree | d0af3cb43043747680e49269441978694656e6f8 /src/color.h | |
| parent | avoid code duplication, i.e. use sp_item_snappoints in the object-snapper.cpp (diff) | |
| download | inkscape-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.h | 54 |
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 |
