+ case GEOM::FSM_MultiTransformed:
+ {
+ // Only for Multi-transformations
+ GEOM::GEOM_Object_var anArgOTrsf = aTrsfOp->TransformLikeOtherCopy(anArgO, theObject);
+ if (!CORBA::is_nil(anArgOTrsf)) {
+ CORBA::String_var anArgOTrsfEntry = anArgOTrsf->GetEntry();
+ Handle(GEOM_Object) anArgOTrsfImpl = _impl->GetObject(anArgOTrsf->GetStudyID(), anArgOTrsfEntry);
+ Handle(GEOM_Function) anArgOTrsfFun = anArgOTrsfImpl->GetLastFunction();
+ anArgOTrsfFun->SetDescription("");
+ aSubO = aShapesOp->GetInPlace(theObject, anArgOTrsf);
+ }
+ /*
+ Handle(GEOM_Function) anOFun = theObject->GetLastFunction();
+ if (!anOFun.IsNull()) {
+ CORBA::String_var entryArg = anArgO->GetEntry();
+ Handle(GEOM_Object) anArgOImpl = _impl->GetObject(anArgO->GetStudyID(), entryArg);
+ if (!anArgOImpl.IsNull()) {
+ TopoDS_Shape anArgOShape = anArgOImpl->GetValue();
+ TopoDS_Shape aMultiArgShape;
+ //GEOM::GEOM_Object_var anArgOMulti; // ???
+ switch (anOFun->GetType()) {
+ case TRANSLATE_1D:
+ {
+ GEOMImpl_ITranslate aTI (anOFun);
+ aMultiArgShape = GEOMImpl_ITransformOperations::TranslateShape1D(anArgOShape, &aTI);
+ //anArgOMulti = aTrsfOp->Translate1D(anArgO, , , );
+ }
+ break;
+ case TRANSLATE_2D:
+ {
+ GEOMImpl_ITranslate aTI (anOFun);
+ aMultiArgShape = GEOMImpl_ITransformOperations::TranslateShape2D(anArgOShape, &aTI);
+ }
+ break;
+ case ROTATE_1D:
+ {
+ GEOMImpl_IRotate aTI (anOFun);
+ //aMultiArgShape = GEOMImpl_ITransformOperations::TranslateShape2D(anArgOShape, &aTI);
+ }
+ break;
+ case ROTATE_2D:
+ {
+ GEOMImpl_IRotate aTI (anOFun);
+ //aMultiArgShape = GEOMImpl_ITransformOperations::TranslateShape2D(anArgOShape, &aTI);
+ }
+ break;
+ default:
+ {}
+ }
+ GEOM::GEOM_Object_var anArgOMulti = (aMultiArgShape); // TODO
+ Handle(GEOM_Function) anArgOMultiFun = anArgOMulti->GetLastFunction();
+ anArgOMultiFun->SetDescription("");
+ aSubO = aShapesOp->GetInPlace(theObject, anArgOMulti);
+ }
+ }
+ */
+ }
+ break;