module cassowary.LinearEquation; import cassowary.LinearConstraint; import cassowary.LinearExpression; import cassowary.Strength; import cassowary.AbstractVariable; class ClLinearEquation : ClLinearConstraint { this(ClLinearExpression cle, const ClStrength strength = ClStrength.required, double weight = 1) { super(cle, strength, weight); } this(ClAbstractVariable clv, ClLinearExpression cle, const ClStrength strength = ClStrength.required, double weight = 1) { super(cle, strength, weight); _expression.addVariable(clv, -1.0); } this(ClAbstractVariable clv, double val, const ClStrength strength = ClStrength.required, double weight = 1) { super(new ClLinearExpression(val), strength, weight); _expression.addVariable(clv, -1.0); } this(ClLinearExpression cle, ClAbstractVariable clv, const ClStrength strength = ClStrength.required, double weight = 1) { super((cast(ClLinearExpression) cle.clone()), strength, weight); _expression.addVariable(clv, -1.0); } this(ClLinearExpression cle1, ClLinearExpression cle2, const ClStrength strength = ClStrength.required, double weight = 1) { super((cast(ClLinearExpression) cle1.clone()), strength, weight); _expression.addExpression(cle2, -1.0); } this(ClAbstractVariable clv1, ClAbstractVariable clv2, const ClStrength strength = ClStrength.required, double weight = 1) { this(new ClLinearExpression(clv1), clv2, strength, weight); } override string toString() const { return super.toString() ~ " = 0 )"; } }