|
|
Am 13.09.2016 um 17:51 schrieb William F Pokorny:
> pigment {
> potential { BLOB | ISOSURFACE }
> [ threshold BOOL ]
> [ PIGMENT_MODIFIERS... ]
> }
>
> Looking just at simple blob so far I see a few things.
>
> 1) Wondering it the option [threshold BOOL] should be inside the
> potential block syntactically?
No; the braces around the BLOB or ISOSURFACE are just around the BLOB or
ISOSURFACE. Strictly speaking, the syntax is
pigment {
potential { BLOB | ISOSURFACE [ OBJECT_MODIFIERS... ] }
[ threshold BOOL ]
[ PIGMENT_MODIFIERS... ]
}
(for reasons only disclosed to Disciples of the Inner Sanctum), and the
only reason the braces are there at all is to unambiguously mark the end
of OBJECT_MODIFIERS, so that there is no ambiguity for statements that
may be both valid OBJECT_MODIFIERS and PIGMENT_MODIFIERS.
There is a long-standing tradition that pattern parameters are placed on
the same hierarchical level as pigment/normal/texture/whatever
modifiers, and `potential` honors this tradition. (Don't be fooled by
the syntax of the `object` pattern, it is the odd one out and should
never have been implemented this way in the first place.)
Post a reply to this message
|
|