Rewrite equation for pt-on-circle to avoid negative diameter.
This commit is contained in:
parent
8fd11f4886
commit
43dc16262a
@ -425,8 +425,7 @@ void ConstraintBase::GenerateEquations(IdList<Equation,hEquation> *l,
|
|||||||
|
|
||||||
Expr *r = circle->CircleGetRadiusExpr();
|
Expr *r = circle->CircleGetRadiusExpr();
|
||||||
|
|
||||||
AddEq(l,
|
AddEq(l, du->Square()->Plus(dv->Square())->Sqrt()->Minus(r), 0);
|
||||||
((du->Square())->Plus(dv->Square()))->Minus(r->Square()), 0);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BIN
test/constraint/pt_on_circle/negative_dia.slvs
Normal file
BIN
test/constraint/pt_on_circle/negative_dia.slvs
Normal file
Binary file not shown.
@ -15,3 +15,9 @@ TEST_CASE(normal_migrate_from_v22) {
|
|||||||
CHECK_LOAD("normal_v22.slvs");
|
CHECK_LOAD("normal_v22.slvs");
|
||||||
CHECK_SAVE("normal.slvs");
|
CHECK_SAVE("normal.slvs");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE(negative_dia) {
|
||||||
|
CHECK_LOAD("negative_dia.slvs");
|
||||||
|
Entity *e = SK.GetEntity(hRequest { 4 }.entity(0));
|
||||||
|
CHECK_TRUE(e->CircleGetRadiusNum() > 0);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user