[cig-commits] commit: Fixing a few things in the color map to do
Mercurial
hg at geodynamics.org
Mon Nov 24 11:29:31 PST 2008
changeset: 70:a9e7e97c1570
user: LukeHodkinson
date: Mon Aug 18 13:54:31 2008 +0000
files: Base/src/ColourMap.c Base/src/ColourMap.h
description:
Fixing a few things in the color map to do
with log scalings.
diff -r 6260f788c5ff -r a9e7e97c1570 Base/src/ColourMap.c
--- a/Base/src/ColourMap.c Mon Aug 11 10:31:37 2008 +0000
+++ b/Base/src/ColourMap.c Mon Aug 18 13:54:31 2008 +0000
@@ -39,7 +39,7 @@
*+ Patrick Sunter
*+ Greg Watson
*+
-** $Id: ColourMap.c 740 2007-10-11 08:05:31Z SteveQuenette $
+** $Id: ColourMap.c 784 2008-08-18 13:54:31Z LukeHodkinson $
**
**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
@@ -266,6 +266,8 @@ void _lucColourMap_Construct( void* colo
Stg_ComponentFactory_GetDouble( cf, self->name, "maximum", 1.0 ),
Stg_ComponentFactory_GetBool( cf, self->name, "logScale", False ),
Stg_ComponentFactory_GetBool( cf, self->name, "dynamicRange", False ) );
+
+ self->discrete = Stg_ComponentFactory_GetBool( cf, self->name, "discrete", False );
}
void _lucColourMap_Build( void* colourMap, void* data ) { }
@@ -297,17 +299,27 @@ void lucColourMap_GetColourFromValue( vo
return;
}
- colourBelow_I = (Colour_Index) ( ( colourCount - 1 ) * scaledValue );
- colourBelow = lucColourMap_GetColourFromList( self, colourBelow_I );
- colourAbove = lucColourMap_GetColourFromList( self, colourBelow_I + 1 );
-
- remainder = (float)( colourCount - 1 ) * scaledValue - (float) colourBelow_I;
-
- /* Do linear interpolation between colours */
- colour->red = ( colourAbove->red - colourBelow->red ) * remainder + colourBelow->red;
- colour->green = ( colourAbove->green - colourBelow->green ) * remainder + colourBelow->green;
- colour->blue = ( colourAbove->blue - colourBelow->blue ) * remainder + colourBelow->blue;
- colour->opacity = ( colourAbove->opacity - colourBelow->opacity ) * remainder + colourBelow->opacity;
+ if( !self->discrete ) {
+ colourBelow_I = (Colour_Index) ( ( colourCount - 1 ) * scaledValue );
+ colourBelow = lucColourMap_GetColourFromList( self, colourBelow_I );
+ colourAbove = lucColourMap_GetColourFromList( self, colourBelow_I + 1 );
+
+ remainder = (float)( colourCount - 1 ) * scaledValue - (float) colourBelow_I;
+
+ /* Do linear interpolation between colours */
+ colour->red = ( colourAbove->red - colourBelow->red ) * remainder + colourBelow->red;
+ colour->green = ( colourAbove->green - colourBelow->green ) * remainder + colourBelow->green;
+ colour->blue = ( colourAbove->blue - colourBelow->blue ) * remainder + colourBelow->blue;
+ colour->opacity = ( colourAbove->opacity - colourBelow->opacity ) * remainder + colourBelow->opacity;
+ }
+ else {
+ colourBelow_I = (Colour_Index) ( (float)colourCount * scaledValue );
+ colourBelow = lucColourMap_GetColourFromList( self, colourBelow_I );
+ colour->red = colourBelow->red;
+ colour->green = colourBelow->green;
+ colour->blue = colourBelow->blue;
+ colour->opacity = colourBelow->opacity;
+ }
}
void lucColourMap_GetColourFromValue_ExplicitOpacity( void* colourMap, double value, lucColour* colour, float opacity ) {
lucColourMap* self = colourMap;
diff -r 6260f788c5ff -r a9e7e97c1570 Base/src/ColourMap.h
--- a/Base/src/ColourMap.h Mon Aug 11 10:31:37 2008 +0000
+++ b/Base/src/ColourMap.h Mon Aug 18 13:54:31 2008 +0000
@@ -39,7 +39,7 @@
*+ Patrick Sunter
*+ Greg Watson
*+
-** $Id: ColourMap.h 639 2006-11-15 05:29:51Z CecileDuboz $
+** $Id: ColourMap.h 784 2008-08-18 13:54:31Z LukeHodkinson $
**
**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
@@ -65,6 +65,7 @@
double maximum; \
Bool logScale; \
Bool dynamicRange; \
+ Bool discrete;
struct lucColourMap {__lucColourMap};
More information about the CIG-COMMITS
mailing list