- GEOM::GEOM_Object_var anObj;
- Standard_Boolean aResult = Standard_False;
- if (IObjectCount() == 1) {
- anObj = GEOMBase::ConvertIOinGEOMObject(firstIObject(), aResult);
- if (aResult) {
- if (anObj->_is_nil()) {
- aResult = Standard_False;
- } else {
- mySelName[aCurrFocus]->setText(GEOMBase::GetName(anObj));
- }
- } else {
- anObj = GEOM::GEOM_Object::_nil();
+ TopAbs_ShapeEnum aType = TopAbs_EDGE;
+ if (aCurrFocus == Vertex1 || aCurrFocus == Vertex2 ||
+ aCurrFocus == Vertex3 || aCurrFocus == Vertex4)
+ aType = TopAbs_VERTEX;
+
+ GEOM::GeomObjPtr aSelectedObject = getSelected( aType );
+ TopoDS_Shape aShape;
+ if ( aSelectedObject && GEOMBase::GetShape( aSelectedObject.get(), aShape ) && !aShape.IsNull() ) {
+ QString aName = GEOMBase::GetName( aSelectedObject.get() );
+ myEditCurrentArgument->setText( aName );
+ switch (aCurrFocus) {
+ // four vertices
+ case Vertex1:
+ myShape1 = aSelectedObject;
+ if (!myShape2) mySelBtn[Vertex2]->click();
+ else if (!myShape3) mySelBtn[Vertex3]->click();
+ else if (!myShape4) mySelBtn[Vertex4]->click();
+ break;
+ case Vertex2:
+ myShape2 = aSelectedObject;
+ if (!myShape3) mySelBtn[Vertex3]->click();
+ else if (!myShape4) mySelBtn[Vertex4]->click();
+ else if (!myShape1) mySelBtn[Vertex1]->click();
+ break;
+ case Vertex3:
+ myShape3 = aSelectedObject;
+ if (!myShape4) mySelBtn[Vertex4]->click();
+ else if (!myShape1) mySelBtn[Vertex1]->click();
+ else if (!myShape2) mySelBtn[Vertex2]->click();
+ break;
+ case Vertex4:
+ myShape4 = aSelectedObject;
+ if (!myShape1) mySelBtn[Vertex1]->click();
+ else if (!myShape2) mySelBtn[Vertex2]->click();
+ else if (!myShape3) mySelBtn[Vertex3]->click();
+ break;
+ // two edges
+ case Edge12:
+ myShape1 = aSelectedObject;
+ if (!myShape2) mySelBtn[Edge22]->click();
+ break;
+ case Edge22:
+ myShape2 = aSelectedObject;
+ if (!myShape1) mySelBtn[Edge12]->click();
+ break;
+ // four edges
+ case Edge14:
+ myShape1 = aSelectedObject;
+ if (!myShape2) mySelBtn[Edge24]->click();
+ else if (!myShape3) mySelBtn[Edge34]->click();
+ else if (!myShape4) mySelBtn[Edge44]->click();
+ break;
+ case Edge24:
+ myShape2 = aSelectedObject;
+ if (!myShape3) mySelBtn[Edge34]->click();
+ else if (!myShape4) mySelBtn[Edge44]->click();
+ else if (!myShape1) mySelBtn[Edge14]->click();
+ break;
+ case Edge34:
+ myShape3 = aSelectedObject;
+ if (!myShape4) mySelBtn[Edge44]->click();
+ else if (!myShape1) mySelBtn[Edge14]->click();
+ else if (!myShape2) mySelBtn[Edge24]->click();
+ break;
+ case Edge44:
+ myShape4 = aSelectedObject;
+ if (!myShape1) mySelBtn[Edge14]->click();
+ else if (!myShape2) mySelBtn[Edge24]->click();
+ else if (!myShape3) mySelBtn[Edge34]->click();
+ break;
+ default:
+ break;