- std::shared_ptr<ModelAPI_AttributeBoolean> aConstructionAttr =
- data()->boolean(SketchPlugin_SketchEntity::CONSTRUCTION_ID());
- bool isConstruction = aConstructionAttr.get() != NULL && aConstructionAttr->value();
- if (aShapeType == 6) { // if this is an edge
- if (isConstruction) {
- isCustomized = thePrs->setWidth(1) || isCustomized;
- isCustomized = thePrs->setLineStyle(3) || isCustomized;
+ std::shared_ptr<ModelAPI_AttributeBoolean> anAuxiliaryAttr =
+ data()->boolean(SketchPlugin_SketchEntity::AUXILIARY_ID());
+ bool isConstruction = anAuxiliaryAttr.get() != NULL && anAuxiliaryAttr->value();
+ if (isConstruction) {
+ aColor = Config_PropManager::color("Visualization", "sketch_auxiliary_color");
+ }
+ else if (isExternal()) {
+ aColor = Config_PropManager::color("Visualization", "sketch_external_color");
+ }
+ else {
+ aColor = Config_PropManager::color("Visualization", "sketch_entity_color");
+ }
+ if (!aColor.empty()) {
+ if (theResult.get() && ModelAPI_Session::get()->isOperation()) {
+ AttributeIntArrayPtr aColorAttr = theResult->data()->intArray(ModelAPI_Result::COLOR_ID());
+ aColorAttr->setSize(3);
+ // Set the color attribute in order do not use default colors in the presentation object
+ for (int i = 0; i < 3; i++)
+ aColorAttr->setValue(i, aColor[i]);
+ }
+ thePrs->setColor(aColor[0], aColor[1], aColor[2]);
+ for (int i = 0; i < 3 && !isCustomized; i++)
+ isCustomized = aColor[i] != aPrevColor[i];
+ }