Commit 65ef1f48 authored by Alexander Wiebel's avatar Alexander Wiebel
Browse files

Merge branch 'main' of bsvgit.informatik.uni-leipzig.de:openwalnut/openwalnut

parents de1dd781 8cc95aff
......@@ -41,11 +41,12 @@ src/modules/modules-user.toolbox
.cproject
.settings
# Visual Studio Code config files
.vscode
# jetbrains CLion / IntelliJ files
**/.idea
.vscode
openwalnut.log
# AppImage
......
......@@ -6,6 +6,9 @@ stages:
- Build_appimage_stage
- Upload_artifacts_stage
variables:
IMAGE_NAME: ladbukkit/openwalnut_build_environment:1.6
cache:
key: $CI_COMMIT_REF_SLUG
paths:
......@@ -16,7 +19,7 @@ cache:
create_directory_and_cmake___release:
stage: Initialization_stage
image: ladbukkit/openwalnut_build_environment:1.5.2
image: ${IMAGE_NAME}
script:
- ls
- mkdir -p build
......@@ -29,7 +32,7 @@ create_directory_and_cmake___release:
create_directory_and_cmake___debug:
stage: Initialization_stage
image: ladbukkit/openwalnut_build_environment:1.5.2
image: ${IMAGE_NAME}
script:
- ls
- mkdir -p build
......@@ -42,7 +45,7 @@ create_directory_and_cmake___debug:
stylecheck_job:
stage: Stylecheck_doc_stage
image: ladbukkit/openwalnut_build_environment:1.5.2
image: ${IMAGE_NAME}
script:
- pwd
- cd build/release
......@@ -52,7 +55,7 @@ stylecheck_job:
doc_job:
stage: Stylecheck_doc_stage
image: ladbukkit/openwalnut_build_environment:1.5.2
image: ${IMAGE_NAME}
script:
- doxygen --version
- pwd
......@@ -63,7 +66,7 @@ doc_job:
buildAndTest:
stage: Build_and_test_release_stage
image: ladbukkit/openwalnut_build_environment:1.5.2
image: ${IMAGE_NAME}
script:
- pwd
- cd build/release
......@@ -74,7 +77,7 @@ buildAndTest:
buildAndTestDebug:
stage: Build_and_test_debug_stage
image: ladbukkit/openwalnut_build_environment:1.5.2
image: ${IMAGE_NAME}
script:
- pwd
- cd build/debug
......@@ -85,7 +88,7 @@ buildAndTestDebug:
buildAppImage:
stage: Build_appimage_stage
image: ladbukkit/openwalnut_build_environment:1.5.2
image: ${IMAGE_NAME}
script:
- pwd
- cd tools/AppImage
......@@ -96,7 +99,7 @@ buildAppImage:
uploadArtifacts:
stage: Upload_artifacts_stage
image: ladbukkit/openwalnut_build_environment:1.5.2
image: ${IMAGE_NAME}
script:
- pwd
- cd tools/upload
......
Non-Compile Resources
=====================
This directory contains all additional files. They usually need no compilation
This directory contains all additional files. They usually do not need to be compiled
and need to be copied to a certain place.
This directory contains directories for each component defined in the CMake files.
......
......@@ -856,7 +856,7 @@ public:
template< typename RHSValueT >
void operator/=( const RHSValueT& rhs )
{
operator=( ( *this ) / rhs );
operator=( ( *this ) / static_cast< double >( rhs ) );
}
/**
......@@ -1545,4 +1545,3 @@ std::istream& operator>>( std::istream& in, WMatrixFixed< ValueT, Rows, Cols, Va
}
#endif // WMATRIXFIXED_H
......@@ -40,7 +40,7 @@ class WDataSetFiberVectorTest : public CxxTest::TestSuite
{
public:
/**
* Generates the test evironment
* Generates the test environment
*/
void setUp( void )
{
......
......@@ -43,6 +43,13 @@
#include "WGEImage.h"
#include "WGETextureUtils.h"
#include "callbacks/WGEFunctorCallback.h"
#include "icons/colormap_atlas.xpm"
#include "icons/colormap_bluegreenpurple.xpm"
#include "icons/colormap_grayscale.xpm"
#include "icons/colormap_hotiron.xpm"
#include "icons/colormap_neg2pos.xpm"
#include "icons/colormap_rainbow.xpm"
#include "icons/colormap_viridis.xpm"
/**
* This calls serves a simple purpose: have a texture and its scaling information together which allows very easy binding of textures to nodes
......@@ -553,14 +560,29 @@ void WGETexture< TextureType >::setupProperties( double scale, double min )
m_interpolation = m_properties->addProperty( "Interpolate", "Interpolation of the volume data.", true, m_propCondition );
m_colorMapSelectionsList = std::shared_ptr< WItemSelection >( new WItemSelection() );
m_colorMapSelectionsList->addItem( "Grayscale", "" );
m_colorMapSelectionsList->addItem( "Rainbow", "" );
m_colorMapSelectionsList->addItem( "Hot iron", "" );
m_colorMapSelectionsList->addItem( "Negative to positive", "" );
m_colorMapSelectionsList->addItem( "Atlas", "" );
m_colorMapSelectionsList->addItem( "Blue-Green-Purple", "" );
m_colorMapSelectionsList->addItem( "Vector", "" );
m_colorMapSelectionsList->addItem( "Viridis", "" );
m_colorMapSelectionsList->addItem( "Grayscale",
"Gray values between black (low) and white (high)." ,
colormap_grayscale_xpm );
m_colorMapSelectionsList->addItem( "Rainbow",
"Fading through the rainbow colors.",
colormap_rainbow_xpm );
m_colorMapSelectionsList->addItem( "Hot iron",
"Fades between red and yellowish colors.",
colormap_hotiron_xpm );
m_colorMapSelectionsList->addItem( "Negative to positive",
"[Experimental] Maps red and blue to the positive and negative part of the interval linearly.",
colormap_neg2pos_xpm );
m_colorMapSelectionsList->addItem( "Atlas",
"Tries to find distinct colors for neighbouring values",
colormap_atlas_xpm );
m_colorMapSelectionsList->addItem( "Blue-Green-Purple",
"Fading between blue, green and purple.",
colormap_bluegreenpurple_xpm );
m_colorMapSelectionsList->addItem( "Vector",
"Maps vector coordinates (x,y,z) to color channels (r,g,b)." );
m_colorMapSelectionsList->addItem( "Viridis",
"Optimized for perception. From purple via green to yellow. Default colormap in matplolib as of 2022.",
colormap_viridis_xpm );
m_colorMap = m_properties->addProperty( "Colormap", "The colormap of this texture.", m_colorMapSelectionsList->getSelectorFirst() );
WPropertyHelper::PC_SELECTONLYONE::addTo( m_colorMap );
......
......@@ -116,7 +116,9 @@ WGEViewer::WGEViewer( std::string name, osg::ref_ptr<osg::Referenced> wdata, int
}
// add the stats handler
m_View->addEventHandler( new osgViewer::StatsHandler );
osgViewer::StatsHandler* statsHandler = new osgViewer::StatsHandler();
statsHandler->setKeyEventTogglesOnScreenStats( 'F' );
m_View->addEventHandler( statsHandler );
// Properties of the view. Collects props of the effects and similar
m_properties = std::shared_ptr< WProperties >( new WProperties( "Viewer Properties", "The view's properties" ) );
......
......@@ -106,6 +106,27 @@ WGEGridNode::WGEGridNode( WGridRegular3D::ConstSPtr grid ):
m_labelGeode->addDrawable( label );
m_borderLabels[7] = label;
// x-axis
label = new WGELabel( *label );
label->setPosition( osg::Vec3( 0.5, 0.0, 0.0 ) );
m_labelGeode->addDrawable( label );
m_axisLabels[0] = label;
// y-axis
label = new WGELabel( *label );
label->setPosition( osg::Vec3( 0.0, 0.5, 0.0 ) );
m_labelGeode->addDrawable( label );
m_axisLabels[1] = label;
// z-axis
label = new WGELabel( *label );
label->setPosition( osg::Vec3( 0.0, 0.0, 0.5 ) );
m_labelGeode->addDrawable( label );
m_axisLabels[2] = label;
// add the others too
addChild( m_boundaryGeode );
addChild( m_innerGridGeode );
......@@ -249,6 +270,10 @@ void WGEGridNode::callback( osg::Node* /*node*/ )
m_borderLabels[i]->setText( vec2str( m_borderLabels[i]->getPosition() * m ) );
}
m_axisLabels[0]->setText( "x" );
m_axisLabels[1]->setText( "y" );
m_axisLabels[2]->setText( "z" );
// set node mask of labels, bbox and grid
m_labelGeode->setNodeMask( 0xFFFFFFFF * m_showLabels );
m_boundaryGeode->setNodeMask( 0xFFFFFFFF * m_showBBox );
......
......@@ -192,10 +192,15 @@ private:
osg::ref_ptr< osg::Geode > m_innerGridGeode;
/**
* The labels at the corner.
* The labels at the corners.
*/
WGELabel::SPtr m_borderLabels[8];
/**
* The labels at the axes.
*/
WGELabel::SPtr m_axisLabels[3];
/**
* The geode keeping the labels
*/
......
/* XPM */
static const char * colormap_atlas_xpm[] = {
"64 32 15 1",
" c #000000",
". c #0000FF",
"+ c #00FF00",
"@ c #00FFFF",
"# c #FF0000",
"$ c #FF00FF",
"% c #FFFF00",
"& c #FFFFFF",
"* c #D9D900",
"= c #0000D9",
"- c #00D900",
"; c #00D9D9",
"> c #D90000",
", c #D900D9",
"' c #D9D9D9",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*",
" ...+++@@@###$$$%%%&&&***===---;;;>>>,,,***''';;;==---;;;>>>,,,*"};
/* XPM */
static const char * colormap_bluegreenpurple_xpm[] = {
"64 32 64 1",
" c #000BFF",
". c #001FFF",
"+ c #0032FF",
"@ c #0046FF",
"# c #005AFF",
"$ c #006EFF",
"% c #0082FF",
"& c #0095FF",
"* c #00A9FF",
"= c #00BDFF",
"- c #00D1FF",
"; c #00E5FF",
"> c #00F8FF",
", c #00FFF1",
"' c #00FFDD",
") c #00FFCA",
"! c #00FFB6",
"~ c #00FFA2",
"{ c #00FF8E",
"] c #00FF7A",
"^ c #00FF66",
"/ c #00FF52",
"( c #00FF3F",
"_ c #00FF2B",
": c #00FF17",
"< c #01FF04",
"[ c #12FF00",
"} c #25FF00",
"| c #39FF00",
"1 c #4DFF00",
"2 c #61FF00",
"3 c #75FF00",
"4 c #89FF00",
"5 c #9DFF00",
"6 c #B1FF00",
"7 c #C4FF00",
"8 c #D8FF00",
"9 c #ECFF00",
"0 c #FDFC00",
"a c #FFEA00",
"b c #FFD600",
"c c #FFC200",
"d c #FFAF00",
"e c #FF9B00",
"f c #FF8700",
"g c #FF7300",
"h c #FF5F00",
"i c #FF4B00",
"j c #FF3700",
"k c #FF2400",
"l c #FF1000",
"m c #FF0105",
"n c #FF0019",
"o c #FF002D",
"p c #FF0041",
"q c #FF0054",
"r c #FF0068",
"s c #FF007C",
"t c #FF0090",
"u c #FF00A4",
"v c #FF00B8",
"w c #FF00CC",
"x c #FF00DF",
"y c #FF00F3",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy"};
/* XPM */
static const char * colormap_grayscale_xpm[] = {
"64 32 64 1",
" c #020202",
". c #060606",
"+ c #0A0A0A",
"@ c #0E0E0E",
"# c #121212",
"$ c #161616",
"% c #1A1A1A",
"& c #1E1E1E",
"* c #222222",
"= c #262626",
"- c #2A2A2A",
"; c #2E2E2E",
"> c #323232",
", c #363636",
"' c #3A3A3A",
") c #3E3E3E",
"! c #424242",
"~ c #464646",
"{ c #4A4A4A",
"] c #4D4D4D",
"^ c #515151",
"/ c #555555",
"( c #5A5A5A",
"_ c #5E5E5E",
": c #626262",
"< c #666666",
"[ c #696969",
"} c #6D6D6D",
"| c #717171",
"1 c #757575",
"2 c #797979",
"3 c #7D7D7D",
"4 c #818181",
"5 c #858585",
"6 c #898989",
"7 c #8D8D8D",
"8 c #919191",
"9 c #959595",
"0 c #999999",
"a c #9D9D9D",
"b c #A1A1A1",
"c c #A5A5A5",
"d c #A9A9A9",
"e c #ADADAD",
"f c #B1B1B1",
"g c #B5B5B5",
"h c #B9B9B9",
"i c #BDBDBD",
"j c #C1C1C1",
"k c #C5C5C5",
"l c #C9C9C9",
"m c #CDCDCD",
"n c #D1D1D1",
"o c #D5D5D5",
"p c #D9D9D9",
"q c #DDDDDD",
"r c #E1E1E1",
"s c #E5E5E5",
"t c #E9E9E9",
"u c #EDEDED",
"v c #F1F1F1",
"w c #F5F5F5",
"x c #F9F9F9",
"y c #FDFDFD",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy"};
/* XPM */
static const char * colormap_hotiron_xpm[] = {
"64 32 64 1",
" c #840026",
". c #8C0026",
"+ c #930026",
"@ c #9B0026",
"# c #A20026",
"$ c #AA0026",
"% c #B10026",
"& c #B90026",
"* c #BF0225",
"= c #C40524",
"- c #C90823",
"; c #CE0B22",
"> c #D20F20",
", c #D7121F",
"' c #DC151E",
") c #E0181D",
"! c #E41D1D",
"~ c #E8241F",
"{ c #EB2A20",
"] c #EE3122",
"^ c #F13724",
"/ c #F43D26",
"( c #F74427",
"_ c #FA4B29",
": c #FC522B",
"< c #FC5A2D",
"[ c #FC6130",
"} c #FC6932",
"| c #FD7134",
"1 c #FD7936",
"2 c #FD8139",
"3 c #FD893B",
"4 c #FD8F3D",
"5 c #FD943F",
"6 c #FD9841",
"7 c #FD9D43",
"8 c #FEA245",
"9 c #FEA647",
"0 c #FEAB49",
"a c #FEAF4B",
"b c #FEB44E",
"c c #FEB954",
"d c #FEBE59",
"e c #FEC35E",
"f c #FEC863",
"g c #FECD69",
"h c #FED16E",
"i c #FED673",
"j c #FEDA78",
"k c #FEDD7D",
"l c #FEDF83",
"m c #FEE188",
"n c #FFE48D",
"o c #FFE692",
"p c #FFE998",
"q c #FFEC9D",
"r c #FFEEA2",
"s c #FFF0A8",
"t c #FFF2AD",
"u c #FFF5B3",
"v c #FFF7B8",
"w c #FFF9BE",
"x c #FFFBC3",
"y c #FFFEC9",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy",
" .+@#$%&*=-;>,')!~{]^/(_:<[}|1234567890abcdefghijklmnopqrstuvwxy"};
/* XPM */
static const char * colormap_neg2pos_xpm[] = {
"64 32 335 2",
" c #0000FF",
". c #2C2CFF",
"+ c #4443FF",
"@ c #5454FF",
"# c #6261FF",
"$ c #6D6DFF",
"% c #7878FF",
"& c #8181FF",
"* c #8A89FF",
"= c #9192FF",
"- c #9899FF",
"; c #A0A0FF",
"> c #A7A6FF",
", c #ACACFF",
"' c #B2B2FF",
") c #B8B8FF",
"! c #BDBEFF",