|
|
I've been using Chris Colefax's wonderful spline macro.
However, I have a problem. When I try to fill the array of values using a #while
loop, a parse error is generated, "Insufficent number of initializers." Here is
what I am doing:
#declare N = 5; #declare J = 1;
#declare MyPath = create_spline (
array[ N ]{
#while( J<=5)
<cos(2*pi*J/N), 1, sin(2*pi*J/N)>
#declare J = J + 1;
#end
},
spline_loop (no) + spline_tension (-1) + spline_sampling (2) + spline_scale (5)
)
Why the error? How can I use a #while loop to make the values needed by
create_spline?
Thanks.
Post a reply to this message
|
|
|
|
Looks like the problem is in the array declaration; if I declare the array using
that #while loop before I put it in create_spline(), it blows up on me, too.
// generates error
#local N = 5;
#local x = 1;
#declare my_array = array[ N ] {
#while( x <= N )
...
#local x = x + 1; #end
}
Probably have to do it the old fashioned way:
#declare my_array = array[ N ]
#local i = 0; #while( i < N )
#declare my_array[ i ] = ....
#local i = i + 1; #end
I may be wrong. It's happened before (more times than I care to remember)...
--
Dan
GoofyGraffix.com
Post a reply to this message
|
|
|
|
Dan Byers nous apporta ses lumieres en ce 2008/03/20 15:03:
> Looks like the problem is in the array declaration; if I declare the array using
> that #while loop before I put it in create_spline(), it blows up on me, too.
>
> // generates error
> #local N = 5;
> #local x = 1;
> #declare my_array = array[ N ] {
> #while( x <= N )
> ...
> #local x = x + 1; #end
> }
>
> Probably have to do it the old fashioned way:
>
> #declare my_array = array[ N ]
> #local i = 0; #while( i < N )
> #declare my_array[ i ] = ....
> #local i = i + 1; #end
>
> I may be wrong. It's happened before (more times than I care to remember)...
>
> --
> Dan
> GoofyGraffix.com
>
>
>
>
Guide line for the naming of user variables: Always start the variable name with
an uper case letter. It prevent name conflicts with reserved words and
predefined variables names. Those always start with a lower case leter.
Here, "x" is a predefined variable. You can't define your variables using that
name. Use "X" instead. Even if "i" is not reserved, it's beter to use "I" as a
variable name.
Reserved single leters variable names: t, u, v, x, y and z
--
Alain
-------------------------------------------------
You know you've been raytracing too long when whenever you write include, even
in essays, etc, you always add a "#".
Post a reply to this message
|
|