Sketcher: Preference pattern and width added for External defining geometry
This commit is contained in:
@@ -161,6 +161,10 @@ void EditModeCoinManager::ParameterObserver::initParameters()
|
||||
[this, &drawingParameters = Client.drawingParameters](const std::string& param) {
|
||||
updateWidth(drawingParameters.ExternalWidth, param, 2);
|
||||
}},
|
||||
{"ExternalDefiningWidth",
|
||||
[this, &drawingParameters = Client.drawingParameters](const std::string& param) {
|
||||
updateWidth(drawingParameters.ExternalDefiningWidth, param, 2);
|
||||
}},
|
||||
{"EdgePattern",
|
||||
[this, &drawingParameters = Client.drawingParameters](const std::string& param) {
|
||||
updatePattern(drawingParameters.CurvePattern, param, 0b1111111111111111);
|
||||
@@ -177,6 +181,10 @@ void EditModeCoinManager::ParameterObserver::initParameters()
|
||||
[this, &drawingParameters = Client.drawingParameters](const std::string& param) {
|
||||
updatePattern(drawingParameters.ExternalPattern, param, 0b1111110011111100);
|
||||
}},
|
||||
{"ExternalDefiningPattern",
|
||||
[this, &drawingParameters = Client.drawingParameters](const std::string& param) {
|
||||
updatePattern(drawingParameters.ExternalDefiningPattern, param, 0b1111111111111111);
|
||||
}},
|
||||
{"CreateLineColor",
|
||||
[this, drawingParameters = Client.drawingParameters](const std::string& param) {
|
||||
updateColor(drawingParameters.CreateCurveColor, param);
|
||||
@@ -1123,6 +1131,8 @@ void EditModeCoinManager::updateInventorWidths()
|
||||
drawingParameters.InternalWidth * drawingParameters.pixelScalingFactor;
|
||||
editModeScenegraphNodes.CurvesExternalDrawStyle->lineWidth =
|
||||
drawingParameters.ExternalWidth * drawingParameters.pixelScalingFactor;
|
||||
editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->lineWidth =
|
||||
drawingParameters.ExternalDefiningWidth * drawingParameters.pixelScalingFactor;
|
||||
}
|
||||
|
||||
void EditModeCoinManager::updateInventorPatterns()
|
||||
@@ -1134,6 +1144,8 @@ void EditModeCoinManager::updateInventorPatterns()
|
||||
drawingParameters.InternalPattern;
|
||||
editModeScenegraphNodes.CurvesExternalDrawStyle->linePattern =
|
||||
drawingParameters.ExternalPattern;
|
||||
editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->linePattern =
|
||||
drawingParameters.ExternalDefiningPattern;
|
||||
}
|
||||
|
||||
void EditModeCoinManager::updateInventorColors()
|
||||
|
||||
@@ -40,10 +40,8 @@ int GeometryLayerParameters::getSubLayerIndex(const int geoId,
|
||||
bool isExternal = geoId <= Sketcher::GeoEnum::RefExt;
|
||||
if (isExternal) {
|
||||
auto egf = Sketcher::ExternalGeometryFacade::getFacade(geom->clone());
|
||||
if (egf->testFlag(Sketcher::ExternalGeometryExtension::Defining)) {
|
||||
// Defining external are added to the Normal sublayers because they
|
||||
// share the same line style.
|
||||
return static_cast<int>(SubLayer::Normal);
|
||||
if (egf->testFlag(Sketcher::ExternalGeometryExtension::Defining)) {
|
||||
return static_cast<int>(SubLayer::ExternalDefining);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +81,7 @@ SbColor DrawingParameters::SelectColor(0.11f, 0.68f, 0.11f); // #1CA
|
||||
SbColor DrawingParameters::PreselectSelectedColor(0.36f, 0.48f, 0.11f); // #5D7B1C -> ( 93,123, 28)
|
||||
SbColor DrawingParameters::CurveExternalColor(0.8f, 0.2f, 0.6f); // #CC3399 -> (204, 51,153)
|
||||
SbColor
|
||||
DrawingParameters::CurveExternalDefiningColor(1.0f, 0.5f, 0.69f); // #FF7FAF -> (255,127,175)
|
||||
DrawingParameters::CurveExternalDefiningColor(0.8f, 0.2f, 0.6f); // #CC3399 -> (204, 51,153)
|
||||
SbColor DrawingParameters::CurveDraftColor(0.0f, 0.0f, 0.86f); // #0000DC -> ( 0, 0,220)
|
||||
SbColor
|
||||
DrawingParameters::FullyConstraintConstructionElementColor(0.56f,
|
||||
|
||||
@@ -144,11 +144,13 @@ struct DrawingParameters
|
||||
int ConstructionWidth = 1; // width of construction edges
|
||||
int InternalWidth = 1; // width of internal edges
|
||||
int ExternalWidth = 1; // width of external edges
|
||||
int ExternalDefiningWidth = 1; // width of external defining edges
|
||||
|
||||
unsigned int CurvePattern = 0b1111111111111111; // pattern of normal edges
|
||||
unsigned int ConstructionPattern = 0b1111110011111100; // pattern of construction edges
|
||||
unsigned int InternalPattern = 0b1111110011111100; // pattern of internal edges
|
||||
unsigned int ExternalPattern = 0b1111110011111100; // pattern of external edges
|
||||
unsigned int ExternalDefiningPattern = 0b1111111111111111; // pattern of external defining edges
|
||||
//@}
|
||||
|
||||
DrawingParameters()
|
||||
@@ -290,6 +292,7 @@ public:
|
||||
Construction = 1,
|
||||
Internal = 2,
|
||||
External = 3,
|
||||
ExternalDefining = 4
|
||||
};
|
||||
|
||||
void reset()
|
||||
@@ -343,9 +346,15 @@ public:
|
||||
return t == static_cast<int>(SubLayer::External);
|
||||
}
|
||||
|
||||
bool isExternalDefiningSubLayer(int t) const
|
||||
{
|
||||
return t == static_cast<int>(SubLayer::ExternalDefining);
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
int CoinLayers = 1; // defaults to a single Coin Geometry Layer.
|
||||
int SubLayers = 4; // Normal, Construction, Internal, External.
|
||||
int SubLayers = 5; // Normal, Construction, Internal, External.
|
||||
};
|
||||
|
||||
/** @brief Struct to hold the results of analysis performed on geometry
|
||||
@@ -411,6 +420,7 @@ struct EditModeScenegraphNodes
|
||||
SoDrawStyle* CurvesConstructionDrawStyle;
|
||||
SoDrawStyle* CurvesInternalDrawStyle;
|
||||
SoDrawStyle* CurvesExternalDrawStyle;
|
||||
SoDrawStyle* CurvesExternalDefiningDrawStyle;
|
||||
SoDrawStyle* HiddenCurvesDrawStyle;
|
||||
//@}
|
||||
|
||||
|
||||
@@ -656,6 +656,14 @@ void EditModeGeometryCoinManager::createEditModeCurveInventorNodes()
|
||||
drawingParameters.ExternalPattern;
|
||||
editModeScenegraphNodes.CurvesExternalDrawStyle->linePatternScaleFactor = 2;
|
||||
|
||||
editModeScenegraphNodes.CurvesExternalDefiningDrawStyle = new SoDrawStyle;
|
||||
editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->setName("CurvesExternalDefiningDrawStyle");
|
||||
editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->lineWidth =
|
||||
drawingParameters.ExternalDefiningWidth * drawingParameters.pixelScalingFactor;
|
||||
editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->linePattern =
|
||||
drawingParameters.ExternalDefiningPattern;
|
||||
editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->linePatternScaleFactor = 2;
|
||||
|
||||
for (int i = 0; i < geometryLayerParameters.getCoinLayerCount(); i++) {
|
||||
editModeScenegraphNodes.CurvesMaterials.emplace_back();
|
||||
editModeScenegraphNodes.CurvesCoordinate.emplace_back();
|
||||
@@ -688,6 +696,9 @@ void EditModeGeometryCoinManager::createEditModeCurveInventorNodes()
|
||||
else if (geometryLayerParameters.isExternalSubLayer(t)) {
|
||||
sep->addChild(editModeScenegraphNodes.CurvesExternalDrawStyle);
|
||||
}
|
||||
else if (geometryLayerParameters.isExternalDefiningSubLayer(t)) {
|
||||
sep->addChild(editModeScenegraphNodes.CurvesExternalDefiningDrawStyle);
|
||||
}
|
||||
else {
|
||||
sep->addChild(editModeScenegraphNodes.CurvesDrawStyle);
|
||||
}
|
||||
|
||||
@@ -512,6 +512,7 @@ SketcherSettingsAppearance::SketcherSettingsAppearance(QWidget* parent)
|
||||
ui->ConstructionPattern->setIconSize(QSize(70, 12));
|
||||
ui->InternalPattern->setIconSize(QSize(70, 12));
|
||||
ui->ExternalPattern->setIconSize(QSize(70, 12));
|
||||
ui->ExternalDefiningPattern->setIconSize(QSize(70, 12));
|
||||
for (auto& style : styles) {
|
||||
QPixmap px(ui->EdgePattern->iconSize());
|
||||
px.fill(Qt::transparent);
|
||||
@@ -531,6 +532,7 @@ SketcherSettingsAppearance::SketcherSettingsAppearance(QWidget* parent)
|
||||
ui->ConstructionPattern->addItem(QIcon(px), QString(), QVariant(style));
|
||||
ui->InternalPattern->addItem(QIcon(px), QString(), QVariant(style));
|
||||
ui->ExternalPattern->addItem(QIcon(px), QString(), QVariant(style));
|
||||
ui->ExternalDefiningPattern->addItem(QIcon(px), QString(), QVariant(style));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -572,6 +574,7 @@ void SketcherSettingsAppearance::saveSettings()
|
||||
ui->ConstructionWidth->onSave();
|
||||
ui->InternalWidth->onSave();
|
||||
ui->ExternalWidth->onSave();
|
||||
ui->ExternalDefiningWidth->onSave();
|
||||
|
||||
ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath(
|
||||
"User parameter:BaseApp/Preferences/Mod/Sketcher/View");
|
||||
@@ -590,6 +593,10 @@ void SketcherSettingsAppearance::saveSettings()
|
||||
data = ui->ExternalPattern->itemData(ui->ExternalPattern->currentIndex());
|
||||
pattern = data.toInt();
|
||||
hGrp->SetInt("ExternalPattern", pattern);
|
||||
|
||||
data = ui->ExternalDefiningPattern->itemData(ui->ExternalDefiningPattern->currentIndex());
|
||||
pattern = data.toInt();
|
||||
hGrp->SetInt("ExternalDefiningPattern", pattern);
|
||||
}
|
||||
|
||||
void SketcherSettingsAppearance::loadSettings()
|
||||
@@ -622,6 +629,7 @@ void SketcherSettingsAppearance::loadSettings()
|
||||
ui->ConstructionWidth->onRestore();
|
||||
ui->InternalWidth->onRestore();
|
||||
ui->ExternalWidth->onRestore();
|
||||
ui->ExternalDefiningWidth->onRestore();
|
||||
|
||||
ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath(
|
||||
"User parameter:BaseApp/Preferences/Mod/Sketcher/View");
|
||||
@@ -652,6 +660,13 @@ void SketcherSettingsAppearance::loadSettings()
|
||||
index = 0;
|
||||
}
|
||||
ui->ExternalPattern->setCurrentIndex(index);
|
||||
|
||||
pattern = hGrp->GetInt("ExternalDefiningPattern", 0b1111111111111111);
|
||||
index = ui->ExternalDefiningPattern->findData(QVariant(pattern));
|
||||
if (index < 0) {
|
||||
index = 0;
|
||||
}
|
||||
ui->ExternalDefiningPattern->setCurrentIndex(index);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -487,7 +487,7 @@
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="label_20">
|
||||
<property name="text">
|
||||
<string>External geometry</string>
|
||||
<string>External reference geometry</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -575,9 +575,9 @@
|
||||
</property>
|
||||
<property name="color" stdset="0">
|
||||
<color>
|
||||
<red>255</red>
|
||||
<green>114</green>
|
||||
<blue>243</blue>
|
||||
<red>204</red>
|
||||
<green>51</green>
|
||||
<blue>153</blue>
|
||||
</color>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
@@ -587,6 +587,44 @@
|
||||
<cstring>View</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="3">
|
||||
<widget class="QComboBox" name="ExternalDefiningPattern">
|
||||
<property name="toolTip">
|
||||
<string>Line pattern of external defining edges.</string>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>-1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="4">
|
||||
<widget class="Gui::PrefSpinBox" name="ExternalDefiningWidth">
|
||||
<property name="toolTip">
|
||||
<string>Width of external defining edges.</string>
|
||||
</property>
|
||||
<property name="unit" stdset="0">
|
||||
<string notr="true">px</string>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string notr="true"> px</string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>99</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
<cstring>ExternalDefiningWidth</cstring>
|
||||
</property>
|
||||
<property name="prefPath" stdset="0">
|
||||
<cstring>Mod/Sketcher/View</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="0">
|
||||
<widget class="QLabel" name="label_45">
|
||||
|
||||
Reference in New Issue
Block a user