public void translate(double vx, double vy) { // translate x if (!Kernel.isZero(vx)) { translateX(expression, vx, 0); } if (!Kernel.isZero(vy)) { translateX(expression, vy, 1); } // make sure that expression object is changed! // this is needed to know that the expression has changed if (expression.isLeaf() && expression.getLeft().isExpressionNode()) { expression = new ExpressionNode((ExpressionNode) expression.getLeft()); } else { expression = new ExpressionNode(expression); } }