* fix RadiantSelectionSystem::getSelectionAABB() for PlaneSelectables

This commit is contained in:
Garux 2018-03-21 03:03:41 +03:00
parent 43202af380
commit 54a98ed5e8
2 changed files with 3 additions and 7 deletions

View File

@ -1771,8 +1771,7 @@ class LightInstance :
public SelectionTestable, public SelectionTestable,
public RendererLight, public RendererLight,
public PlaneSelectable, public PlaneSelectable,
public ComponentSelectionTestable, public ComponentSelectionTestable
public ComponentEditable
{ {
class TypeCasts class TypeCasts
{ {
@ -1787,7 +1786,6 @@ TypeCasts(){
InstanceStaticCast<LightInstance, Transformable>::install( m_casts ); InstanceStaticCast<LightInstance, Transformable>::install( m_casts );
InstanceStaticCast<LightInstance, PlaneSelectable>::install( m_casts ); InstanceStaticCast<LightInstance, PlaneSelectable>::install( m_casts );
InstanceStaticCast<LightInstance, ComponentSelectionTestable>::install( m_casts ); InstanceStaticCast<LightInstance, ComponentSelectionTestable>::install( m_casts );
InstanceStaticCast<LightInstance, ComponentEditable>::install( m_casts );
InstanceIdentityCast<LightInstance>::install( m_casts ); InstanceIdentityCast<LightInstance>::install( m_casts );
} }
InstanceTypeCastTable& get(){ InstanceTypeCastTable& get(){
@ -1878,10 +1876,6 @@ void setSelectedComponents( bool select, SelectionSystem::EComponentMode mode ){
void testSelectComponents( Selector& selector, SelectionTest& test, SelectionSystem::EComponentMode mode ){ void testSelectComponents( Selector& selector, SelectionTest& test, SelectionSystem::EComponentMode mode ){
} }
const AABB& getSelectedComponentsBounds() const {
return m_contained.aabb();
}
void selectedChangedComponent( const Selectable& selectable ){ void selectedChangedComponent( const Selectable& selectable ){
GlobalSelectionSystem().getObserver ( SelectionSystem::eComponent )( selectable ); GlobalSelectionSystem().getObserver ( SelectionSystem::eComponent )( selectable );
GlobalSelectionSystem().onComponentSelection( *this, selectable ); GlobalSelectionSystem().onComponentSelection( *this, selectable );

View File

@ -4899,6 +4899,8 @@ AABB RadiantSelectionSystem::getSelectionAABB() const {
if ( !nothingSelected() ) { if ( !nothingSelected() ) {
if ( Mode() == eComponent || g_bTmpComponentMode ) { if ( Mode() == eComponent || g_bTmpComponentMode ) {
Scene_BoundsSelectedComponent( GlobalSceneGraph(), bounds ); Scene_BoundsSelectedComponent( GlobalSceneGraph(), bounds );
if( !aabb_valid( bounds ) ) /* selecting PlaneSelectables sets g_bTmpComponentMode, but only brushes return correct componentEditable->getSelectedComponentsBounds() */
Scene_BoundsSelected( GlobalSceneGraph(), bounds );
} }
else else
{ {