feat: Implement in-viewport sketch plane selection
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
@@ -102,29 +102,32 @@ bool ApplicationController::saveDocumentAs()
|
||||
|
||||
void ApplicationController::beginSketchCreation()
|
||||
{
|
||||
QStringList items;
|
||||
items << "Top (XY)" << "Front (XZ)" << "Right (YZ)";
|
||||
emit planeSelectionModeStarted();
|
||||
}
|
||||
|
||||
bool ok;
|
||||
QString item = QInputDialog::getItem(m_mainWindow, "Select Sketch Plane",
|
||||
"Plane:", items, 0, false, &ok);
|
||||
if (ok && !item.isEmpty()) {
|
||||
auto feature = new SketchFeature("Sketch");
|
||||
m_activeSketch = feature;
|
||||
ViewportWidget::SketchPlane plane;
|
||||
if (item == "Top (XY)") {
|
||||
plane = ViewportWidget::SketchPlane::XY;
|
||||
void ApplicationController::onPlaneSelected(ViewportWidget::SketchPlane plane)
|
||||
{
|
||||
auto feature = new SketchFeature("Sketch");
|
||||
m_activeSketch = feature;
|
||||
|
||||
switch (plane) {
|
||||
case ViewportWidget::SketchPlane::XY:
|
||||
feature->setPlane(SketchFeature::SketchPlane::XY);
|
||||
} else if (item == "Front (XZ)") {
|
||||
plane = ViewportWidget::SketchPlane::XZ;
|
||||
break;
|
||||
case ViewportWidget::SketchPlane::XZ:
|
||||
feature->setPlane(SketchFeature::SketchPlane::XZ);
|
||||
} else { // "Right (YZ)"
|
||||
plane = ViewportWidget::SketchPlane::YZ;
|
||||
break;
|
||||
case ViewportWidget::SketchPlane::YZ:
|
||||
feature->setPlane(SketchFeature::SketchPlane::YZ);
|
||||
}
|
||||
m_document->addFeature(feature);
|
||||
emit sketchModeStarted(plane);
|
||||
break;
|
||||
case ViewportWidget::SketchPlane::NONE:
|
||||
delete feature;
|
||||
m_activeSketch = nullptr;
|
||||
return;
|
||||
}
|
||||
|
||||
m_document->addFeature(feature);
|
||||
emit sketchModeStarted(plane);
|
||||
}
|
||||
|
||||
void ApplicationController::addLine(const gp_Pnt& start, const gp_Pnt& end)
|
||||
|
||||
Reference in New Issue
Block a user