source: git/src/gdtconvert @ fc4ee5b

RELEASE/1.1RELEASE/1.2debug-cidebug-ci-sanitisersstereowalls-datawalls-data-hanging-as-warning
Last change on this file since fc4ee5b was f7ea0e1, checked in by Mark Shinwell <mark>, 22 years ago

more tubes work

git-svn-id: file:///home/survex-svn/survex/branches/survex-1_1@2084 4b37db11-9a0c-4f06-9ece-9ab7cdaee568

  • Property mode set to 100755
File size: 1.4 KB
Line 
1#!/usr/bin/perl -w
2
3# converter for POV-Ray gradient files produced by The Gimp
4my $points = 13;
5my $prev = -1.0;
6my $interval = 1.0 / ($points-1);
7my $next = 0.0;
8my $pr = 0;
9my $pg = 0;
10my $pb = 0;
11my $prevpos = 0.0;
12my $outputr = "";
13my $outputg = "";
14my $outputb = "";
15while (my $l = <>) {
16   if ($l =~ /.*\[(\d\.\d+) color rgbt <(\d\.\d+), (\d\.\d+), (\d\.\d+).*/) {
17       if ($prev != $1) {
18           my $r = int($2 * 255);
19           my $g = int($3 * 255);
20           my $b = int($4 * 255);
21           my $pos = $1;
22           while ($pos >= $next) {
23               if ($prev == -1.0) {
24                   $outputr = $r;
25                   $outputg = $g;
26                   $outputb = $b;
27               }
28               else {
29                   my $faralong = $next - $prevpos;
30                   my $total = $pos - $prevpos;
31                   my $frac = $faralong / $total;
32
33                   my $newr = $pr + int(($r - $pr) * $frac);
34                   my $newg = $pg + int(($g - $pg) * $frac);
35                   my $newb = $pb + int(($b - $pb) * $frac);
36                   
37                   $outputr = "$outputr, $newr";
38                   $outputg = "$outputg, $newg";
39                   $outputb = "$outputb, $newb";
40               }
41               $next += $interval;
42           }
43           $pr = $r;
44           $pg = $g;
45           $pb = $b;
46           $prevpos = $pos;
47       }
48       $prev = $1;
49   }
50}
51print "static const unsigned char REDS[]   = {$outputr, 230};\n";
52print "static const unsigned char GREENS[] = {$outputg, 230};\n";
53print "static const unsigned char BLUES[]  = {$outputb, 230};\n";
54
Note: See TracBrowser for help on using the repository browser.