POV-Ray : Newsgroups : povray.newusers : Returning values from macros : Re: Returning values from macros Server Time
19 Apr 2024 13:33:10 EDT (-0400)
  Re: Returning values from macros  
From: Le Forgeron
Date: 30 May 2016 13:40:29
Message: <574c7b0d$1@news.povray.org>
Le 30/05/2016 18:30, Bald Eagle a écrit :
> "Cousin Ricky" <rickysttATyahooDOTcom> wrote:
>> "Bald Eagle" <cre### [at] netscapenet> wrote:
>>> Could someone please post a small, simple macro that results in a scalar, a
>>> vector, and an array getting passed "out" to the global SDL world?
>>
>> You can pass them back through the macro arguments by declaring the formal
>> parameters with the final results.  For example:
>>
>>   #macro MyMacro (S, V, A)
>>     #declare S = 1;
>>     #declare V = <2, 3, 4>;
>>     #declare A = array[5]
>>     #for (I, 0, 4)
>>       #declare A[I] = pow (I, 2);
>>     #end
>>   #end
>>
>> The argument identifiers would need to be declared with dummy values before
>> passing them to the macro.
>>
>> Be careful with this technique.  It is frowned upon in structured programming,
>> but without heterogeneous data structure capability, POV-Ray SDL leaves you
>> little choice.
> 
> I see what you're doing - I'd call that "redeclaring" the values of existing
> variables.
> Could you perhaps illuminate me as to how say, array A, on a line all its own,
> gets passed out of a macro?
> I have both sucessfuly and unsuccessfully done it that way, but I can't clearly
> see what happens to make it work or not work.
> 
> So, for instance:
> #macro MyMacro (Input)
>   #declare Output = pow (Input, 2);
>   Output
> #end
> 
> #declare Variable = MyMacro (2);
> 
> Can I have several lines such as
> Output1
> Output2
> Output3   ?
> 
> Can I have SDL inside the macro that creates a sphere and then returns Input^2 ?

Do not see macro as a function calls, but as text substitution.

It might help.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.