#include <ModelAPI_Attribute.h>
#include <ModelAPI_AttributeRefAttr.h>
#include <ModelAPI_ResultParameter.h>
+#include <ModelAPI_ResultCompSolid.h>
+#include <ModelAPI_Tools.h>
#include <GeomDataAPI_Point2D.h>
#include <Events_Error.h>
void setSpinText(ModuleBase_ParamSpinBox* theSpin, const QString& theText)
{
+ if (theSpin->text() == theText)
+ return;
+ // In order to avoid extra text setting because it will
+ // reset cursor position in control
bool isBlocked = theSpin->blockSignals(true);
theSpin->setText(theText);
theSpin->blockSignals(isBlocked);
void setSpinValue(QDoubleSpinBox* theSpin, double theValue)
{
+ if (theSpin->value() == theValue)
+ return;
bool isBlocked = theSpin->blockSignals(true);
theSpin->setValue(theValue);
theSpin->blockSignals(isBlocked);
void setSpinValue(ModuleBase_ParamSpinBox* theSpin, double theValue)
{
+ //if (theSpin->value() == theValue)
+ // return;
bool isBlocked = theSpin->blockSignals(true);
theSpin->setValue(theValue);
theSpin->blockSignals(isBlocked);
MyShapeTypes["shell"] = TopAbs_SHELL;
MyShapeTypes["solid"] = TopAbs_SOLID;
MyShapeTypes["solids"] = TopAbs_SOLID;
- MyShapeTypes["compound"] = TopAbs_COMPOUND;
}
QString aType = theType.toLower();
if (MyShapeTypes.contains(aType))
return TopAbs_SHAPE;
}
-void checkObjects(const QObjectPtrList& theObjects, bool& hasResult, bool& hasFeature, bool& hasParameter)
+bool isSubResult(ObjectPtr theObject)
+{
+ bool aSubResult = false;
+
+ //ResultCompSolidPtr aCompsolidResult = std::dynamic_pointer_cast<ModelAPI_ResultCompSolid>(aResult);
+ return aSubResult;
+}
+
+void checkObjects(const QObjectPtrList& theObjects, bool& hasResult, bool& hasFeature, bool& hasParameter, bool& hasSubFeature)
{
hasResult = false;
hasFeature = false;
hasParameter = false;
+ hasSubFeature = false;
foreach(ObjectPtr aObj, theObjects) {
FeaturePtr aFeature = std::dynamic_pointer_cast<ModelAPI_Feature>(aObj);
ResultPtr aResult = std::dynamic_pointer_cast<ModelAPI_Result>(aObj);
ResultParameterPtr aConstruction = std::dynamic_pointer_cast<ModelAPI_ResultParameter>(aResult);
- hasResult = (aResult.get() != NULL);
+ bool aSubResult = isSubResult(aResult);
+
+ /// results of compsolids are not processed in SHOW/HIDE/WIREFRAME operations
+ hasResult = (aResult.get() != NULL && !aSubResult);
hasFeature = (aFeature.get() != NULL);
hasParameter = (aConstruction.get() != NULL);
- if (hasFeature && hasResult && hasParameter)
+ if (hasFeature)
+ hasSubFeature = (ModelAPI_Tools::compositeOwner(aFeature) != NULL);
+ if (hasFeature && hasResult && hasParameter && hasSubFeature)
break;
}
}
+double defaultDeviationCoefficient()
+{
+ // this value is chosen by performance check. Test case is an extrusion on sketch circle.
+ return 1.e-3;
+}
}