POV-Ray : Newsgroups : povray.bugreports : Re: ph function in function problem (bug?) Server Time
27 Dec 2024 11:26:39 EST (-0500)
  Re: ph function in function problem (bug?) (Message 1 to 1 of 1)  
From: bugreports
Subject: Re: ph function in function problem (bug?)
Date: 31 Jul 2002 09:47:42
Message: <3d47ea7e@news.povray.org>
(posted on behalf of Thorsten Froehlich <tho### [at] trfde> and


I can confirm that the scene below shows a bug.  Essentially under
certain conditions like the one found in the given scene, the parser
will overwrite some previously calculated values if a function result is
passed to another function at *parse* time and that function is also
evaluated at *parse* time.  The workaround is to not use functions as
parameters to functions in the parser if those results are used at
*parse* time but to declare their results and then pass those to the
function.

NOTE: The problem only involves the use of functions in the *parser*!!!
When *rendering* functions (i.e. in isosurfaces) there is *no* problem!


    Thorsten Froehlich



ABX Skiba <abx### [at] babilonorg>  wrote:
> Here is simple script:
>
> <SDL>
>   #include "functions.inc"
>   #declare f_ynction(ph,rad){rad*cos(ph)}
>   #macro Calc(X,Y,Z)
>     #debug concat(
>       "  Ystr(Y,6,3),
>       "  functionstr(f_y(f_ph(X,Y,Z),f_r(X,Y,Z)),6,3),
>       "  parserstr(f_r(X,Y,Z)*cos(f_ph(X,Y,Z)),6,3),
>       "\n"
>     )
>   #end
>   Calc(0, 2,0)
>   Calc(2, 2,3)
>   Calc(2, 1,3)
>   Calc(2, 0,3)
>   Calc(2,-1,3)
>   Calc(2,-2,3)
>   Calc(0,-2,0)
> </SDL>
>
> I expect it to display three identical columns of values as follow:
>   Y.000  function.000  parser.000
>   Y.000  function.000  parser.000
>   Y.000  function.000  parser.000
>   Y.000  function.000  parser.000
>   Y.000  function.000  parser.000
>   Y.000  function.000  parser.000
>   Y.000  function.000  parser.000
> unfortunatelly it outputs various values when ph function is accesed vi
a
> another function:
>   Y.000  function.000  parser.000
>   Y.000  function.716  parser.000
>   Y.000  function.557  parser.000
>   Y.000  function.500  parser.000
>   Y.000  function.557  parser.000
>   Y.000  function.716  parser.000
>   Y.000  function.000  parser.000
> Any idea why ? Any confirmation that it can be a bug ?


____________________________________________________
Thorsten Froehlich
e-mail: mac### [at] povrayorg

I am a member of the POV-Ray Team.
Visit POV-Ray on the web: http://mac.povray.org


Post a reply to this message

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