// TODO: Merge the functions below with aol::RGBColorMap
void EpsWriter::setTopographical256 ( aol::Vector<float>* red, aol::Vector<float>* green, aol::Vector<float>* blue ) {
  aol::Vector<float> redv ( 12 ), greenv ( 12 ), bluev ( 12 );
  redv[ 0] = 0.0;  greenv[ 0] = 0.0;  bluev [ 0] = 0.5;
  redv[ 1] = 0.0;  greenv[ 1] = 0.0;  bluev [ 1] = 1.0;
  redv[ 2] = 0.4;  greenv[ 2] = 0.4;  bluev [ 2] = 1.0;
  redv[ 3] = 0.6;  greenv[ 3] = 0.6;  bluev [ 3] = 1.0;
  redv[ 4] = 0.3;  greenv[ 4] = 1.0;  bluev [ 4] = 0.3;
  redv[ 5] = 0.0;  greenv[ 5] = 1.0;  bluev [ 5] = 0.0;
  redv[ 6] = 0.0;  greenv[ 6] = 0.5;  bluev [ 6] = 0.0;
  redv[ 7] = 0.3;  greenv[ 7] = 0.2;  bluev [ 7] = 0.0;
  redv[ 8] = 0.5;  greenv[ 8] = 0.3;  bluev [ 8] = 0.0;
  redv[ 9] = 0.8;  greenv[ 9] = 0.5;  bluev [ 9] = 0.0;
  redv[10] = 1.0;  greenv[10] = 0.7;  bluev [10] = 0.5;
  redv[11] = 1.0;  greenv[11] = 0.85; bluev [11] = 0.75;

  red->resize ( 256 );
  green->resize ( 256 );
  blue->resize ( 256 );

  for ( int i = 0; i < 256; i++ ) {
    red->set (   i, redv.interpolateInRange   ( i / 255.0f, -1.0f, 1.0f ) );
    green->set ( i, greenv.interpolateInRange ( i / 255.0f, -1.0f, 1.0f ) );
    blue->set (  i, bluev.interpolateInRange  ( i / 255.0f, -1.0f, 1.0f ) );
  }
}
Example #2
0
visualization_msgs::MarkerArray viz::getAxisMarkerArray(const std::vector<double> &pose, double length, std::string frame_id, std::string ns, int id)
{
  visualization_msgs::MarkerArray ma;
  std::vector<double> redv(6,0), bluev(6,0), greenv(6,0), arrow_pose(6,0);
  redv[0] = length; greenv[1] = length; bluev[2] = length;

  leatherman::multiply(pose, redv, arrow_pose);
  ma.markers.push_back(getArrowMarker(pose, arrow_pose, length/10.0, length/5.0, 0, frame_id, ns, id));
  leatherman::multiply(pose, greenv, arrow_pose);
  ma.markers.push_back(getArrowMarker(pose, arrow_pose, length/10.0, length/5.0, 120, frame_id, ns, id+1));
  leatherman::multiply(pose, bluev, arrow_pose);
  ma.markers.push_back(getArrowMarker(pose, arrow_pose, length/10.0, length/5.0, 240, frame_id, ns, id+2));
  return ma;
}
void EpsWriter::setWhiteToBlack256 ( aol::Vector<float>* red, aol::Vector<float>* green, aol::Vector<float>* blue ) {
  aol::Vector<float> redv ( 2 ), greenv ( 2 ), bluev ( 2 );

  // greyscale
  redv[ 0] = 1.0; greenv[ 0] = 1.0; bluev [ 0] = 1.0; // white
  redv[ 1] = 0.0; greenv[ 1] = 0.0; bluev [ 1] = 0.0; // black

  red->resize ( 256 );
  green->resize ( 256 );
  blue->resize ( 256 );

  for ( int i = 0; i < 256; i++ ) {
    red->set (   i, redv.interpolateInRange   ( i / 255.0f, 0.0f, 1.0f ) );
    green->set ( i, greenv.interpolateInRange ( i / 255.0f, 0.0f, 1.0f ) );
    blue->set (  i, bluev.interpolateInRange  ( i / 255.0f, 0.0f, 1.0f ) );
  }
}
void EpsWriter::setBlueToRed256 ( aol::Vector<float>* red, aol::Vector<float>* green, aol::Vector<float>* blue ) {
  aol::Vector<float> redv ( 4 ), greenv ( 4 ), bluev ( 4 );

  redv[ 0] = 0.0; greenv[ 0] = 0.0; bluev [ 0] = 1.0;
  redv[ 1] = 0.4; greenv[ 1] = 0.0; bluev [ 1] = 0.6;
  redv[ 2] = 0.6; greenv[ 2] = 0.0; bluev [ 2] = 0.4;
  redv[ 3] = 1.0; greenv[ 3] = 0.0; bluev [ 3] = 0.0;

  red->resize ( 256 );
  green->resize ( 256 );
  blue->resize ( 256 );

  for ( int i = 0; i < 256; i++ ) {
    red->set (   i, redv.interpolateInRange   ( i / 255.0f, -1.0f, 1.0f ) );
    green->set ( i, greenv.interpolateInRange ( i / 255.0f, -1.0f, 1.0f ) );
    blue->set (  i, bluev.interpolateInRange  ( i / 255.0f, -1.0f, 1.0f ) );
  }
}
//equal to HSV_BLUE_TO_RED
void EpsWriter::setColortrans256 ( aol::Vector<float>* red, aol::Vector<float>* green, aol::Vector<float>* blue ) {
  aol::Vector<float> redv ( 5 ), greenv ( 5 ), bluev ( 5 );

  // hsv blue to red
  redv[ 0] = 0.0; greenv[ 0] = 0.0; bluev [ 0] = 1.0; // blue
  redv[ 1] = 0.0; greenv[ 1] = 1.0; bluev [ 1] = 1.0; // cyan
  redv[ 2] = 0.0; greenv[ 2] = 1.0; bluev [ 2] = 0.0; // green
  redv[ 3] = 1.0; greenv[ 3] = 1.0; bluev [ 3] = 0.0; // yellow
  redv[ 4] = 1.0; greenv[ 4] = 0.0; bluev [ 4] = 0.0; // red

  red->resize ( 256 );
  green->resize ( 256 );
  blue->resize ( 256 );

  for ( int i = 0; i < 256; i++ ) {
    red->set (   i, redv.interpolateInRange   ( i / 255.0f, -1.0f, 1.0f ) );
    green->set ( i, greenv.interpolateInRange ( i / 255.0f, -1.0f, 1.0f ) );
    blue->set (  i, bluev.interpolateInRange  ( i / 255.0f, -1.0f, 1.0f ) );
  }
}