50 lines
949 B
Awk
50 lines
949 B
Awk
|
|
#
|
|
# Input for this script is generated by 'exportbloubs.f90'
|
|
#
|
|
# this code is (C) 2022 tTh
|
|
#
|
|
|
|
BEGIN {
|
|
count = 0
|
|
bx = by = bz = 0.0
|
|
print "// GENERATED FILE, DON'T TOUCH IT !"
|
|
print "// --------------------------------"
|
|
print
|
|
print "#declare Bloubs = object\n{"
|
|
print "union\t{"
|
|
}
|
|
|
|
{
|
|
age = $5
|
|
merged = $6
|
|
|
|
color = "Cyan"
|
|
if (age < 18) color = "Gray40"
|
|
if (age < 2) color = "Gray10"
|
|
if (merged) {
|
|
if (age > 120) color = "Orange"
|
|
else color = "Yellow"
|
|
}
|
|
else {
|
|
if (age > 120) color = "Black"
|
|
else color = "Aquamarine"
|
|
}
|
|
|
|
bx += $1
|
|
by += $2
|
|
bz += $3
|
|
pigment = "pigment { color " color " }"
|
|
printf "\tsphere { <%f, %f, %f>, %f %s }\n", \
|
|
$1, $2, $3, $4, pigment
|
|
count++
|
|
}
|
|
|
|
END {
|
|
print "\t} // end of union\n}\n"
|
|
print "#declare Nb_Bloubs = ", count, ";\n"
|
|
print "#declare Bary_X = ", bx/count, ";";
|
|
print "#declare Bary_Y = ", by/count, ";";
|
|
print "#declare Bary_Z = ", bz/count, ";";
|
|
}
|