misc...
	* fix: deselecting particular primitives, invert selection work for expanded group entity selection (these are deselecting parent node)
	* do not render entities selection in components mode; fixes 'invisible components for expanded group entity selection'
This commit is contained in:
Garux 2017-08-02 08:43:59 +03:00
parent a62c7302d3
commit 3ec33465b1
4 changed files with 18 additions and 1 deletions

View File

@ -739,6 +739,10 @@ bool parentSelected() const {
} }
return m_parentSelected; return m_parentSelected;
} }
Instance* parent() const
{
return m_parent;
}
}; };
} }

View File

@ -3197,6 +3197,11 @@ bool isSelected() const {
} }
void setSelected( bool select ){ void setSelected( bool select ){
m_selectable.setSelected( select ); m_selectable.setSelected( select );
if ( !select && parent() ){
Selectable* sel_parent = Instance_getSelectable( *parent() );
if ( sel_parent && sel_parent->isSelected() )
sel_parent->setSelected( false );
}
} }
void update_selected() const { void update_selected() const {

View File

@ -1422,6 +1422,11 @@ void allocate( std::size_t size ){
void setSelected( bool select ){ void setSelected( bool select ){
m_selectable.setSelected( select ); m_selectable.setSelected( select );
if ( !select && parent() ){
Selectable* sel_parent = Instance_getSelectable( *parent() );
if ( sel_parent && sel_parent->isSelected() )
sel_parent->setSelected( false );
}
} }
bool isSelected() const { bool isSelected() const {
return m_selectable.isSelected(); return m_selectable.isSelected();

View File

@ -149,7 +149,10 @@ bool pre( const scene::Path& path, scene::Instance& instance, VolumeIntersection
else if ( renderable ) { else if ( renderable ) {
renderable->renderComponents( m_renderer, m_volume ); renderable->renderComponents( m_renderer, m_volume );
} }
m_renderer.Highlight( Renderer::ePrimitive ); //if( !(GlobalSelectionSystem().Mode() == SelectionSystem::eComponent && path.size() == 2) )
//if( !( GlobalSelectionSystem().Mode() == SelectionSystem::eComponent && node_is_group( path.top() ) ) )
if( !( GlobalSelectionSystem().Mode() == SelectionSystem::eComponent && Node_isEntity( path.top() ) ) )
m_renderer.Highlight( Renderer::ePrimitive );
} }
if ( renderable ) { if ( renderable ) {