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]

Reply via email to