|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hi all,
I've got this problem (not serious, but got me wondering)...
When a macro param is a vector (e.g. I use dot operators on it), it seems I
can't use a float identifier to represent it - it doesn't get promoted to a
vector. Example:
#macro MyMacro(Vector)
(Vector.x + Vector.y + Vector.z)
#end
MyMacro(<3,3,3>) is OK but
MyMacro(3) gets an error
Why is the float not promoted to a vector? Is it because POV can't tell the type
of a macro param?
Margus
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Margus Ramst wrote:
>
> Hi all,
>
> I've got this problem (not serious, but got me wondering)...
>
> When a macro param is a vector (e.g. I use dot operators on it), it seems I
> can't use a float identifier to represent it - it doesn't get promoted to a
> vector. Example:
>
> #macro MyMacro(Vector)
> (Vector.x + Vector.y + Vector.z)
> #end
>
> MyMacro(<3,3,3>) is OK but
> MyMacro(3) gets an error
>
> Why is the float not promoted to a vector? Is it because POV can't tell the type
> of a macro param?
>
> Margus
The input parameter becomes whatever type is passed to it, so if you
give it a float value, it is a float type variable.
You could try
#macro MyMacro(InputVector)
#local Vector=InputVector*<1,1,1>;
...
#end
Cheers, PoD
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On Thu, 12 Nov 1998 22:26:21 +0200, Margus Ramst <mar### [at] peakeduee>
wrote:
>Why is the float not promoted to a vector? Is it because POV can't tell the type
>of a macro param?
Right. You can force the promotion by multiplying it by <1,1,1> or
adding it to <0,0,0>
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Ronald L. Parker wrote:
> Right. You can force the promotion by multiplying it by <1,1,1> or
> adding it to <0,0,0>
Thanks, this is the solution.
A remark, though: you can't redefine a float identifier as a vector identifier,
so this has to be done by declaring a new variable.
Margus
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|