3 import ca.uqac.lif.cep.functions.Constant;
4 import ca.uqac.lif.cep.functions.FunctionTree;
5 import ca.uqac.lif.cep.ltl.Troolean;
6 import ca.uqac.lif.cep.ltl.TrooleanCast;
7 import ca.uqac.lif.cep.util.Numbers;
8 import ca.uqac.lif.cep.xml.XPathFunctionGetNumber;
15 public static final int X_RADIUS = 6;
16 public static final int Y_RADIUS = 10;
23 super(Troolean.AND_FUNCTION);
26 FunctionTree cast =
new FunctionTree(TrooleanCast.instance);
27 FunctionTree lt =
new FunctionTree(Numbers.isLessThan);
28 FunctionTree abs =
new FunctionTree(Numbers.absoluteValue);
29 FunctionTree minus =
new FunctionTree(Numbers.subtraction);
30 minus.setChild(0,
new XPathFunctionGetNumber(
"message/characters/character[id=$p1]/position/x/text()"));
31 minus.setChild(1,
new XPathFunctionGetNumber(
"message/characters/character[id=$p2]/position/x/text()"));
32 abs.setChild(0, minus);
34 lt.setChild(1,
new Constant(X_RADIUS));
40 FunctionTree cast =
new FunctionTree(TrooleanCast.instance);
41 FunctionTree lt =
new FunctionTree(Numbers.isLessThan);
42 FunctionTree abs =
new FunctionTree(Numbers.absoluteValue);
43 FunctionTree minus =
new FunctionTree(Numbers.subtraction);
44 minus.setChild(0,
new XPathFunctionGetNumber(
"message/characters/character[id=$p1]/position/y/text()"));
45 minus.setChild(1,
new XPathFunctionGetNumber(
"message/characters/character[id=$p2]/position/y/text()"));
46 abs.setChild(0, minus);
48 lt.setChild(1,
new Constant(Y_RADIUS));
56 public FunctionTree duplicate(
boolean with_state)
Predicate |x1-x2| < 6 ∧ |y1-y2| < 10.