Sketcher: External edges in constraint modes (distance)

This commit is contained in:
AjinkyaDahale 2017-02-22 03:47:17 +05:30 committed by wmayer
parent 39725ff777
commit ab4a222dc6

View File

@ -784,7 +784,7 @@ namespace SketcherGui {
(allowedSelTypes & (SelEdge | SelEdgeOrAxis) && element.substr(0,4) == "Edge") || (allowedSelTypes & (SelEdge | SelEdgeOrAxis) && element.substr(0,4) == "Edge") ||
(allowedSelTypes & (SelHAxis | SelEdgeOrAxis) && element.substr(0,6) == "H_Axis") || (allowedSelTypes & (SelHAxis | SelEdgeOrAxis) && element.substr(0,6) == "H_Axis") ||
(allowedSelTypes & (SelVAxis | SelEdgeOrAxis) && element.substr(0,6) == "V_Axis") || (allowedSelTypes & (SelVAxis | SelEdgeOrAxis) && element.substr(0,6) == "V_Axis") ||
(allowedSelTypes & SketcherGui::SelExternalEdge && element.substr(0,12) == "ExternalEdge")) (allowedSelTypes & SelExternalEdge && element.substr(0,12) == "ExternalEdge"))
return true; return true;
return false; return false;
@ -914,7 +914,9 @@ public:
} }
else if (allowedSelTypes & SelExternalEdge) { else if (allowedSelTypes & SelExternalEdge) {
//TODO: Figure out how this works //TODO: Figure out how this works
selIdPair.GeoId = CrvId;
newSelType = SelExternalEdge; newSelType = SelExternalEdge;
ss << "ExternalEdge" << Sketcher::GeoEnum::RefExt + 1 - CrvId;
} }
if (selIdPair.GeoId == Constraint::GeoUndef) { if (selIdPair.GeoId == Constraint::GeoUndef) {
@ -1952,8 +1954,9 @@ CmdSketcherConstrainDistance::CmdSketcherConstrainDistance()
eType = ForEdit; eType = ForEdit;
allowedSelSequences = {{SelVertex, SelVertexOrRoot}, {SelRoot, SelVertex}, allowedSelSequences = {{SelVertex, SelVertexOrRoot}, {SelRoot, SelVertex},
{SelEdge}, {SelEdge}, {SelExternalEdge},
{SelVertex, SelEdgeOrAxis}, {SelRoot, SelEdge}}; {SelVertex, SelEdgeOrAxis}, {SelRoot, SelEdge},
{SelVertex, SelExternalEdge}, {SelRoot, SelExternalEdge}};
constraintCursor = cursor_genericconstraint; constraintCursor = cursor_genericconstraint;
} }
@ -2160,6 +2163,7 @@ void CmdSketcherConstrainDistance::applyConstraint(std::vector<SelIdPair> &selSe
return; return;
} }
case 2: // {SelEdge} case 2: // {SelEdge}
case 3: // {SelExternalEdge}
{ {
GeoId1 = GeoId2 = selSeq.at(0).GeoId; GeoId1 = GeoId2 = selSeq.at(0).GeoId;
PosId1 = Sketcher::start; PosId2 = Sketcher::end; PosId1 = Sketcher::start; PosId2 = Sketcher::end;
@ -2192,8 +2196,10 @@ void CmdSketcherConstrainDistance::applyConstraint(std::vector<SelIdPair> &selSe
return; return;
} }
case 3: //{SelVertex, SelEdgeOrAxis} case 4: // {SelVertex, SelEdgeOrAxis}
case 4: //{SelRoot, SelEdge} case 5: // {SelRoot, SelEdge}
case 6: // {SelVertex, SelExternalEdge}
case 7: // {SelRoot, SelExternalEdge}
{ {
GeoId1 = selSeq.at(0).GeoId; GeoId2 = selSeq.at(1).GeoId; GeoId1 = selSeq.at(0).GeoId; GeoId2 = selSeq.at(1).GeoId;
PosId1 = selSeq.at(0).PosId; PosId2 = selSeq.at(1).PosId; PosId1 = selSeq.at(0).PosId; PosId2 = selSeq.at(1).PosId;