colorSolutionMesh = settings.value("SceneViewSettings/ColorSolutionMesh", COLORSOLUTIONMESH).value<QColor>();
colorHighlighted = settings.value("SceneViewSettings/ColorHighlighted", COLORHIGHLIGHTED).value<QColor>();
colorSelected = settings.value("SceneViewSettings/ColorSelected", COLORSELECTED).value<QColor>();
+ colorCrossed = settings.value("SceneViewSettings/ColorCrossed", COLORCROSSED).value<QColor>();
// geometry
nodeSize = settings.value("SceneViewSettings/NodeSize", 6.0).toDouble();
QColor colorInitialMesh;
QColor colorSolutionMesh;
QColor colorHighlighted;
+ QColor colorCrossed;
QColor colorSelected;
// adaptivity
// clear solution
m_sceneSolution->clear();
+ // clear crosses
+ foreach(SceneEdge *any_edge, edge->crossEdges)
+ {
+ any_edge->crossEdges.removeOne(edge);
+ if (any_edge->crossEdges.count() == 0)
+ any_edge->isCrossed = false;
+ }
+
edges.removeOne(edge);
// delete edge;
: SceneBasic()
{
logMessage("SceneEdge::SceneEdge()");
-
this->isCrossed = false;
this->nodeStart = nodeStart;
this->nodeEnd = nodeEnd;
SceneNode *nodeEnd;
double angle;
int refineTowardsEdge;
+ QList<SceneEdge *> crossEdges;
bool isCrossed;
SceneEdge(SceneNode *nodeStart, SceneNode *nodeEnd, SceneBoundary *boundary, double angle, int refineTowardsEdge);
// ToDo: make color in Util::config
if (edge->isCrossed)
- glColor3d(0.0, 1.0, 0.0);
-
+ {
+ glColor3d(Util::config()->colorCrossed.redF(),
+ Util::config()->colorCrossed.greenF(),
+ Util::config()->colorCrossed.blueF());
+ glLineWidth(Util::config()->edgeWidth + 2.0);
+ }
if (edge->isHighlighted)
{
glColor3d(Util::config()->colorHighlighted.redF(),
(intersects.count() > 1))
{
anyEdge->isCrossed = true;
+ anyEdge->crossEdges.push_back(edgeAdded);
+
edgeAdded->isCrossed = true;
+ edgeAdded->crossEdges.push_back(anyEdge);
}
}
const QColor COLORSOLUTIONMESH = QColor::fromRgb(150, 70, 0);
const QColor COLORHIGHLIGHTED = QColor::fromRgb(250, 150, 0);
const QColor COLORSELECTED = QColor::fromRgb(150, 0, 0);
+const QColor COLORCROSSED = QColor::fromRgb(0, 255, 0);
// workspace
const double GRIDSTEP = 0.05;