POV-Ray : Newsgroups : povray.newusers : can an array contain macros? : Re: can an array contain macros? Server Time
4 May 2024 13:50:14 EDT (-0400)
  Re: can an array contain macros?  
From: Le Forgeron
Date: 19 Jul 2014 05:10:16
Message: <53ca35f8@news.povray.org>
Le 19/07/2014 10:49, John Greenwood nous fit lire :
> I tried this:

> #macro Sphere1()    sphere {<1,1,0>,1   pigment{rgb<1,0,0>}} #end
> #macro Sphere2()    sphere {<1,-1,0>,1  pigment{rgb<0,1,0>}} #end
> #macro Sphere3()    sphere {<-1,-1,0>,1 pigment{rgb<0,0,1>}} #end
> #macro Sphere4()    sphere {<-1,1,0>,1  pigment{rgb<1,0,1>}} #end
> 
> #declare Event_Name = array[2][2]   {
> { Sphere1(),Sphere2()},
> { Sphere3(),Sphere4()}}
> 
> but get the error:
> 
> line 21: Parse Error: Insufficent number of initializers

Maybe because the "return" of the Sphere*() macro are nothing.
The sphere get added to the scene, but I'm afraid not in the array. (as
sphere is not an expression)

As you want to store object in the array, maybe (untested) something like
#macro Sphere1()
#local Obj=sphere{<1,1,0>,1   pigment{rgb<1,0,0>}};
Obj
#end

Caveat: #local vs #declare, there might be a scope issue in previous
version of povray. (referencing a released identifier)
-- 
IQ of crossposters with FU: 100 / (number of groups)
IQ of crossposters without FU: 100 / (1 + number of groups)
IQ of multiposters: 100 / ( (number of groups) * (number of groups))


Post a reply to this message

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