- if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull())
- {
- TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX;
- if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 2)
- aNeedType = TopAbs_EDGE;
-
- TColStd_IndexedMapOfInteger aMap;
- aSelMgr->GetIndexes(aSelList.First(), aMap);
- if (aMap.Extent() == 1)
- {
- int anIndex = aMap(1);
- if (aNeedType == TopAbs_EDGE)
- aName += QString(":edge_%1").arg(anIndex);
- else
- aName += QString(":vertex_%1").arg(anIndex);
-
- //Find SubShape Object in Father
- GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName);
-
- if (aFindedObject->_is_nil()) { // Object not found in study
- GEOM::GEOM_IShapesOperations_var aShapesOp =
- getGeomEngine()->GetIShapesOperations(getStudyId());
- aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex);
- }
- else {
- aSelectedObject = aFindedObject;
- }
+ if ( aSelectedObject && GEOMBase::GetShape( aSelectedObject.get(), aShape ) && !aShape.IsNull() ) {
+ QString aName = GEOMBase::GetName( aSelectedObject.get() );
+ myEditCurrentArgument->setText( aName );
+ if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) {
+ if ( getConstructorId() == 1 ) {
+ myPoint1 = aSelectedObject;
+ if ( !myPoint2 )
+ GroupPoints->PushButton3->click();
+ else if ( myObjects.isEmpty() )
+ GroupPoints->PushButton1->click();
+ }
+ else if ( getConstructorId() == 2 ) {
+ myVector = aSelectedObject;
+ if ( myObjects.isEmpty() )
+ GroupPoints->PushButton1->click();
+ }