-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
myTypeGroup->button( 0 )->setChecked( true );
myWGStack->setCurrentIndex( 0 );
myStdTypeCombo->setCurrentId( (int)type );
-#ifdef WIN32
- int asize = max( (int)GEOM::MS_10, min( (int)GEOM::MS_70, (int)size ) );
-#else
int asize = std::max( (int)GEOM::MS_10, std::min( (int)GEOM::MS_70, (int)size ) );
-#endif
myStdScaleCombo->setCurrentId( asize );
}
}
_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 ( myWGStack->currentIndex() == 0 ) {
+ if ( myWGStack->currentIndex() == 0 ) {
+ if ( !anObject->_is_nil() && GeometryGUI::IsInGeomComponent( aSObject )) {
anObject->SetMarkerStd( getMarkerType(), getStandardMarkerScale() );
- QString aMarker = "%1%2%3";
- aMarker = aMarker.arg(getMarkerType());
- aMarker = aMarker.arg(GEOM::subSectionSeparator());
- aMarker = aMarker.arg(getStandardMarkerScale());
- getStudy()->setObjectProperty(mgrId ,it.Value()->getEntry(),GEOM::propertyName( GEOM::PointMarker ), aMarker);
}
- else if ( getCustomMarkerID() > 0 ) {
+ QString aMarker = "%1%2%3";
+ aMarker = aMarker.arg(getMarkerType());
+ aMarker = aMarker.arg(GEOM::subSectionSeparator());
+ aMarker = aMarker.arg(getStandardMarkerScale());
+ getStudy()->setObjectProperty(mgrId ,it.Value()->getEntry(),GEOM::propertyName( GEOM::PointMarker ), aMarker);
+ }
+ else if ( getCustomMarkerID() > 0 ) {
+ if ( !anObject->_is_nil() && GeometryGUI::IsInGeomComponent( aSObject )) {
anObject->SetMarkerTexture( getCustomMarkerID() );
- getStudy()->setObjectProperty(mgrId ,it.Value()->getEntry(),GEOM::propertyName( GEOM::PointMarker ), QString::number(getCustomMarkerID()));
}
+ getStudy()->setObjectProperty(mgrId ,it.Value()->getEntry(),GEOM::propertyName( GEOM::PointMarker ), QString::number(getCustomMarkerID()));
}
}
GEOM_Displayer displayer;
GEOM::GEOM_Gen_var engine = GeometryGUI::GetGeomGen();
myOperation = engine->GetIInsertOperations();
GEOM::ListOfLong_var ids = myOperation->GetAllTextures();
- for ( int i = 0; i < ids->length(); i++ )
+ for ( int i = 0; i < (int)ids->length(); i++ )
addTexture( ids[i] );
// ---
_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;
else if ( aType != mtype ) {
break;
}
}
+ else {
+ // try study object properties
+ QStringList aMarkerProp;
+ SUIT_ViewWindow* window = getStudy()->application()->desktop()->activeWindow();
+ if (window && window->getViewManager()) {
+ int mgrId = window->getViewManager()->getGlobalId();
+ PropMap aPropMap = getStudy()->getObjectProperties(mgrId, it.Value()->getEntry());
+ aMarkerProp = aPropMap.value(GEOM::propertyName(GEOM::PointMarker)).toString().split( GEOM::subSectionSeparator());
+ }
+ if ( aMarkerProp.size() == 2 ) {
+ // standard marker string contains "TypeOfMarker:ScaleOfMarker"
+ GEOM::marker_type mtype = (GEOM::marker_type)aMarkerProp[0].toInt();
+ GEOM::marker_size msize = (GEOM::marker_size)aMarkerProp[1].toInt();
+
+ if ( aType == -1 )
+ aType = mtype;
+ else if ( aType != mtype ) {
+ aType = (GEOM::marker_type)-1;
+ break;
+ }
+ if ( aSize == -1 )
+ aSize = msize;
+ else if ( aSize != msize )
+ break;
+ }
+ else if ( aMarkerProp.size() == 1 ) {
+ // custom marker string contains "IdOfTexture"
+ int mtexture = aMarkerProp[0].toInt();
+
+ if ( aType == -1 )
+ aType = GEOM::MT_USER;
+ else if ( aType != GEOM::MT_USER) {
+ aType = (GEOM::marker_type)-1;
+ break;
+ }
+ if ( aTexture == 0 )
+ aTexture = mtexture;
+ else if ( aTexture != mtexture )
+ break;
+ }
+ }
}
}
}
filters << tr( "Texture files (*.dat)" ) << tr( "All files (*)" );
QString aFileName = SUIT_Session::session()->activeApplication()->getFileName( true, QString(), filters.join( ";;" ), tr( "LOAD_TEXTURE_TLT" ), this );
if ( !aFileName.isEmpty() ) {
- addTexture( myOperation->LoadTexture( aFileName.toLatin1().constData() ), true );
+ addTexture( myOperation->LoadTexture( aFileName.toUtf8().constData() ), true );
}
}