+/*!
+ To get flag of displaying of name actor
+ \return flag to display or not to display name actor
+*/
+bool
+SALOME_Actor
+::IsDisplayNameActor() const
+{
+ return myIsDisplayNameActor;
+}
+
+/*!
+ To set flag of displaying of name actor
+ \param theIsDisplayNameActor flag to display or not to display name actor
+*/
+void
+SALOME_Actor
+::SetIsDisplayNameActor(bool theIsDisplayNameActor)
+{
+ SUIT_ResourceMgr* aResourceMgr = SUIT_Session::session()->resourceMgr();
+ bool isShowGroupNames = aResourceMgr->booleanValue("VTKViewer", "show_group_names", false);
+ myIsDisplayNameActor = theIsDisplayNameActor && isShowGroupNames;
+ UpdateNameActors();
+}
+
+/*!
+ To set text of name actor
+ \param theText - text of name actor
+*/
+void
+SALOME_Actor
+::SetNameActorText(const char* theText)
+{
+ myNameActor->SetText(theText);
+}
+
+/*!
+ To set offset of name actor
+ \param theOffset - offset of name actor
+*/
+void
+SALOME_Actor
+::SetNameActorOffset(int theOffset[2])
+{
+ myNameActor->SetOffset(theOffset);
+}
+
+/*!
+ To get size of name actor
+ \param theRenderer - renderer
+ \param theSize - size of name actor
+*/
+void
+SALOME_Actor
+::GetNameActorSize(vtkRenderer* theRenderer, int theSize[2]) const
+{
+ myNameActor->GetSize(theRenderer, theSize);
+}
+
+/*!
+ Update visibility of name actors
+*/
+void
+SALOME_Actor
+::UpdateNameActors()
+{
+ if( vtkRenderer* aRenderer = GetRenderer() )
+ {
+ int anOffset[2] = { 0, 0 };
+ VTK::ActorCollectionCopy aCopy(aRenderer->GetActors());
+ vtkActorCollection* aCollection = aCopy.GetActors();
+ for( int anIndex = 0, aNbItems = aCollection->GetNumberOfItems(); anIndex < aNbItems; anIndex++ )
+ {
+ if( SALOME_Actor* anActor = dynamic_cast<SALOME_Actor*>( aCollection->GetItemAsObject( anIndex ) ) )
+ {
+ if( anActor->IsDisplayNameActor() )
+ {
+ anActor->SetNameActorOffset( anOffset );
+ if( anActor->GetVisibility() )
+ {
+ int aSize[2];
+ anActor->GetNameActorSize( aRenderer, aSize );
+ anOffset[0] = anOffset[0] + aSize[0];
+ anOffset[1] = anOffset[1] + aSize[1];
+ }
+ }
+ }
+ }
+ }
+ myNameActor->SetVisibility( GetVisibility() && IsDisplayNameActor() );
+}
+