X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fnetradiant.git;a=blobdiff_plain;f=plugins%2Fentity%2Ffilters.h;h=e77f3298853043d08c8d19c89b61ad053f891980;hp=d903e28c0d1ce32e026b5b15c2c852de654cd34d;hb=9dfae1c9b270ee369c6362903a9205b30751b95f;hpb=b7e36c120eb1546a6c6f97f30e42ab7f9a559c61 diff --git a/plugins/entity/filters.h b/plugins/entity/filters.h index d903e28c..e77f3298 100644 --- a/plugins/entity/filters.h +++ b/plugins/entity/filters.h @@ -29,47 +29,54 @@ class Entity; -class EntityFilter -{ +class EntityFilter { public: -virtual bool filter( const Entity& entity ) const = 0; + virtual bool filter(const Entity &entity) const = 0; }; -bool entity_filtered( Entity& entity ); -void add_entity_filter( EntityFilter& filter, int mask, bool invert = false ); +bool entity_filtered(Entity &entity); -class ClassnameFilter : public Filterable -{ -scene::Node& m_node; +void add_entity_filter(EntityFilter &filter, int mask, bool invert = false); + +class ClassnameFilter : public Filterable { + scene::Node &m_node; public: -Entity& m_entity; - -ClassnameFilter( Entity& entity, scene::Node& node ) : m_node( node ), m_entity( entity ){ -} -~ClassnameFilter(){ -} - -void instanceAttach(){ - GlobalFilterSystem().registerFilterable( *this ); -} -void instanceDetach(){ - GlobalFilterSystem().unregisterFilterable( *this ); -} - -void updateFiltered(){ - if ( entity_filtered( m_entity ) ) { - m_node.enable( scene::Node::eFiltered ); - } - else - { - m_node.disable( scene::Node::eFiltered ); - } -} - -void classnameChanged( const char* value ){ - updateFiltered(); -} -typedef MemberCaller1 ClassnameChangedCaller; + Entity &m_entity; + + ClassnameFilter(Entity &entity, scene::Node &node) : m_node(node), m_entity(entity) + { + } + + ~ClassnameFilter() + { + } + + void instanceAttach() + { + GlobalFilterSystem().registerFilterable(*this); + } + + void instanceDetach() + { + GlobalFilterSystem().unregisterFilterable(*this); + } + + void updateFiltered() + { + if (entity_filtered(m_entity)) { + m_node.enable(scene::Node::eFiltered); + } else { + m_node.disable(scene::Node::eFiltered); + } + } + + void classnameChanged(const char *value) + { + updateFiltered(); + } + + typedef MemberCaller ClassnameChangedCaller; }; #endif