POV-Ray : Newsgroups : povray.advanced-users : Parse error: float expected but vector or color expression found. : Re: Parse error: float expected but vector or color expression found. Server Time
28 Jul 2024 12:23:24 EDT (-0400)
  Re: Parse error: float expected but vector or color expression found.  
From: Mike Williams
Date: 23 Jan 2006 05:03:18
Message: <kt16EAA+lK1DFwZI@econym.demon.co.uk>
Wasn't it Leo80s who wrote:
>Hello everybody,
>
>In my .pov fil I've defined a function in this way:
>
>#declare dist = function(x1,y1,z1,x2,y2,z2)
>      { sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) + (z1-z2)*(z1-z2) ) };
>(I hope It's right !!!)
>
>When I try to use this in the code (the framment is reported above)...
>
>#macro W (k,X,Y,Z)
>       #local
>distanza=dist(X,Y,Z,coordinate[k][0],coordinate[k][1],coordinate[k][2]);
>       #if (distanza<1.0E-7)
>                #declare result=1;
>       #else
>                #declare numeratore=pos(raggi[k]-distanza);
>                #declare denominatore=raggi[k]*distanza;
>                #declare result= numeratore / denominatore;
>       #end
>       result
>#end
>
>.... I have an error like in subject...
>can anybody help me, please?
>
>PS: I think that perhaps parameter X,Y,Z are treated by pov-ray like
>non-initializated identifiers...is it right?

There's nothing wrong with that code in itself, as long as everything it
uses are floats and not vectors. 

You'll get that error if X, or Y or Z are vectors
       or if coordinate[][] is an array of vectors
           because you can't use vectors in a user defined function

       or if raggi[] is an array of vectors
           because then denominatore would be a vector, and you can't
           divide by a vector

-- 
Mike Williams
Gentleman of Leisure


Post a reply to this message

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