bin/ltview.pl
author Axel Jacobs <axel@jaloxa.eu>
Tue, 11 Mar 2014 00:34:03 +0000
changeset 62 b14101d94a89
parent 61 4f3a9f297a6a
child 66 7e56c36eb1ae
permissions -rwxr-xr-x
New ltpict.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
#
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
     3
# Make an interactive preview of a luminaire
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
     4
#
44
c8df2d579470 ltview: working and tested on LINUX and Vista
Axel Jacobs <axel@jaloxa.eu>
parents: 38
diff changeset
     5
# This script is based on Radiance's objview.pl plus
c8df2d579470 ltview: working and tested on LINUX and Vista
Axel Jacobs <axel@jaloxa.eu>
parents: 38
diff changeset
     6
# Rob Guglielmetti's ltview extension to his objview.rb
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
     7
#
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
     8
# Written by Axel Jacobs <axel@jaloxa.eu>
38
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
use strict;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    11
use warnings;
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    12
use Math::Trig;
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    13
use File::Copy;
38
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
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    16
my $td     = tempdir( CLEANUP => 1 );
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    17
my $oct    = "$td/ltview.oct";
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    18
my $room   = "$td/room.rad";
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    19
my $rdim;               # Overall room dimensions
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    20
my $rif    = "$td/ltview.rif";
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    21
my $lumi   = "$td/lumi.rad";
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    22
my $ies    = "$td/lumi.ies";
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    23
my $raddev = "x11";     # default output device. Overwrite with -o
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    24
my $is_ies = 0;         # input file is IES photometry, not a Radiance luminaire
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    25
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    26
my $maxscale = 1;       # Maximum luminiare dimension after scaling
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    27
my $opts     = "";      # Options common to rad and glrad
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    28
my $render   = "-ab 1 -ds .15 -av 0 0 0";    # render= line in rif file
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    29
my $radopt   = 0;       # An option specific to rad was passed (Boolean).
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    30
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    31
while (@ARGV) {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    32
	$_ = $ARGV[0];
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    33
	if (m/-i/) {
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    34
		$is_ies = 1;
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    35
	} elsif (m/-o/) {   # output device (rvu -devices)
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    36
		$raddev = $ARGV[1];
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    37
		$radopt = 1;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    38
		shift @ARGV;
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    39
	} elsif (m/-r/) {
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    40
		$rdim = $ARGV[1];    # Room dimensions
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    41
		shift @ARGV;
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    42
	} elsif (m/^-\w/) {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    43
		die("objview: Bad option: $_\n");
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    44
	} else {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    45
		last;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    46
	}
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    47
	shift @ARGV;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    48
}
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    49
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    50
# We need one Radiance luminaires description, or an IES file
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    51
if (! $#ARGV == 0) {
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    52
	die("ltview: Need one Radiance luminaire or IES file.\n");
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    53
}
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    54
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    55
open(FH, ">$room") or
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    56
		die("ltview: Can't write to temporary file $room\n");
44
c8df2d579470 ltview: working and tested on LINUX and Vista
Axel Jacobs <axel@jaloxa.eu>
parents: 38
diff changeset
    57
print FH "void plastic wall_mat  0  0  5 .2 .2 .2 0 0\n";
c8df2d579470 ltview: working and tested on LINUX and Vista
Axel Jacobs <axel@jaloxa.eu>
parents: 38
diff changeset
    58
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    59
my $r;
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    60
if (defined $rdim) {
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    61
	# Room dimensions are giving explicitly.  Don't touch the fitting.
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    62
	$r = $rdim;
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    63
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    64
	copy ($ARGV[0], $lumi);
44
c8df2d579470 ltview: working and tested on LINUX and Vista
Axel Jacobs <axel@jaloxa.eu>
parents: 38
diff changeset
    65
} else {
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    66
	# Scale fitting so it fits nicely into our default test room.
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    67
	$r = 5;    # Default room dimension
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    68
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    69
	# Work out how large the luminaire is and scale so that the longest
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    70
	# axis-align dimension is $maxscale
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    71
	my $dimstr = `getbbox -h $ARGV[0]`;
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    72
	chomp $dimstr;
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    73
	# Values returned by getbbox are indented and delimited with multiple spaces.
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    74
	$dimstr =~ s/^\s+//;   # remove leading spaces
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    75
	my @dims = split(/\s+/, $dimstr);   # convert to array
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
    76
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    77
	# Find largest axes-aligned dimension
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    78
	my @diffs = ($dims[1]-$dims[0], $dims[3]-$dims[2], $dims[5]-$dims[4]);
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    79
	@diffs = reverse sort { $a <=> $b } @diffs;
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    80
	my $size = $diffs[0];
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    81
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    82
	# Move objects so centre is at origin
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    83
	my $xtrans = -1.0 * ($dims[0] + $dims[1]) / 2;
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    84
	my $ytrans = -1.0 * ($dims[2] + $dims[3]) / 2;
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    85
	my $ztrans = -1.0 * ($dims[4] + $dims[5]) / 2;
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    86
	# Scale so that largest object dimension is $maxscale
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    87
	my $scale = $maxscale / $size;
44
c8df2d579470 ltview: working and tested on LINUX and Vista
Axel Jacobs <axel@jaloxa.eu>
parents: 38
diff changeset
    88
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    89
	system "xform -t $xtrans $ytrans $ztrans -s $scale $ARGV[0] > $lumi";
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    90
}
44
c8df2d579470 ltview: working and tested on LINUX and Vista
Axel Jacobs <axel@jaloxa.eu>
parents: 38
diff changeset
    91
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    92
print FH <<EndOfRoom;
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    93
# Don't generate -y face so we can look into the box (could use clipping)
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    94
#wall_mat polygon box.1540  0  0  12  $r -$r -$r  $r -$r $r  -$r -$r $r  -$r -$r -$r
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    95
wall_mat polygon box.4620  0  0  12  -$r -$r $r  -$r $r $r  -$r $r -$r  -$r -$r -$r
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    96
wall_mat polygon box.2310  0  0  12  -$r $r -$r  $r $r -$r  $r -$r -$r  -$r -$r -$r
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    97
wall_mat polygon box.3267  0  0  12  $r $r -$r  -$r $r -$r  -$r $r $r  $r $r $r
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    98
wall_mat polygon box.5137  0  0  12  $r -$r $r  $r -$r -$r  $r $r -$r  $r $r $r
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
    99
wall_mat polygon box.6457  0  0  12  -$r $r $r  -$r -$r $r  $r -$r $r  $r $r $r
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
   100
EndOfRoom
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
   101
close(FH);
44
c8df2d579470 ltview: working and tested on LINUX and Vista
Axel Jacobs <axel@jaloxa.eu>
parents: 38
diff changeset
   102
c8df2d579470 ltview: working and tested on LINUX and Vista
Axel Jacobs <axel@jaloxa.eu>
parents: 38
diff changeset
   103
my $scene = "$room $lumi";
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   104
# Make this work under Windoze
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   105
if ( $^O =~ /MSWin32/ ) {
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   106
	$scene =~ s{\\}{/}g;
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
   107
	$oct =~ s{\\}{/}g;
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   108
	$raddev = "qt";
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   109
}
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   110
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
   111
# Tweak bounding box so we get a nice view covering all of the box, without
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
   112
# having a wasteful black border around it.  Must work for arbitrary box dims.
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
   113
my $zone = 1.1 * $r * ( 1 + 1/tan(22.5*pi/180) );
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
   114
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   115
open(FH, ">$rif") or
44
c8df2d579470 ltview: working and tested on LINUX and Vista
Axel Jacobs <axel@jaloxa.eu>
parents: 38
diff changeset
   116
		die("ltview: Can't write to temporary file $rif\n");
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   117
print FH <<EndOfRif;
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   118
scene= $scene
44
c8df2d579470 ltview: working and tested on LINUX and Vista
Axel Jacobs <axel@jaloxa.eu>
parents: 38
diff changeset
   119
EXPOSURE= 2
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
   120
ZONE= Interior -$zone $zone  -$zone $zone  -$zone $zone
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
   121
UP= Z
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
   122
view= y
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
   123
OCTREE= $oct
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   124
oconv= -f
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
   125
render= $render
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   126
EndOfRif
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   127
close(FH);
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   128
61
4f3a9f297a6a ltview: Big tidy-up
Axel Jacobs <axel@jaloxa.eu>
parents: 44
diff changeset
   129
system "rad -o $raddev $opts $rif";
38
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   130
a21b69f32c77 ltview: WIP luminaire viewer based on objview.rb
Axel Jacobs <axel@jaloxa.eu>
parents:
diff changeset
   131
#EOF