

//---- Pattern_Fn_Vis_Real (REAL value) -> (RGB result)

pattern_def( Pattern_Fn_Vis_Real )
{
  pattern_input(PATTERN_REAL, value, 0);
  pattern_output(PATTERN_RGB, result, 0);

  int i, j;
  int a, b;
  int col1, col2, col3;

  for(j=0; j<256; j++) for(i=0; i<256; i++) PATTERN_RGB_SETPIXEL(result, i, j, 0x00, 0x00, 0x66);

  double val = value->value;

  int basecol1 = 0x00, basecol2 = 0xFF, basecol3 = 0x00;

  if(val < 0) { basecol1 = 0xFF; basecol2 = 0x00; basecol3 = 0x00; }

  for(a = 0; a < 256; a+=8)
  {
    col1 = basecol1; col2 = basecol2; col3 = basecol3;

    b = 256*val;

    if(b > 255) { col1 -= col1 >> 2; col2 -= col2 >> 2; col3 -= col3 >> 2; }

    b &= 255;

    if(b < 0) b = 0;
    if(b > 256) b = 256;

    b = 255-b;

    for(j=b; j<256; j++) for(i=a; i<a+8; i++) PATTERN_RGB_SETPIXEL(result, i, j, col1, col2, col3);

    val *= 0.5;
  }

}


