|
|
Error with #local and #macro (?)
I have a macro to turn a part of time into it's own 0-1 value.
(Useful for running landing geer and doors that take time to go from not open to
open or deployed).
Here is some test code:
// problem test
#version 3.7;
#macro subclock2( start, complete, cnt)
// converts time (in cnt) between start and complete into
// a value between 0 and 1
#if (cnt< start)
0
#else
#if (cnt>complete)
1
#else
((cnt - start) / (complete - start))
#end
#end
#end // subclock2
#local cccc = clock;
#local c2 = subclock2(.1,.2,cccc);
However, when I use it, I get
"C:\POVRay\scenes\ArtDecoShips\errortest.pov" line 11: Parse Error: All
#declares of float, vector, and color require semi-colon ';' at
end if the language version is set to 3.5 or higher. Either add the semi-colon
or set the language version to 3.1 or lower.
Render failed
-
Yet the actual line where the macro is invoked has a semicolon.
The code can be made to work by putting parentheses around the call:
#local c2 = ( subclock2(.1,.2,cccc) );
This took me a long time to solve (I hate the error messages - points to the
macro line, leaving me trying to figure out which call generated the error.)
Did I miss something in the help text?
Tom A.
Post a reply to this message
|
|