Fix a crash changing g->meshCombine when g->type!=EXTRUDE.

This commit is contained in:
whitequark 2017-04-16 02:12:31 +00:00
parent 1480f890bd
commit 85b4b25278
2 changed files with 16 additions and 7 deletions

View File

@ -84,6 +84,13 @@ Bugs fixed:
as a source group also gets forced to triangle mesh. as a source group also gets forced to triangle mesh.
* Paste Transformed with a negative scale does not invert arcs. * Paste Transformed with a negative scale does not invert arcs.
2.x
---
Bug fixes:
* Do not crash when changing an unconstrained lathe group between
union and difference modes.
2.3 2.3
--- ---

View File

@ -188,13 +188,15 @@ void TextWindow::ScreenChangeGroupOption(int link, uint32_t v) {
case 'K': g->skipFirst = false; break; case 'K': g->skipFirst = false; break;
case 'c': case 'c':
// When an extrude group is first created, it's positioned for a union if(g->type == Group::Type::EXTRUDE) {
// extrusion. If no constraints were added, flip it when we switch between // When an extrude group is first created, it's positioned for a union
// union and difference modes to avoid manual work doing the smae. // extrusion. If no constraints were added, flip it when we switch between
if(g->meshCombine != (Group::CombineAs)v && g->GetNumConstraints() == 0 && // union and difference modes to avoid manual work doing the smae.
((Group::CombineAs)v == Group::CombineAs::DIFFERENCE || if(g->meshCombine != (Group::CombineAs)v && g->GetNumConstraints() == 0 &&
g->meshCombine == Group::CombineAs::DIFFERENCE)) { ((Group::CombineAs)v == Group::CombineAs::DIFFERENCE ||
g->ExtrusionForceVectorTo(g->ExtrusionGetVector().Negated()); g->meshCombine == Group::CombineAs::DIFFERENCE)) {
g->ExtrusionForceVectorTo(g->ExtrusionGetVector().Negated());
}
} }
g->meshCombine = (Group::CombineAs)v; g->meshCombine = (Group::CombineAs)v;
break; break;