|
![](/i/fill.gif) |
"Veggiet" <nomail@nomail> wrote:
> Hi,
> I'm not sure if this goes in the advanced category or not, but I'm having
> a problem. I trying to make a snow casting macro, and for this I using
> nested loops, but I don't want to have a blob created if a collision isn't
> made so here is the conext:
>
> [code]
> #declare trval = trace(Objapply, coords1, coords2, <0,0,0>);
> #if(trval != <0,0,0>)
> ....
> #end
> [/code]
>
> It highlights the #if line and comes up with
> "Parse Error: Float expected but vector or color expression found."
>
> and If I change the expression to "(trval != 0)" It does the same thing.
this should work:
[code]
#declare Norm = <0,0,0>;
#declare trval = trace(Objapply, coords1, coords2, Norm);
#if(vlength(Norm)!=0)
.....
#end
[/code]
two faults. first: when an object was hit then the intersection point will
be stored in trval and the normalvector at the intersectionpoint will be
stored in the (optional) fourth indentifier. so when you want to know if an
object was hit or not you have to test that vector (Norm in the example)
and not trval. second fault: you can't compare vectors like you did. either
you compare there length (which works when you test for zero, as in the
example) or you use VEq(V1, V2) in math.inc
Roman
Post a reply to this message
|
![](/i/fill.gif) |