POV-Ray : Newsgroups : povray.beta-test : More To Test : Re: More To Test Server Time
29 Apr 2024 06:51:35 EDT (-0400)
  Re: More To Test  
From: Jim Holsenback
Date: 26 Nov 2016 08:25:34
Message: <58398d4e$1@news.povray.org>
On 11/26/2016 7:02 AM, Jim Holsenback wrote:
> On 11/26/2016 6:14 AM, Jim Holsenback wrote:
>> On 11/25/2016 11:41 AM, Jim Holsenback wrote:
>>> On 11/25/2016 11:20 AM, clipka wrote:
>>>> Am 25.11.2016 um 16:30 schrieb Jim Holsenback:
>>>>> On 11/25/2016 10:21 AM, clipka wrote:
>>>>>> Am 25.11.2016 um 15:29 schrieb Jim Holsenback:
>>>>>>> Error: Bad operands for period operator.
>>>>>>>
>>>>>>> #local Pt1 = Vec + x*(OTO_Get_Offset(Vec).x) +
>>>>>>> y*(OTO_Get_Offset(Vec+x).y);
>>>>>>
>>>>>> Need more input -- what is OTO_Get_Offset(..)?
>>>>>>
>>>>> it's in sam's odd tiles marco ... attached is complete include
>>>>
>>>> It's a bug in OTO_Get_Offset(), which had previously been lying
>>>> somewhat
>>>> dormant, but has now been exposed.
>>>
>>> come again ... are we looking at the same thing?
>>>
>>> in the include file i'm seeing:
>>>
>>> #macro OTO_Get_Offset(Cell)
>>>   #local CX = Cell.x;
>>>   #local CY = Cell.y;
>>>   (1-Bev*2)*<1,1,0>*(.5-OTO_FOffs(CX,CY,0))
>>> #end
>>
>> no help?!?
>
> if it's /in/ the OTO_Get_Offset macro then why does commenting out the
> .y and .x notation (after the call to macro) get rid of the error:
>
> #if(OTO_Get_Mask(Vec)=1 )
>      #local Pt1 = Vec + y*(OTO_Get_Offset(Vec)/*.y*/) +
> x*(OTO_Get_Offset(Vec+y)/*.x*/);
>      #local Pt2 = Vec + y*(OTO_Get_Offset(Vec+x+y)/*.y*/) +
> x*(OTO_Get_Offset(Vec-y+x+y)/*.x*/) +x+y;
>     #else
>      #local Pt1 = Vec + x*(OTO_Get_Offset(Vec)/*.x*/) +
> (y*OTO_Get_Offset(Vec+x)/*.y*/);
>      #local Pt2 = Vec + x*(OTO_Get_Offset(Vec+x+y)/*.x*/) +
> y*(OTO_Get_Offset(Vec-x+x+y)/*.y*/) +x+y;
>     #end

I'm working with the "corner finding" portion of the include. added the 
following:

#if(OTO_Get_Mask(Vec)=1 )
      #local Pt1 = Vec + y*(OTO_Get_Offset(Vec).y) + 
x*(OTO_Get_Offset(Vec+y).x);
      #local Pt2 = Vec + y*(OTO_Get_Offset(Vec+x+y).y) + 
x*(OTO_Get_Offset(Vec-y+x+y).x) +x+y;
     #else
      #local Pt1 = Vec + x*(OTO_Get_Offset(Vec)/*.x*/) + 
(y*OTO_Get_Offset(Vec+x)/*.y*/);
      #debug concat ("\nResults: <", vstr(3, Pt1,",",5,6),">\n")
      #local Pt2 = Vec + x*(OTO_Get_Offset(Vec+x+y).x) + 
y*(OTO_Get_Offset(Vec-x+x+y).y) +x+y;
     #end

debug echos a 3-way vector ... so what's wrong with the expectation of 
getting the dot product using the notation given. the while loop that 
encloses the above conditional eventually sends it through both branches 
and begins to render after commenting  out all the offending notation. 
quick visual inspection doesn't reveal any problems with the odd tiles


Post a reply to this message

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