mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-01-13 10:10:34 +05:00
Merge from BR_Dev_For_6_3_1 03/06/2011
This commit is contained in:
parent
f0a071156a
commit
16ff25c14d
@ -450,6 +450,7 @@ TopoDS_Shape GEOMImpl_GlueDriver::GlueWithWarnings (const TopoDS_Shape& theShape
|
||||
return aRes;
|
||||
}
|
||||
|
||||
if (theShapeType != TopAbs_FACE) {
|
||||
// 3. Fill shapes to glue aMSG
|
||||
TopTools_DataMapOfShapeListOfShape aMSG;
|
||||
const TopTools_DataMapOfShapeListOfShape& aMSD = aGA.ShapesDetected();
|
||||
@ -465,6 +466,7 @@ TopoDS_Shape GEOMImpl_GlueDriver::GlueWithWarnings (const TopoDS_Shape& theShape
|
||||
|
||||
// 4. Set shapes to glue. If the operator is absent, the whole gluing will be done
|
||||
aGA.SetShapesToGlue(aMSG);
|
||||
}
|
||||
|
||||
// 5. Gluing
|
||||
aGA.Perform();
|
||||
|
@ -235,9 +235,13 @@ void GEOM_Superv_i::getBasicOp()
|
||||
if (CORBA::is_nil(myGeomEngine))
|
||||
setGeomEngine();
|
||||
// get GEOM_IBasicOperations interface
|
||||
if (CORBA::is_nil(myBasicOp) || isNewStudy(myLastStudyID,myStudyID))
|
||||
if (CORBA::is_nil(myBasicOp) || isNewStudy(myLastStudyID,myStudyID)) {
|
||||
//rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
|
||||
// Try to get id of the study from the SALOME Session
|
||||
if(myStudyID < 0 ) SetStudyID(-1);
|
||||
myBasicOp = myGeomEngine->GetIBasicOperations(myStudyID);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// get3DPrimOp:
|
||||
@ -247,9 +251,13 @@ void GEOM_Superv_i::get3DPrimOp()
|
||||
if (CORBA::is_nil(myGeomEngine))
|
||||
setGeomEngine();
|
||||
// get GEOM_I3DPrimOperations interface
|
||||
if (CORBA::is_nil(my3DPrimOp) || isNewStudy(myLastStudyID,myStudyID))
|
||||
if (CORBA::is_nil(my3DPrimOp) || isNewStudy(myLastStudyID,myStudyID)) {
|
||||
//rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
|
||||
// Try to get id of the study from the SALOME Session
|
||||
if(myStudyID < 0 ) SetStudyID(-1);
|
||||
my3DPrimOp = myGeomEngine->GetI3DPrimOperations(myStudyID);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// getBoolOp:
|
||||
@ -259,9 +267,13 @@ void GEOM_Superv_i::getBoolOp()
|
||||
if (CORBA::is_nil(myGeomEngine))
|
||||
setGeomEngine();
|
||||
// get GEOM_IBooleanOperations interface
|
||||
if (CORBA::is_nil(myBoolOp) || isNewStudy(myLastStudyID,myStudyID))
|
||||
if (CORBA::is_nil(myBoolOp) || isNewStudy(myLastStudyID,myStudyID)) {
|
||||
//rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
|
||||
// Try to get id of the study from the SALOME Session
|
||||
if(myStudyID < 0 ) SetStudyID(-1);
|
||||
myBoolOp = myGeomEngine->GetIBooleanOperations(myStudyID);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// getInsOp:
|
||||
@ -271,9 +283,13 @@ void GEOM_Superv_i::getInsOp()
|
||||
if (CORBA::is_nil(myGeomEngine))
|
||||
setGeomEngine();
|
||||
// get GEOM_IInsertOperations interface
|
||||
if (CORBA::is_nil(myInsOp) || isNewStudy(myLastStudyID,myStudyID))
|
||||
if (CORBA::is_nil(myInsOp) || isNewStudy(myLastStudyID,myStudyID)) {
|
||||
//rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
|
||||
// Try to get id of the study from the SALOME Session
|
||||
if(myStudyID < 0 ) SetStudyID(-1);
|
||||
myInsOp = myGeomEngine->GetIInsertOperations(myStudyID);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// getTransfOp:
|
||||
@ -283,9 +299,13 @@ void GEOM_Superv_i::getTransfOp()
|
||||
if (CORBA::is_nil(myGeomEngine))
|
||||
setGeomEngine();
|
||||
// get GEOM_ITransformOperations interface
|
||||
if (CORBA::is_nil(myTransfOp) || isNewStudy(myLastStudyID,myStudyID))
|
||||
if (CORBA::is_nil(myTransfOp) || isNewStudy(myLastStudyID,myStudyID)) {
|
||||
//rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
|
||||
// Try to get id of the study from the SALOME Session
|
||||
if(myStudyID < 0 ) SetStudyID(-1);
|
||||
myTransfOp = myGeomEngine->GetITransformOperations(myStudyID);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// getShapesOp:
|
||||
@ -295,9 +315,13 @@ void GEOM_Superv_i::getShapesOp()
|
||||
if (CORBA::is_nil(myGeomEngine))
|
||||
setGeomEngine();
|
||||
// get GEOM_IShapesOperations interface
|
||||
if (CORBA::is_nil(myShapesOp) || isNewStudy(myLastStudyID,myStudyID))
|
||||
if (CORBA::is_nil(myShapesOp) || isNewStudy(myLastStudyID,myStudyID)) {
|
||||
//rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
|
||||
// Try to get id of the study from the SALOME Session
|
||||
if(myStudyID < 0 ) SetStudyID(-1);
|
||||
myShapesOp = myGeomEngine->GetIShapesOperations(myStudyID);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// getBlocksOp:
|
||||
@ -307,9 +331,13 @@ void GEOM_Superv_i::getBlocksOp()
|
||||
if (CORBA::is_nil(myGeomEngine))
|
||||
setGeomEngine();
|
||||
// get GEOM_IBlocksOperations interface
|
||||
if (CORBA::is_nil(myBlocksOp) || isNewStudy(myLastStudyID,myStudyID))
|
||||
if (CORBA::is_nil(myBlocksOp) || isNewStudy(myLastStudyID,myStudyID)) {
|
||||
//rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
|
||||
// Try to get id of the study from the SALOME Session
|
||||
if(myStudyID < 0 ) SetStudyID(-1);
|
||||
myBlocksOp = myGeomEngine->GetIBlocksOperations(myStudyID);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// getCurvesOp:
|
||||
@ -319,9 +347,13 @@ void GEOM_Superv_i::getCurvesOp()
|
||||
if (CORBA::is_nil(myGeomEngine))
|
||||
setGeomEngine();
|
||||
// get GEOM_ICurvesOperations interface
|
||||
if (CORBA::is_nil(myCurvesOp) || isNewStudy(myLastStudyID,myStudyID))
|
||||
if (CORBA::is_nil(myCurvesOp) || isNewStudy(myLastStudyID,myStudyID)) {
|
||||
//rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
|
||||
// Try to get id of the study from the SALOME Session
|
||||
if(myStudyID < 0 ) SetStudyID(-1);
|
||||
myCurvesOp = myGeomEngine->GetICurvesOperations(myStudyID);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// getLocalOp:
|
||||
@ -331,9 +363,13 @@ void GEOM_Superv_i::getLocalOp()
|
||||
if (CORBA::is_nil(myGeomEngine))
|
||||
setGeomEngine();
|
||||
// get GEOM_ILocalOperations interface
|
||||
if (CORBA::is_nil(myLocalOp) || isNewStudy(myLastStudyID,myStudyID))
|
||||
if (CORBA::is_nil(myLocalOp) || isNewStudy(myLastStudyID,myStudyID)) {
|
||||
//rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
|
||||
// Try to get id of the study from the SALOME Session
|
||||
if(myStudyID < 0 ) SetStudyID(-1);
|
||||
myLocalOp = myGeomEngine->GetILocalOperations(myStudyID);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// getGroupOp:
|
||||
@ -343,9 +379,13 @@ void GEOM_Superv_i::getGroupOp()
|
||||
if (CORBA::is_nil(myGeomEngine))
|
||||
setGeomEngine();
|
||||
// get GEOM_IGroupOperations interface
|
||||
if (CORBA::is_nil(myGroupOp) || isNewStudy(myLastStudyID,myStudyID))
|
||||
if (CORBA::is_nil(myGroupOp) || isNewStudy(myLastStudyID,myStudyID)) {
|
||||
//rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
|
||||
// Try to get id of the study from the SALOME Session
|
||||
if(myStudyID < 0 ) SetStudyID(-1);
|
||||
myGroupOp = myGeomEngine->GetIGroupOperations(myStudyID);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// getAdvancedOp:
|
||||
@ -355,9 +395,13 @@ void GEOM_Superv_i::getAdvancedOp()
|
||||
if (CORBA::is_nil(myGeomEngine))
|
||||
setGeomEngine();
|
||||
// get GEOM_IAdvancedOperations interface
|
||||
if (CORBA::is_nil(myAdvancedOp) || isNewStudy(myLastStudyID,myStudyID))
|
||||
if (CORBA::is_nil(myAdvancedOp) || isNewStudy(myLastStudyID,myStudyID)) {
|
||||
//rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
|
||||
// Try to get id of the study from the SALOME Session
|
||||
if(myStudyID < 0 ) SetStudyID(-1);
|
||||
myAdvancedOp = myGeomEngine->GetIAdvancedOperations(myStudyID);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// GetServant:
|
||||
|
@ -422,12 +422,15 @@ void GroupGUI_GroupDlg::setInPlaceObj(GEOM::GEOM_Object_var theObj, const bool i
|
||||
GEOM::ListOfGO_var aSubObjects = aShapesOp->MakeExplode(myInPlaceObj, getShapeType(), false);
|
||||
for (int i = 0; i < aSubObjects->length(); i++)
|
||||
{
|
||||
CORBA::Long aMainIndex = aLocOp->GetSubShapeIndex(myMainObj, aSubObjects[i]);
|
||||
GEOM::GEOM_Object_var aSS = aShapesOp->GetSame(myMainObj, aSubObjects[i]);
|
||||
if (!CORBA::is_nil(aSS)) {
|
||||
CORBA::Long aMainIndex = aLocOp->GetSubShapeIndex(myMainObj, aSS);
|
||||
CORBA::Long aPlaceIndex = aLocOp->GetSubShapeIndex(myInPlaceObj, aSubObjects[i]);
|
||||
if (aMainIndex >= 0 && aPlaceIndex > 0)
|
||||
myMain2InPlaceIndices.Bind(aMainIndex, aPlaceIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
myInPlaceObjSelectState = subSelectionWay();
|
||||
if (myInPlaceObjSelectState == SUBSHAPES_OF_SHAPE2 && !isVisible)
|
||||
myInPlaceObjSelectState = SUBSHAPES_OF_INVISIBLE_SHAPE2;
|
||||
@ -806,11 +809,9 @@ void GroupGUI_GroupDlg::activateSelection()
|
||||
|
||||
TopoDS_Shape aMainShape = GEOM_Client::get_client().GetShape(GeometryGUI::GetGeomGen(), myMainObj);
|
||||
TopoDS_Shape aRestrictionShape;
|
||||
if (subSelectionWay() == ALL_SUBSHAPES)
|
||||
|
||||
if (subSelectionWay() == ALL_SUBSHAPES) {
|
||||
aRestrictionShape = aMainShape;
|
||||
else if (!myInPlaceObj->_is_nil())
|
||||
aRestrictionShape = GEOM_Client::get_client().GetShape(GeometryGUI::GetGeomGen(), myInPlaceObj);
|
||||
else ;
|
||||
|
||||
TopTools_IndexedMapOfShape aSubShapesMap;
|
||||
TopExp::MapShapes(aMainShape, aSubShapesMap);
|
||||
@ -818,8 +819,7 @@ void GroupGUI_GroupDlg::activateSelection()
|
||||
QString anEntryBase = aMainEntry.in();
|
||||
|
||||
TopExp_Explorer anExp (aRestrictionShape, getShapeType());
|
||||
for (; anExp.More(); anExp.Next())
|
||||
{
|
||||
for (; anExp.More(); anExp.Next()) {
|
||||
TopoDS_Shape aSubShape = anExp.Current();
|
||||
int index = aSubShapesMap.FindIndex(aSubShape);
|
||||
QString anEntry = anEntryBase + QString("_%1").arg(index);
|
||||
@ -829,6 +829,27 @@ void GroupGUI_GroupDlg::activateSelection()
|
||||
displayPreview(aPrs, true, false); // append, do not update
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!myInPlaceObj->_is_nil()) {
|
||||
TopTools_IndexedMapOfShape aSubShapesMap;
|
||||
TopExp::MapShapes(aMainShape, aSubShapesMap);
|
||||
CORBA::String_var aMainEntry = myMainObj->GetStudyEntry();
|
||||
QString anEntryBase = aMainEntry.in();
|
||||
|
||||
TColStd_DataMapIteratorOfDataMapOfIntegerInteger aM2IPit (myMain2InPlaceIndices);
|
||||
for (; aM2IPit.More(); aM2IPit.Next()) {
|
||||
int index = aM2IPit.Key();
|
||||
TopoDS_Shape aSubShape = aSubShapesMap.FindKey(index);
|
||||
QString anEntry = anEntryBase + QString("_%1").arg(index);
|
||||
|
||||
SALOME_Prs* aPrs = aDisplayer->buildSubshapePresentation(aSubShape, anEntry, aView);
|
||||
if (aPrs) {
|
||||
displayPreview(aPrs, true, false); // append, do not update
|
||||
}
|
||||
}
|
||||
}
|
||||
else ;
|
||||
|
||||
aDisplayer->UpdateViewer();
|
||||
aDisplayer->SetDisplayMode(prevDisplayMode);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user