|
![](/i/fill.gif) |
Alain <ele### [at] netscape net> wrote:
> MSAB nous apporta ses lumieres en ce 11/07/2006 05:40:
> > Warp <war### [at] tag povray org> wrote:
> >> A short scene demonstrating the problem would be of great help
> >> answering your question.
> >
> > Here's a simple scene, to see, where my problem is (my actual file is much
> > more complexer)
> > The main-file:
> >
> > #macro Test (Art,P1,P2,n)
> >
> > #local P3 = P1+ (P2-P1)/2 ;
> >
> > #include "Obj_def.pov"
> > #include "Typ_def.pov"
> >
> > union{
> >
> > #if (n=0)
> >
> > cylinder{P1,P2,0.5}
> > object{Ba}
> >
> > #else
> >
> > cylinder{P1,P2,0.5}
> > object{R}
> >
> > #end
> > }
> > #end
> >
> > Now, the Include-file "Obj_def.pov":
> >
> Add:
> #macro ArtMac(Art)
> > #if (Art = 1)
> > #declare B = box{1,1}
> > #end
> >
> > #if (Art = 2)
> > #declare B = box{1.1,1.1}
> > #end
> #end
> >
> > And this is the file "Typ_def.pov". I think there's the problem:
> >
> Add:
> #macro TypMac(Art,B)
> > #if (Art = 1)
> >
> > #declare Ba = union{
> > object{B translate P1}
> > object{B translate P2}
> > object{B translate P3}
> > }
> > #declare R = union{
> > object{Test (Art,P3,P3+vrotate(P2,<0,0, 45>),n-1)}
> > object{Test (Art,P2,P2+vrotate(P2,<0,0,-45>),n-1)}
> > }
> >
> > #end
> >
> > #if (Art = 2)
> >
> > #declare Ba = union{
> > object{B translate P2}
> > object{B translate P3}
> > }
> > #declare R = union{
> > object{Test (Art,P1,P1+vrotate(P2,<0,0, 45>),n-1)}
> > object{Test (Art,P2,P2+vrotate(P2,<0,0,-45>),n-1)}
> > }
> >
> > #end
> #end
> >
> > Thanks for your answers.
> >
> >
> Now, include those before your recursive macro.
> In the macro, just call the 2 macro instead of including the files.
>
> --
> Alain
> -------------------------------------------------
> I used to have an open mind but my brains kept falling out.
Thanks, it works great.
I changed yours a little bit (e.x.:
object{ObjMac (Art)
object{TypMacB (Art,Blatt)
object{Ba}}}
), but the idea is yours.
Thanks
MfG
MSAB
Post a reply to this message
|
![](/i/fill.gif) |