bin/ltview.pl
author Axel Jacobs <axel@jaloxa.eu>
Sun, 01 Dec 2013 23:21:22 +0000
changeset 42 d98785a7064d
parent 38 a21b69f32c77
child 44 c8df2d579470
permissions -rw-r--r--
ltview: New status
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
     1
#!/usr/bin/perl
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
     2
#
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
     3
# Make a nice view of an object
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
     4
# Arguments are scene input files
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
     5
#
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
     6
# This is a re-write of Greg's original objview.csh.
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
     7
# The only extra functionality is that we accept a scene on STDIN
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
     8
# if no file name is given.
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
     9
#
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    10
# Axel, Nov 2013
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    11
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    12
use strict;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    13
use warnings;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    14
use File::Temp qw/ tempdir /;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    15
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    16
#my $td = tempdir( CLEANUP => 1 );
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    17
my $td = "tmp";
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    18
my $octree = "$td/ov$$.oct";
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    19
my $room = "$td/rm$$.rad";
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    20
my $rif = "$td/ov$$.rif";
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    21
my $ambf = "$td/af$$.amb";
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    22
my $raddev = "x11";   # default output device. Overwrite with -o
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    23
my $up = "Z";
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    24
my $vw = "XYZ";
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    25
my $rsize = 1;    # room size in metres
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    26
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    27
my $opts = "";        # Options common to rad and glrad
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    28
my $rendopts = "-ab 1 -ds .15";    # For render= line in rif file
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    29
my $usegl = 0;        # Run glrad instead of rad (Boolean).
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    30
my $radopt = 0;       # An option specific to rad was passed (Boolean).
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    31
my $glradopt = 0;     # An option specific to glrad was passed (Boolean).
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    32
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    33
while (@ARGV) {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    34
	$_ = $ARGV[0];
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    35
	if (m/-g/) {   # OpenGL output
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    36
		if ( $^O =~ /MSWin32/ ) {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    37
			die("OpenGL view is not available under Windows.\n");
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    38
		}
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    39
		$usegl = 1;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    40
	} elsif (m/-u/) {   # up direction
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    41
		$up = $ARGV[1];
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    42
		shift @ARGV;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    43
	} elsif ((m/-s/) or (m/-w/)) {   # silent, no warnings
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    44
		$opts .= " $_";
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    45
	} elsif (m/-b/) {   # back face visibility
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    46
		$rendopts .= ' -bv';
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    47
	} elsif (m/-v/) {   # standard view "[Xx]?[Yy]?[Zz]?[vlcahs]?"
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    48
		# Let rad do any error handling...
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    49
		$vw = $ARGV[1];
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    50
		shift @ARGV;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    51
	} elsif (m/-N/) {   # No. of parallel processes
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    52
		$opts .= ' -N ' . $ARGV[1];
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    53
		$radopt = 1;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    54
		shift @ARGV;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    55
	} elsif (m/-o/) {   # output device (rvu -devices)
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    56
		$raddev = $ARGV[1];
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    57
		$radopt = 1;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    58
		shift @ARGV;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    59
	} elsif ((m/-V/) or (m/-e/)) {   # print view, explicate variables
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    60
		# Think of those two as '-verbose'.
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    61
		$opts .= " $_";
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    62
		$radopt = 1;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    63
	} elsif (m/-S/) {   # full-screen stereo
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    64
		$opts .= " $_";
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    65
		$glradopt = 1;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    66
	} elsif (m/-r/) {    # room size
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    67
		$rsize = $ARGV[1];
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    68
		shift @ARGV;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    69
	} elsif (m/^-\w/) {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    70
		die("objview: Bad option: $_\n");
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    71
	} else {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    72
		last;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    73
	}
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    74
	shift @ARGV;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    75
}
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    76
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    77
# We need one IES file
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    78
if (! $#ARGV == 0) {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    79
	die("ltview: Need one IES photometry file\n");
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    80
}
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    81
my $scene = $ARGV[0];
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    82
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    83
# Make sure we don't confuse glrad and rad options.
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    84
if ($usegl) {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    85
	if ($radopt) {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    86
		die("objview: glrad output requested, but rad option passed.\n");
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    87
	}
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    88
} else {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    89
	if ($glradopt) {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    90
		die("objview: rad output requested, but glrad option passed.\n");
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    91
	}
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    92
}
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    93
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    94
open(FH, ">$room") or
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    95
		die("ltview: Can't write to temporary file $room\n");
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    96
print FH <<EndOfRoom;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    97
void plastic surf  0  0  5  .2 .2 .2 0 0
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    98
!genbox -i surf room $rsize $rsize $rsize |xform -t -$rsize/2 -$rsize/2 -$rsize/2
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    99
EndOfRoom
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   100
close(FH);
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   101
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   102
# Make this work under Windoze
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   103
if ( $^O =~ /MSWin32/ ) {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   104
	$scene =~ s{\\}{/}g;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   105
	$octree =~ s{\\}{/}g;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   106
	$raddev = "qt";
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   107
}
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   108
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   109
open(FH, ">$rif") or
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   110
		die("objview: Can't write to temporary file $rif\n");
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   111
print FH <<EndOfRif;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   112
scene= $scene
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   113
EXPOSURE= .5
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   114
UP= $up
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   115
view= $vw
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   116
OCTREE= $octree
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   117
oconv= -f
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   118
AMBF= $ambf
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   119
render= $rendopts
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   120
EndOfRif
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   121
close(FH);
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   122
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   123
if ($usegl) {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   124
	system "glrad $opts $rif";
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   125
} else {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   126
	system "rad -o $raddev $opts $rif";
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   127
}
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   128
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   129
#EOF