Sketcher: External: Change style to : defining are solid lines. Non-defining dashed. Both use external color.
This commit is contained in:
committed by
WandererFan
parent
1d0373f40f
commit
50c4e2b4e1
@@ -175,7 +175,7 @@ void EditModeCoinManager::ParameterObserver::initParameters()
|
||||
}},
|
||||
{"ExternalPattern",
|
||||
[this, &drawingParameters = Client.drawingParameters](const std::string& param) {
|
||||
updatePattern(drawingParameters.ExternalPattern, param, 0b1110010011100100);
|
||||
updatePattern(drawingParameters.ExternalPattern, param, 0b1111110011111100);
|
||||
}},
|
||||
{"CreateLineColor",
|
||||
[this, drawingParameters = Client.drawingParameters](const std::string& param) {
|
||||
|
||||
@@ -22,11 +22,34 @@
|
||||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#include "Mod/Sketcher/App/ExternalGeometryFacade.h"
|
||||
|
||||
#include "EditModeCoinManagerParameters.h"
|
||||
|
||||
|
||||
using namespace SketcherGui;
|
||||
|
||||
int GeometryLayerParameters::getSubLayerIndex(const int geoId,
|
||||
const Sketcher::GeometryFacade* geom) const
|
||||
{
|
||||
bool isConstruction = geom->getConstruction();
|
||||
bool isInternal = geom->isInternalAligned();
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
return static_cast<int>(isExternal ? SubLayer::External
|
||||
: isInternal ? SubLayer::Internal
|
||||
: isConstruction ? SubLayer::Construction
|
||||
: SubLayer::Normal);
|
||||
}
|
||||
|
||||
SbColor DrawingParameters::InformationColor(0.0f, 1.0f, 0.0f); // #00FF00 -> ( 0,255, 0)
|
||||
SbColor DrawingParameters::CreateCurveColor(0.5f, 0.5f, 0.5f); // ##7f7f7f -> (127,127,127)
|
||||
SbColor DrawingParameters::CrossColorH(0.8f, 0.4f, 0.4f); // #CC6666 -> (204,102,102)
|
||||
|
||||
@@ -145,7 +145,7 @@ struct DrawingParameters
|
||||
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 = 0b1110010011100100; // pattern of external edges
|
||||
unsigned int ExternalPattern = 0b1111110011111100; // pattern of external edges
|
||||
//@}
|
||||
};
|
||||
|
||||
@@ -304,17 +304,7 @@ public:
|
||||
return SubLayers;
|
||||
}
|
||||
|
||||
int inline getSubLayerIndex(const int geoId, const Sketcher::GeometryFacade* geom) const
|
||||
{
|
||||
bool isConstruction = geom->getConstruction();
|
||||
bool isInternal = geom->isInternalAligned();
|
||||
bool isExternal = geoId <= Sketcher::GeoEnum::RefExt;
|
||||
|
||||
return static_cast<int>(isExternal ? SubLayer::External
|
||||
: isInternal ? SubLayer::Internal
|
||||
: isConstruction ? SubLayer::Construction
|
||||
: SubLayer::Normal);
|
||||
}
|
||||
int getSubLayerIndex(const int geoId, const Sketcher::GeometryFacade* geom) const;
|
||||
|
||||
bool isNormalSubLayer(int t) const
|
||||
{
|
||||
|
||||
@@ -402,6 +402,7 @@ void EditModeGeometryCoinManager::updateGeometryColor(const GeoListFacade& geoli
|
||||
ViewProviderSketchCoinAttorney::isCurveSelected(viewProvider, GeoId);
|
||||
bool preselected = (preselectcurve == GeoId);
|
||||
bool constrainedElement = isFullyConstraintElement(GeoId);
|
||||
bool isExternal = GeoId < -1;
|
||||
|
||||
if (selected || preselected) {
|
||||
color[i] = selected ? (preselected ? drawingParameters.PreselectSelectedColor
|
||||
@@ -414,16 +415,13 @@ void EditModeGeometryCoinManager::updateGeometryColor(const GeoListFacade& geoli
|
||||
SbVec3f(x, y, viewOrientationFactor * drawingParameters.zHighLine);
|
||||
}
|
||||
}
|
||||
else if (geometryLayerParameters.isExternalSubLayer(t)) {
|
||||
else if (isExternal) {
|
||||
auto geom = geolistfacade.getGeometryFacadeFromGeoId(GeoId);
|
||||
auto egf = ExternalGeometryFacade::getFacade(geom->clone());
|
||||
auto ref = egf->getRef();
|
||||
if (egf->testFlag(ExternalGeometryExtension::Missing)) {
|
||||
color[i] = drawingParameters.InvalidSketchColor;
|
||||
}
|
||||
else if (egf->testFlag(ExternalGeometryExtension::Defining)) {
|
||||
color[i] = drawingParameters.CurveColor;
|
||||
}
|
||||
else {
|
||||
color[i] = drawingParameters.CurveExternalColor;
|
||||
}
|
||||
|
||||
@@ -644,7 +644,7 @@ void SketcherSettingsAppearance::loadSettings()
|
||||
}
|
||||
ui->InternalPattern->setCurrentIndex(index);
|
||||
|
||||
pattern = hGrp->GetInt("ExternalPattern", 0b1110010011100100);
|
||||
pattern = hGrp->GetInt("ExternalPattern", 0b1111110011111100);
|
||||
index = ui->ExternalPattern->findData(QVariant(pattern));
|
||||
if (index < 0) {
|
||||
index = 0;
|
||||
|
||||
Reference in New Issue
Block a user