Certainly a significant argument, if empirical evidence says it doesn't
work. I'm *very* confused about why, though:
>No problem, until you replace the Scale nodes with Units nodes:
> DEF SEP Separator {
> Units { units CENTIMETERS } # From meters to centimeters
> DEF OBJECT Separator {
> Units { units MILLIMETERS } # From millimeters to centimeters
> Cube { }
> }
> Separator { // Another object...
> }
> }
>
>If the application doesn't know about UNITS it will create:
>
> DEF OBJECT Separator {
> Scale { scaleFactor .001 .001 .001 } # Scales multiply
> Units { units MILLIMETERS } # Oops
> Cube { }
> }
> DEF SEP Separator { # Etc, all of SEPS other children
> }
>
>The cube will look 1000 times smaller than it was before.
Why in heaven's name does it do this? This makes no sense to me --
if the application doesn't know about Units, why would it put in
this arbitrary scale? And if it *does* know about units, it should
get it right. Of course, this is assuming that Units is some sort
of Material-like node, which simply changes the global state for
objects after it. It *should* be easy to determine the Units for
an object, just as you would the Material...
I just find your line of argument extraordinarily confusing. It seems
to me *far* more work for the system to keep track of all of the
different scaling transformations currently involved (so that you can
correctly combine the scale of the object with the scale of its new
context), whereas units requires you to keep exactly one figure
around, which just happens to be the current factor for the graph.
How is it easier to keep track of numerous factors instead of one?
I'm sorry, Gavin, but this *sounds* like an implementation artifact.
(Specifically, it sounds like Units is implemented as a hack of Scale,
and doesn't work very well that way -- the comments about "*from*
<unit A> to <unit B>" really make it sound like that.) I need more
motivation to convince me it isn't, that it's a problem intrinsic
to the concept.
(If you *do* convince us, then we're back to the other argument -- we
need to settle what the base scale *is*. Actually, we need to settle
that anyway (for code without Units), but it's even more important if
we're doing everything with Scale nodes...)
-- Justin
Random Quote du Jour:
"Okay, one last time...
This is Calvin...
This is Calvin on Chocolate-Frosted Sugar Bombs...
Any questions?"
-- Jim Drew