GEOM::GEOM_FieldStep_var step;
SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
- if ( aList.Extent() > 0 && study ) {
+ if ( study )
for ( ; anIter.More(); anIter.Next() )
{
Handle(SALOME_InteractiveObject) anIObj = anIter.Value();
if ( !anIObj.IsNull() && anIObj->hasEntry() )
- if ( _PTR(SObject) obj = study->studyDS()->FindObjectID( anIObj->getEntry() ))
+ {
+ _PTR(SObject) obj = study->studyDS()->FindObjectID( anIObj->getEntry() );
+ if ( GeometryGUI::IsInGeomComponent( obj ))
{
- CORBA::Object_var corbaObj = GeometryGUI::ClientSObjectToObject( obj );
+ CORBA::Object_var corbaObj = GeometryGUI::ClientSObjectToObject( obj );
GEOM::GEOM_BaseObject_var bo = GEOM::GEOM_BaseObject::_narrow( corbaObj );
GEOM::GEOM_Field_var f;
GEOM::GEOM_FieldStep_var s;
field = f;
}
}
+ }
}
- }
-
if ( !field->_is_nil()) {
int stepID;
if ( !step->_is_nil() ) {
_PTR(Study) aStudy = appStudy->studyDS();
_PTR(SObject) aSObj (aStudy->FindObjectID(anEntry.toUtf8().constData()));
+ if ( ! GeometryGUI::IsInGeomComponent( aSObj )) continue;
GEOM::GEOM_Object_var aGeomObj =
GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(aSObj));
TopoDS_Shape aShape;
CORBA::String_var aMainEntry = myShape->GetStudyEntry();
_PTR(SObject) aSObj = aStudy->FindObjectID( aMainEntry.in() );
_PTR(ChildIterator) anIt = aStudy->NewChildIterator(aSObj);
- for (anIt->InitEx(true); anIt->More(); anIt->Next()) {
- GEOM::GEOM_Object_var aChild =
- GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(anIt->Value()));
- if (!CORBA::is_nil(aChild)) {
- int index = aLocOp->GetSubShapeIndex(myShape, aChild);
- if ( anIds.Contains( index )) {
- CORBA::String_var aChildEntry = aChild->GetStudyEntry();
- //childsMap.insert(index, aChildEntry.in());
+ if ( GeometryGUI::IsInGeomComponent( aSObj ))
+ for (anIt->InitEx(true); anIt->More(); anIt->Next()) {
+ GEOM::GEOM_Object_var aChild =
+ GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(anIt->Value()));
+ if (!CORBA::is_nil(aChild)) {
+ int index = aLocOp->GetSubShapeIndex(myShape, aChild);
+ if ( anIds.Contains( index )) {
+ CORBA::String_var aChildEntry = aChild->GetStudyEntry();
+ //childsMap.insert(index, aChildEntry.in());
Handle(SALOME_InteractiveObject) tmpIO =
new SALOME_InteractiveObject( aChildEntry.in(), "GEOM", "TEMP_IO");
aSelList.Append(tmpIO);
+ }
}
}
- }
}
AIS_ListIteratorOfListOfInteractive ite (List);
_PTR(Study) aStudy = appStudy->studyDS();
_PTR(SObject) aSObj (aStudy->FindObjectID(anEntry.toUtf8().constData()));
+ if ( ! GeometryGUI::IsInGeomComponent( aSObj )) continue;
GEOM::GEOM_Object_var aGeomObj =
GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(aSObj));
TopoDS_Shape aShape;
SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
if ( study ) {
_PTR(Study) studyDS = study->studyDS();
- _PTR(SObject) obj( studyDS->FindObjectID( IO->getEntry() ) );
- if ( obj ) {
- CORBA::Object_var corbaObj = GeometryGUI::ClientSObjectToObject( obj );
- if ( !CORBA::is_nil( corbaObj ) )
+ _PTR(SObject) obj = studyDS->FindObjectID( IO->getEntry() );
+ if ( GeometryGUI::IsInGeomComponent( obj )) {
+ CORBA::Object_var corbaObj = GeometryGUI::ClientSObjectToObject( obj );
object = GEOM::GEOM_Object::_narrow( corbaObj );
- }
+ }
}
}
return object._retn();
}
}
-
//=================================================================================
// function : CreateArrowForLinearEdge()
// purpose : Create a cone topology to be used to display an arrow in the middle
class GEOM_Displayer;
/*!
- * \brief A help class to process visualizatin of annotation presentations.
+ * \brief A help class to process visualization of annotation presentations.
* It contains a map of presentations shown in each viewer.
* and correct 2D position persistent properties of annotations of active viewer.
* When the viewer is closed, information about the viewer is removed from the manager
QString anEntry = entry( idx );
if ( study && !anEntry.isEmpty() ) {
_PTR(SObject) aSO( study->FindObjectID( anEntry.toStdString() ) );
- if ( aSO ) {
+ if ( GeometryGUI::IsInGeomComponent( aSO )) {
CORBA::Object_var varObj = GeometryGUI::ClientSObjectToObject( aSO );
myObjects[idx] = GEOM::GEOM_BaseObject::_narrow( varObj );
}
if ( getStudy() )
{
_PTR(SObject) SO ( getStudy()->studyDS()->FindObjectID( theIO->getEntry() ) );
- if ( SO )
+ if ( SO ) //GeometryGUI::IsInGeomComponent( SO ))
{
// get CORBA reference to data object
CORBA::Object_var object = GeometryGUI::ClientSObjectToObject(SO);
bool GEOM_Displayer::canBeDisplayed( const QString& entry, const QString& viewer_type ) const
{
_PTR(SObject) anObj = getStudy()->studyDS()->FindObjectID( (const char*)entry.toUtf8() );
+ //if ( ! GeometryGUI::IsInGeomComponent( anObj )) return false;
GEOM::GEOM_Object_var aGeomObj = GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(anObj)); // enable displaying of GEOM objects
GEOM::GEOM_FieldStep_var aFieldStepObj = GEOM::GEOM_FieldStep::_narrow(GeometryGUI::ClientSObjectToObject(anObj)); // enable displaying of GEOM field steps
GEOM::GEOM_Gen_var aCompObj = GEOM::GEOM_Gen::_narrow(GeometryGUI::ClientSObjectToObject(anObj)); // enable displaying of whole GEOM component
if ( !entry.isEmpty() ) {
// get CORBA reference to geom object
_PTR(SObject) SO( getStudy()->studyDS()->FindObjectID( entry.toStdString() ) );
- if ( SO ) {
+ if ( SO ) { //GeometryGUI::IsInGeomComponent( SO )) {
CORBA::Object_var object = GeometryGUI::ClientSObjectToObject( SO );
if ( !CORBA::is_nil( object ) ) {
GEOM::GEOM_Object_var geomObject = GEOM::GEOM_Object::_narrow( object );
}
return anObj._retn();
}
+//=================================================================================
+// function : IsInGeomComponent
+// purpose : Check if an SObject is under GEOM component
+//=================================================================================
+bool GeometryGUI::IsInGeomComponent( _PTR(SObject) sobject )
+{
+ if ( sobject )
+ if ( _PTR(SComponent) aComp = sobject->GetFatherComponent() )
+ return aComp->ComponentDataType() == "GEOM";
+ return false;
+}
//=======================================================================
// function : GetStudy
Handle(SALOME_InteractiveObject) io = selIt.Value();
if ( !io->hasEntry() ) continue;
_PTR(SObject) sobj = study->FindObjectID( io->getEntry() );
- if ( !sobj ) continue;
+ if ( !GeometryGUI::IsInGeomComponent( sobj )) continue;
CORBA::Object_var obj = GeometryGUI::ClientSObjectToObject( sobj );
GEOM::GEOM_BaseObject_var gobj = GEOM::GEOM_BaseObject::_narrow( obj );
if ( !gobj->_is_nil() )
static bool InitGeomGen();
- static GEOM::GEOM_Gen_var GetGeomGen();
+ static GEOM::GEOM_Gen_var GetGeomGen();
static CORBA::Object_var ClientSObjectToObject (_PTR(SObject) theSObject);
+ static bool IsInGeomComponent( _PTR(SObject) theSObject );
static SALOMEDS::Study_var getStudyServant();
static void Modified( bool = true );
for ( oit = objects.begin(); oit != objects.end(); ++oit )
{
_PTR(SObject) so = study->FindObjectID( oit.key().toUtf8().data() );
- if ( !so )
+ if ( !GeometryGUI::IsInGeomComponent( so ))
continue;
aSelectedSO.push_back(so);
CORBA::Object_var corbaObj_rem = GeometryGUI::ClientSObjectToObject( so );
_PTR(Study) aStudy = appStudy->studyDS();
_PTR(SObject) aMainSObject(aStudy->FindObjectID(anIObject->getEntry()));
GEOM::GEOM_Object_var aMainObject = GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(aMainSObject));
- if (CORBA::is_nil(aMainObject)) return;
+ if (CORBA::is_nil(aMainObject) || !GeometryGUI::IsInGeomComponent( aMainSObject )) return;
aMainObject->SetAutoColor( true );
_PTR(Study) aStudy = appStudy->studyDS();
_PTR(SObject) aMainSObject( aStudy->FindObjectID( anIObject->getEntry() ) );
GEOM::GEOM_Object_var aMainObject = GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(aMainSObject));
- if( CORBA::is_nil( aMainObject ) )
+ if( CORBA::is_nil( aMainObject ) || !GeometryGUI::IsInGeomComponent( aMainSObject ))
return;
aMainObject->SetAutoColor( false );
_PTR(SObject) aSObject( study->FindObjectID( it.Value()->getEntry() ) );
GEOM::GEOM_Object_var anObject =
GEOM::GEOM_Object::_narrow( GeometryGUI::ClientSObjectToObject( aSObject ) );
- if ( !anObject->_is_nil() ) {
+ if ( !anObject->_is_nil() && GeometryGUI::IsInGeomComponent( aSObject )) {
if ( myWGStack->currentIndex() == 0 ) {
anObject->SetMarkerStd( getMarkerType(), getStandardMarkerScale() );
QString aMarker = "%1%2%3";
_PTR(SObject) aSObject( study->FindObjectID( it.Value()->getEntry() ) );
GEOM::GEOM_Object_var anObject =
GEOM::GEOM_Object::_narrow( GeometryGUI::ClientSObjectToObject( aSObject ) );
- if ( !anObject->_is_nil() ) {
+ if ( !anObject->_is_nil() && GeometryGUI::IsInGeomComponent( aSObject )) {
GEOM::marker_type mtype = anObject->GetMarkerType();
if ( aType == -1 )
aType = mtype;
SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>(SUIT_Session::session()->activeApplication()->activeStudy());
if (study)
+ {
+ _PTR(Study) studyDS = study->studyDS();
+ _PTR(SObject) obj( studyDS->FindObjectID( shapeEntry ) );
+ if ( GeometryGUI::IsInGeomComponent( obj ))
{
- _PTR(Study) studyDS = study->studyDS();
- _PTR(SObject) obj( studyDS->FindObjectID( shapeEntry ) );
- if (obj)
- {
- CORBA::Object_var corbaObj = GeometryGUI::ClientSObjectToObject(obj);
- if (!CORBA::is_nil(corbaObj))
- {
- myObject = GEOM::GEOM_Object::_narrow(corbaObj);
- shapeName = myObject->GetName();
- MESSAGE("shapeName: " << shapeName);
- }
- }
+ CORBA::Object_var corbaObj = GeometryGUI::ClientSObjectToObject(obj);
+ if (!CORBA::is_nil(corbaObj))
+ {
+ myObject = GEOM::GEOM_Object::_narrow(corbaObj);
+ shapeName = myObject->GetName();
+ MESSAGE("shapeName: " << shapeName);
+ }
}
+ }
std::list<int> modes;
modes.push_back(mode);
_PTR(Study) aStudy = appStudy->studyDS();
_PTR(SObject) aSObj (aStudy->FindObjectID(anEntry.toUtf8().constData()));
+ if ( ! GeometryGUI::IsInGeomComponent( aSObj )) continue;
GEOM::GEOM_Object_var aGeomObj =
GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(aSObj));
TopoDS_Shape aShape;
QString anEntry = anIO->getEntry();
_PTR(SObject) aSObj (aStudy->FindObjectID(anEntry.toUtf8().constData()));
+ if ( ! GeometryGUI::IsInGeomComponent( aSObj )) continue;
GEOM::GEOM_Object_var aGeomObj =
GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(aSObj));
TopoDS_Shape aShape;