Skip to content

Instantly share code, notes, and snippets.

@ialhashim
Last active December 31, 2019 06:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ialhashim/f52e1a4788e9feaf7d51 to your computer and use it in GitHub Desktop.
Save ialhashim/f52e1a4788e9feaf7d51 to your computer and use it in GitHub Desktop.
C++ code for a color map based on work by Kenneth Moreland
// Color map based on work by Kenneth Moreland: http://www.sandia.gov/~kmorel/documents/ColorMaps/
#pragma once
#include <QVector> // or use std::vector
inline std::vector< std::vector<double> > makeColorMap()
{
QVector<int> colorArray;
colorArray <<59<<76<<192<<60<<78<<194<<61<<80<<195<<62<<81<<197<<
63<<83<<198<<64<<85<<200<<66<<87<<201<<67<<88<<203<<68<<90<<204<<
69<<92<<206<<70<<93<<207<<71<<95<<209<<73<<97<<210<<74<<99<<211<<
75<<100<<213<<76<<102<<214<<77<<104<<215<<79<<105<<217<<
80<<107<<218<<81<<109<<219<<82<<110<<221<<84<<112<<222<<
85<<114<<223<<86<<115<<224<<87<<117<<225<<89<<119<<226<<
90<<120<<228<<91<<122<<229<<93<<123<<230<<94<<125<<231<<
95<<127<<232<<96<<128<<233<<98<<130<<234<<99<<131<<235<<
100<<133<<236<<102<<135<<237<<103<<136<<238<<104<<138<<239<<
106<<139<<239<<107<<141<<240<<108<<142<<241<<110<<144<<242<<
111<<145<<243<<112<<147<<243<<114<<148<<244<<115<<150<<245<<
116<<151<<246<<118<<153<<246<<119<<154<<247<<120<<156<<247<<
122<<157<<248<<123<<158<<249<<124<<160<<249<<126<<161<<250<<
127<<163<<250<<129<<164<<251<<130<<165<<251<<131<<167<<252<<
133<<168<<252<<134<<169<<252<<135<<171<<253<<137<<172<<253<<
138<<173<<253<<140<<174<<254<<141<<176<<254<<142<<177<<254<<
144<<178<<254<<145<<179<<254<<147<<181<<255<<148<<182<<255<<
149<<183<<255<<151<<184<<255<<152<<185<<255<<153<<186<<255<<
155<<187<<255<<156<<188<<255<<158<<190<<255<<159<<191<<255<<
160<<192<<255<<162<<193<<255<<163<<194<<255<<164<<195<<254<<
166<<196<<254<<167<<197<<254<<168<<198<<254<<170<<199<<253<<
171<<199<<253<<172<<200<<253<<174<<201<<253<<175<<202<<252<<
176<<203<<252<<178<<204<<251<<179<<205<<251<<180<<205<<251<<
182<<206<<250<<183<<207<<250<<184<<208<<249<<185<<208<<248<<
187<<209<<248<<188<<210<<247<<189<<210<<247<<190<<211<<246<<
192<<212<<245<<193<<212<<245<<194<<213<<244<<195<<213<<243<<
197<<214<<243<<198<<214<<242<<199<<215<<241<<200<<215<<240<<
201<<216<<239<<203<<216<<238<<204<<217<<238<<205<<217<<237<<
206<<217<<236<<207<<218<<235<<208<<218<<234<<209<<219<<233<<
210<<219<<232<<211<<219<<231<<213<<219<<230<<214<<220<<229<<
215<<220<<228<<216<<220<<227<<217<<220<<225<<218<<220<<224<<
219<<220<<223<<220<<221<<222<<221<<221<<221<<222<<220<<219<<
223<<220<<218<<224<<219<<216<<225<<219<<215<<226<<218<<214<<
227<<218<<212<<228<<217<<211<<229<<216<<209<<230<<216<<208<<
231<<215<<206<<232<<215<<205<<232<<214<<203<<233<<213<<202<<
234<<212<<200<<235<<212<<199<<236<<211<<197<<236<<210<<196<<
237<<209<<194<<238<<209<<193<<238<<208<<191<<239<<207<<190<<
240<<206<<188<<240<<205<<187<<241<<204<<185<<241<<203<<184<<
242<<202<<182<<242<<201<<181<<243<<200<<179<<243<<199<<178<<
244<<198<<176<<244<<197<<174<<245<<196<<173<<245<<195<<171<<
245<<194<<170<<245<<193<<168<<246<<192<<167<<246<<191<<165<<
246<<190<<163<<246<<188<<162<<247<<187<<160<<247<<186<<159<<
247<<185<<157<<247<<184<<156<<247<<182<<154<<247<<181<<152<<
247<<180<<151<<247<<178<<149<<247<<177<<148<<247<<176<<146<<
247<<174<<145<<247<<173<<143<<247<<172<<141<<247<<170<<140<<
247<<169<<138<<247<<167<<137<<247<<166<<135<<246<<164<<134<<
246<<163<<132<<246<<161<<131<<246<<160<<129<<245<<158<<127<<
245<<157<<126<<245<<155<<124<<244<<154<<123<<244<<152<<121<<
244<<151<<120<<243<<149<<118<<243<<147<<117<<242<<146<<115<<
242<<144<<114<<241<<142<<112<<241<<141<<111<<240<<139<<109<<
240<<137<<108<<239<<136<<106<<238<<134<<105<<238<<132<<103<<
237<<130<<102<<236<<129<<100<<236<<127<<99<<235<<125<<97<<
234<<123<<96<<233<<121<<95<<233<<120<<93<<232<<118<<92<<
231<<116<<90<<230<<114<<89<<229<<112<<88<<228<<110<<86<<
227<<108<<85<<227<<106<<83<<226<<104<<82<<225<<102<<81<<
224<<100<<79<<223<<98<<78<<222<<96<<77<<221<<94<<75<<220<<92<<74<<
218<<90<<73<<217<<88<<71<<216<<86<<70<<215<<84<<69<<214<<82<<67<<
213<<80<<66<<212<<78<<65<<210<<75<<64<<209<<73<<62<<208<<71<<61<<
207<<69<<60<<205<<66<<59<<204<<64<<57<<203<<62<<56<<202<<59<<55<<
200<<57<<54<<199<<54<<53<<198<<51<<52<<196<<49<<50<<195<<46<<49<<
193<<43<<48<<192<<40<<47<<190<<37<<46<<189<<34<<45<<188<<30<<44<<
186<<26<<43<<185<<22<<41<<183<<17<<40<<181<<11<<39<<180<<4<<38;
std::vector< std::vector<double> > result;
for(int i = 0; i < colorArray.size();){
std::vector<double> color;
for(int j = 0; j < 3; j++) color.push_back( colorArray[i++] );
result.push_back(color);
}
return result;
}
static inline std::vector<double> getColorFromMap(double v, const std::vector< std::vector<double> > & cmap){
std::vector<double> c(3,0);
int idx = v * (cmap.size()-1);
c[0] = cmap[idx][0];
c[1] = cmap[idx][1];
c[2] = cmap[idx][2];
return c;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment