POV-Ray : Newsgroups : povray.beta-test : bug with #declare order Server Time
30 Jul 2024 20:23:24 EDT (-0400)
  bug with #declare order (Message 3 to 12 of 22)  
<<< Previous 2 Messages Goto Latest 10 Messages Next 10 Messages >>>
From:
Subject: Re: bug with #declare order
Date: 26 Oct 2001 06:46:30
Message: <dueitto7imgspv5ojmn81htn9pvbof35v0@4ax.com>
On Fri, 26 Oct 2001 12:20:37 +0200, "Thorsten Froehlich"
<tho### [at] trfde> wrote:

> So the answer is: Don't use it (also the parser allows it) because the
> behavior is unlikely to be made consistent before a rewrite of POV-Ray.

While I can get such answer, shouldn't be such sentence builded into
documentation instead of "directives can appear in almost any place in
the scene file - even in the middle of some other statements". You
wrote "the behavior of nesting directives inside other directives is
not specified". What about #macro inside #macro? #switch inside
#switch? Or mixing: #local inside #macro? This subject should be IMO
described little more within documentation.

ABX
--
#declare _=function(a,b,x){((a^2)+(b^2))^.5-x}#default {pigment{color rgb 1}}
union{plane{y,-3}plane{-x,-3}finish{reflection 1 ambient 0}}isosurface{ //ABX
function{_(x-2,y,1)|_((x+y)*.7,z,.1)|_((x+y+2)*.7,z,.1)|_(x/2+y*.8+1.5,z,.1)}
contained_by{box{<0,-3,-.1>,<3,0,.1>}}translate z*15finish{ambient 1}}//POV35


Post a reply to this message

From:
Subject: Re: bug with #declare order
Date: 26 Oct 2001 07:59:48
Message: <0qjittsg3bmv8422pj5egqvo8p4sg9p36h@4ax.com>
On Fri, 26 Oct 2001 12:20:37 +0200, "Thorsten Froehlich"
<tho### [at] trfde> wrote:

> So the answer is: Don't use it (also the parser allows it) because the
> behavior is unlikely to be made consistent before a rewrite of POV-Ray.

Is this the same thing ?

#local A=array#local C=1;#while(C<=5)[C]#local C=C+1;#end

personally I prefer post such things to warn people it not work

ABX
--
#declare _=function(a,b,x){((a^2)+(b^2))^.5-x}#default {pigment{color rgb 1}}
union{plane{y,-3}plane{-x,-3}finish{reflection 1 ambient 0}}isosurface{ //ABX
function{_(x-2,y,1)|_((x+y)*.7,z,.1)|_((x+y+2)*.7,z,.1)|_(x/2+y*.8+1.5,z,.1)}
contained_by{box{<0,-3,-.1>,<3,0,.1>}}translate z*15finish{ambient 1}}//POV35


Post a reply to this message

From: Thorsten Froehlich
Subject: Re: bug with #declare order
Date: 26 Oct 2001 09:07:08
Message: <3bd95ffc@news.povray.org>

Skiba <abx### [at] babilonorg>  wrote:

> While I can get such answer, shouldn't be such sentence builded into
> documentation instead of "directives can appear in almost any place in
> the scene file - even in the middle of some other statements". You
> wrote "the behavior of nesting directives inside other directives is
> not specified". What about #macro inside #macro? #switch inside
> #switch? Or mixing: #local inside #macro? This subject should be IMO
> described little more within documentation.

You misunderstood what I mean with nesting.  Think about it and it should be
obvious what is meant with nesting based on your examples.

    Thorsten

____________________________________________________
Thorsten Froehlich, Duisburg, Germany
e-mail: tho### [at] trfde

Visit POV-Ray on the web: http://mac.povray.org


Post a reply to this message

From: Thorsten Froehlich
Subject: Re: bug with #declare order
Date: 26 Oct 2001 09:09:16
Message: <3bd9607c@news.povray.org>

Skiba <abx### [at] babilonorg>  wrote:

> Is this the same thing ?
>
> #local A=array#local C=1;#while(C<=5)[C]#local C=C+1;#end
>
> personally I prefer post such things to warn people it not work

I would not recommend the above as it isn't disallowed.  Use a macro and
call it, that will always work as you expect.

    Thorsten

____________________________________________________
Thorsten Froehlich, Duisburg, Germany
e-mail: tho### [at] trfde

Visit POV-Ray on the web: http://mac.povray.org


Post a reply to this message

From:
Subject: Re: bug with #declare order
Date: 26 Oct 2001 09:19:01
Message: <icoittcv9sfj456mtla771o8csgf1gp6eg@4ax.com>
On Fri, 26 Oct 2001 15:07:05 +0200, "Thorsten Froehlich"
<tho### [at] trfde> wrote:

> You misunderstood what I mean with nesting.

Perhaps.

> Think about it and it should be
> obvious what is meant with nesting based on your examples.

I just want to say it's good idea to add not working statements to
documentation and write something about this problem.

ABX
--
#declare _=function(a,b,x){((a^2)+(b^2))^.5-x}#default {pigment{color rgb 1}}
union{plane{y,-3}plane{-x,-3}finish{reflection 1 ambient 0}}isosurface{ //ABX
function{_(x-2,y,1)|_((x+y)*.7,z,.1)|_((x+y+2)*.7,z,.1)|_(x/2+y*.8+1.5,z,.1)}
contained_by{box{<0,-3,-.1>,<3,0,.1>}}translate z*15finish{ambient 1}}//POV35


Post a reply to this message

From:
Subject: Re: bug with #declare order
Date: 26 Oct 2001 09:21:36
Message: <lloittsoa1lusa6n1of9epl8or51rt8s6e@4ax.com>
On Fri, 26 Oct 2001 15:09:14 +0200, "Thorsten Froehlich"
<tho### [at] trfde> wrote:

> > Is this the same thing ?
> >
> > #local A=array#local C=1;#while(C<=5)[C]#local C=C+1;#end
> >
> > personally I prefer post such things to warn people it not work
>
> I would not recommend the above as it isn't disallowed.  Use a macro and
> call it, that will always work as you expect.

like this ?

#macro B() array#local C=1;#while(C<=5)[C]#local C=C+1;#end #end
#local A=B()

it still not work with beta 6

ABX
--
#declare _=function(a,b,x){((a^2)+(b^2))^.5-x}#default {pigment{color rgb 1}}
union{plane{y,-3}plane{-x,-3}finish{reflection 1 ambient 0}}isosurface{ //ABX
function{_(x-2,y,1)|_((x+y)*.7,z,.1)|_((x+y+2)*.7,z,.1)|_(x/2+y*.8+1.5,z,.1)}
contained_by{box{<0,-3,-.1>,<3,0,.1>}}translate z*15finish{ambient 1}}//POV35


Post a reply to this message

From:
Subject: Re: bug with #declare order
Date: 26 Oct 2001 09:28:48
Message: <l5pittsu5l5peakv2dda70nu1n88s6m04h@4ax.com>

<abx### [at] babilonorg> wrote:
> #macro B() array#local C=1;#while(C<=5)[C]#local C=C+1;#end #end
> #local A=B()
>
> it still not work with beta 6

but this works fine

#local A=array[#local C=1;#while(C<=4)C][#local C=C+1;#end 5]

ABX
--
#declare _=function(a,b,x){((a^2)+(b^2))^.5-x}#default {pigment{color rgb 1}}
union{plane{y,-3}plane{-x,-3}finish{reflection 1 ambient 0}}isosurface{ //ABX
function{_(x-2,y,1)|_((x+y)*.7,z,.1)|_((x+y+2)*.7,z,.1)|_(x/2+y*.8+1.5,z,.1)}
contained_by{box{<0,-3,-.1>,<3,0,.1>}}translate z*15finish{ambient 1}}//POV35


Post a reply to this message

From:
Subject: Re: bug with #declare order
Date: 26 Oct 2001 09:37:07
Message: <1npittopq343jbkgtlm1vthlg7uhffe6b8@4ax.com>

<abx### [at] babilonorg> wrote:
> #macro B() array#local C=1;#while(C<=5)[C]#local C=C+1;#end #end
> #local A=B()
>
> it still not work with beta 6

it is probably connected with next thread

ABX
--
#declare _=function(a,b,x){((a^2)+(b^2))^.5-x}#default {pigment{color rgb 1}}
union{plane{y,-3}plane{-x,-3}finish{reflection 1 ambient 0}}isosurface{ //ABX
function{_(x-2,y,1)|_((x+y)*.7,z,.1)|_((x+y+2)*.7,z,.1)|_(x/2+y*.8+1.5,z,.1)}
contained_by{box{<0,-3,-.1>,<3,0,.1>}}translate z*15finish{ambient 1}}//POV35


Post a reply to this message

From: Thorsten Froehlich
Subject: Re: bug with #declare order
Date: 26 Oct 2001 09:48:02
Message: <3bd96992@news.povray.org>

Skiba <abx### [at] babilonorg>  wrote:

> #macro B() array#local C=1;#while(C<=5)[C]#local C=C+1;#end #end
> #local A=B()
>
> it still not work with beta 6

Move the "array" out of the macro perhaps?  Or have the whole declare in the
macro?


____________________________________________________
Thorsten Froehlich, Duisburg, Germany
e-mail: tho### [at] trfde

Visit POV-Ray on the web: http://mac.povray.org


Post a reply to this message

From: Anders K 
Subject: Re: bug with #declare order
Date: 26 Oct 2001 09:55:03
Message: <3bd96b37@news.povray.org>
> What about #macro inside #macro? #switch inside
> #switch? Or mixing: #local inside #macro?

There's a difference between something like

  #declare A#declare A=0;=1;

and something like

  #switch (Something)
  ...
    #switch (SomethingElse)
    ...
    #end
  ...
  #end

In the first case, the second #declare is actually *inside* the first
#declare. In the second case, the second switch is *between* the first
#switch and the first #end. (I know that's also commonly called "inside" but
it's a different kind of "inside".)


Post a reply to this message

<<< Previous 2 Messages Goto Latest 10 Messages Next 10 Messages >>>

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