Changeset 5119 for geovis/trunk/ColorMap.cpp
- Timestamp:
- Mar 11, 2015, 3:11:07 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
geovis/trunk/ColorMap.cpp
r5118 r5119 34 34 float x = (float)i/(height-1); 35 35 float val = min + (max - min) * x; 36 osg::Vec4f rgb = map->getColor(val); 36 osg::Vec4f rgba = map->getColor(val); 37 float opacity = rgba[3]; 37 38 unsigned char color[3]; 38 39 if (opaque) { 39 color[0] = (unsigned char)(255. * (bgr ? rgb [2] : rgb[0]));40 color[1] = (unsigned char)(255. * rgb [1]);41 color[2] = (unsigned char)(255. * (bgr ? rgb [0] : rgb[2]));40 color[0] = (unsigned char)(255. * (bgr ? rgba[2] : rgba[0])); 41 color[1] = (unsigned char)(255. * rgba[1]); 42 color[2] = (unsigned char)(255. * (bgr ? rgba[0] : rgba[2])); 42 43 } else { 43 float opacity = rgb[3]; 44 color[0] = (unsigned char)(255. * (bgColor[0] * (1.0 - opacity) + (bgr ? rgb[2] : rgb[0]) * opacity)); 45 color[1] = (unsigned char)(255. * (bgColor[1] * (1.0 - opacity) + rgb[1] * opacity)); 46 color[2] = (unsigned char)(255. * (bgColor[2] * (1.0 - opacity) + (bgr ? rgb[0] : rgb[2]) * opacity)); 44 color[0] = (unsigned char)(255. * (bgColor[0] * (1.0 - opacity) + (bgr ? rgba[2] : rgba[0]) * opacity)); 45 color[1] = (unsigned char)(255. * (bgColor[1] * (1.0 - opacity) + rgba[1] * opacity)); 46 color[2] = (unsigned char)(255. * (bgColor[2] * (1.0 - opacity) + (bgr ? rgba[0] : rgba[2]) * opacity)); 47 47 } 48 48 for (int j = 0; j < width; j++) { … … 50 50 dst += 3; 51 51 if (bytesPerPixel == 4) { 52 *(dst++) = (unsigned char) 255.;52 *(dst++) = (unsigned char)(255. * (opaque ? 1.0 : opacity)); 53 53 } 54 54 } … … 60 60 float val = min + (max - min) * x; 61 61 osg::Vec4f rgb = map->getColor(val); 62 double opacity = rgb[3]; 62 63 unsigned char color[3]; 63 64 if (opaque) { … … 66 67 color[2] = (unsigned char)(255. * (bgr ? rgb[0] : rgb[2])); 67 68 } else { 68 double opacity = rgb[3];69 69 color[0] = (unsigned char)(255. * (bgColor[0] * (1.0 - opacity) + (bgr ? rgb[2] : rgb[0]) * opacity)); 70 70 color[1] = (unsigned char)(255. * (bgColor[1] * (1.0 - opacity) + rgb[1] * opacity)); … … 74 74 dst += 3; 75 75 if (bytesPerPixel == 4) { 76 *(dst++) = (unsigned char) 255.;76 *(dst++) = (unsigned char)(255. * (opaque ? 1.0 : opacity)); 77 77 } 78 78 }
Note: See TracChangeset
for help on using the changeset viewer.