Hi alx,
Try using parenthesis to remove the ambiguity from your expression:
((IntegratorResult < Min) && (Value < 0)) ? 0 : (((IntegratorResult >
Max) && (Value > 0)) ? 0 : Value)
In particular, I think where you nest a ternary expression, you need
to enclose it in parenthesis. I use this technique all the time and I
agree, it beats breaking out another JS patch.
Best,
A.
On 7 Jul 2009, at 10:52, Alex Drinkwater wrote:
Does the Mathematical Expression patch not work with nested ternary
logic?
This:
(IntegratorResult < Min && Value < 0) ? 0 :(IntegratorResult > Max
&& Value > 0) ? 0 : Value
doesn't produce the desired effect when connected to/from an
Integrator patch (it looks like only the second conditional is
evaluated), whereas the same logic in a JavaScript patch:
function (__number ToIntegrator)
main
(__number Value, __number Min, __number Max, __number
IntegratorResult)
{
var result = new Object();
result.ToIntegrator = (IntegratorResult < Min && Value < 0) ? 0 :
(IntegratorResult > Max && Value > 0) ?
0 : Value;
return result;
}
works fine.
Is this a known limitation of the Mathematical Expression patch, and
if so, is there some workaround to avoid the overhead of using a JS
patch?
I've attached a little demo QTZ to show the two methods in action.
Cheers,
a|x
http://machinesdontcare.wordpress.com
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com
This email sent to [email protected]