From 6a94e73a854286f711bffa81d351d640b4cf3675 Mon Sep 17 00:00:00 2001 From: Tamito Kajiyama Date: Fri, 18 Apr 2014 13:57:10 +0900 Subject: Freestyle: Added logical operators for binary predicates for 1D elements. The implemented operators are: freestyle.predicates.AndBP1D freestyle.predicates.NotBP1D freestyle.predicates.OrBP1D --- .../freestyle/modules/freestyle/predicates.py | 29 +++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'release') diff --git a/release/scripts/freestyle/modules/freestyle/predicates.py b/release/scripts/freestyle/modules/freestyle/predicates.py index 0bcba160341..ce6f0a35ffe 100644 --- a/release/scripts/freestyle/modules/freestyle/predicates.py +++ b/release/scripts/freestyle/modules/freestyle/predicates.py @@ -155,7 +155,6 @@ class pyParameterUP0D(UnaryPredicate0D): ## Unary predicates for 1D elements (curves) ############################################ - class AndUP1D(UnaryPredicate1D): def __init__(self, pred1, pred2): UnaryPredicate1D.__init__(self) @@ -515,6 +514,34 @@ class pyClosedCurveUP1D(UnaryPredicate1D): ## Binary predicates for 1D elements (curves) ############################################# +class AndBP1D(BinaryPredicate1D): + def __init__(self, pred1, pred2): + BinaryPredicate1D.__init__(self) + self.__pred1 = pred1 + self.__pred2 = pred2 + + def __call__(self, inter1, inter2): + return self.__pred1(inter1, inter2) and self.__pred2(inter1, inter2) + + +class OrBP1D(BinaryPredicate1D): + def __init__(self, pred1, pred2): + BinaryPredicate1D.__init__(self) + self.__pred1 = pred1 + self.__pred2 = pred2 + + def __call__(self, inter1, inter2): + return self.__pred1(inter1, inter2) or self.__pred2(inter1, inter2) + + +class NotBP1D(BinaryPredicate1D): + def __init__(self, pred): + BinaryPredicate1D.__init__(self) + self.__pred = pred + + def __call__(self, inter1, inter2): + return not self.__pred(inter1, inter2) + class pyZBP1D(BinaryPredicate1D): def __init__(self, iType=IntegrationType.MEAN): -- cgit v1.2.3