[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