VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
visutwin::canvas::Tags Class Reference

#include <core/tags.h>

Inheritance diagram for visutwin::canvas::Tags:
[legend]

Public Member Functions

template<typename... Args>
bool add (Args &&... args)
bool add (const char *tag)
bool add (const std::string &tag)
bool add (const std::vector< std::string > &tags)
bool add (std::initializer_list< std::string > tags)
void clear ()
bool empty () const
template<typename... Args>
bool has (Args &&... args) const
bool has (const char *tag) const
bool has (const std::string &tag) const
bool has (const std::vector< std::string > &tags) const
bool has (const std::vector< std::vector< std::string > > &query) const
bool has (std::initializer_list< std::string > tags) const
std::vector< std::string > list () const
template<typename... Args>
bool remove (Args &&... args)
bool remove (const char *tag)
bool remove (const std::string &tag)
bool remove (const std::vector< std::string > &tags)
bool remove (std::initializer_list< std::string > tags)
size_t size () const
 Tags (void *parent=nullptr)
Public Member Functions inherited from visutwin::canvas::EventHandler
template<typename... Args>
EventHandlerfire (const std::string &name, Args &&... args)
bool hasEvent (const std::string &name) const
void initEventHandler ()
template<typename Callback>
requires (!std::is_same_v<std::decay_t<Callback>, HandleEventCallback>)
EventHandleroff (const std::string &name, Callback &&callback, void *scope=nullptr)
EventHandleroff (const std::string &name="", const HandleEventCallback &callback=HandleEventCallback(), void *scope=nullptr)
EventHandleroffByHandle (EventHandle *handle)
template<typename Callback>
requires (!std::is_same_v<std::decay_t<Callback>, HandleEventCallback>)
EventHandleon (const std::string &name, Callback &&callback, void *scope=nullptr)
EventHandleon (const std::string &name, HandleEventCallback callback, void *scope=nullptr)
template<typename Callback>
requires (!std::is_same_v<std::decay_t<Callback>, HandleEventCallback>)
EventHandleonce (const std::string &name, Callback &&callback, void *scope=nullptr)
EventHandleonce (const std::string &name, HandleEventCallback callback, void *scope=nullptr)
virtual ~EventHandler ()=default

Static Public Attributes

static constexpr const char * EVENT_ADD = "add"
static constexpr const char * EVENT_CHANGE = "change"
static constexpr const char * EVENT_REMOVE = "remove"

Additional Inherited Members

Protected Member Functions inherited from visutwin::canvas::EventHandler
EventHandleaddCallback (const std::string &name, HandleEventCallback callback, void *scope=nullptr, bool once=false)

Detailed Description

Tags is a powerful tag management system for categorizing and filtering objects in VisuTwin applications. It provides an efficient way to attach string identifiers to objects and query them using logical operations.

Tags are automatically available on Assets and Entities (see Asset::tags and GraphNode::tags). You can search for specific assets via AssetRegistry::findByTag and specific entities via GraphNode::findByTag.

Definition at line 26 of file tags.h.

Constructor & Destructor Documentation

◆ Tags()

visutwin::canvas::Tags::Tags ( void * parent = nullptr)
inlineexplicit

Definition at line 33 of file tags.h.

Member Function Documentation

◆ add() [1/5]

template<typename... Args>
bool visutwin::canvas::Tags::add ( Args &&... args)
inline

Definition at line 41 of file tags.h.

References add().

◆ add() [2/5]

bool visutwin::canvas::Tags::add ( const char * tag)

Definition at line 129 of file tags.cpp.

References add().

◆ add() [3/5]

bool visutwin::canvas::Tags::add ( const std::string & tag)

Definition at line 81 of file tags.cpp.

References EVENT_ADD, EVENT_CHANGE, and visutwin::canvas::EventHandler::fire().

Referenced by add(), add(), and add().

◆ add() [4/5]

bool visutwin::canvas::Tags::add ( const std::vector< std::string > & tags)

Definition at line 99 of file tags.cpp.

References EVENT_ADD, EVENT_CHANGE, and visutwin::canvas::EventHandler::fire().

◆ add() [5/5]

bool visutwin::canvas::Tags::add ( std::initializer_list< std::string > tags)

Definition at line 124 of file tags.cpp.

References add().

◆ clear()

void visutwin::canvas::Tags::clear ( )

Definition at line 187 of file tags.cpp.

References EVENT_CHANGE, EVENT_REMOVE, and visutwin::canvas::EventHandler::fire().

◆ empty()

bool visutwin::canvas::Tags::empty ( ) const
inlinenodiscard

Definition at line 82 of file tags.h.

◆ has() [1/6]

template<typename... Args>
bool visutwin::canvas::Tags::has ( Args &&... args) const
inlinenodiscard

Definition at line 72 of file tags.h.

◆ has() [2/6]

bool visutwin::canvas::Tags::has ( const char * tag) const
nodiscard

Definition at line 218 of file tags.cpp.

References has().

◆ has() [3/6]

bool visutwin::canvas::Tags::has ( const std::string & tag) const
nodiscard

Definition at line 203 of file tags.cpp.

Referenced by has(), and has().

◆ has() [4/6]

bool visutwin::canvas::Tags::has ( const std::vector< std::string > & tags) const
nodiscard

Definition at line 208 of file tags.cpp.

◆ has() [5/6]

bool visutwin::canvas::Tags::has ( const std::vector< std::vector< std::string > > & query) const
nodiscard

Definition at line 223 of file tags.cpp.

◆ has() [6/6]

bool visutwin::canvas::Tags::has ( std::initializer_list< std::string > tags) const
nodiscard

Definition at line 213 of file tags.cpp.

References has().

◆ list()

std::vector< std::string > visutwin::canvas::Tags::list ( ) const
inlinenodiscard

Definition at line 80 of file tags.h.

◆ remove() [1/5]

template<typename... Args>
bool visutwin::canvas::Tags::remove ( Args &&... args)
inline

Definition at line 55 of file tags.h.

References remove().

◆ remove() [2/5]

bool visutwin::canvas::Tags::remove ( const char * tag)

Definition at line 182 of file tags.cpp.

References remove().

◆ remove() [3/5]

bool visutwin::canvas::Tags::remove ( const std::string & tag)

Definition at line 134 of file tags.cpp.

References EVENT_CHANGE, EVENT_REMOVE, and visutwin::canvas::EventHandler::fire().

Referenced by remove(), remove(), and remove().

◆ remove() [4/5]

bool visutwin::canvas::Tags::remove ( const std::vector< std::string > & tags)

Definition at line 152 of file tags.cpp.

References EVENT_CHANGE, EVENT_REMOVE, and visutwin::canvas::EventHandler::fire().

◆ remove() [5/5]

bool visutwin::canvas::Tags::remove ( std::initializer_list< std::string > tags)

Definition at line 177 of file tags.cpp.

References remove().

◆ size()

size_t visutwin::canvas::Tags::size ( ) const
inlinenodiscard

Definition at line 81 of file tags.h.

Member Data Documentation

◆ EVENT_ADD

const char* visutwin::canvas::Tags::EVENT_ADD = "add"
staticconstexpr

Definition at line 29 of file tags.h.

Referenced by add(), and add().

◆ EVENT_CHANGE

const char* visutwin::canvas::Tags::EVENT_CHANGE = "change"
staticconstexpr

Definition at line 31 of file tags.h.

Referenced by add(), add(), clear(), remove(), and remove().

◆ EVENT_REMOVE

const char* visutwin::canvas::Tags::EVENT_REMOVE = "remove"
staticconstexpr

Definition at line 30 of file tags.h.

Referenced by clear(), remove(), and remove().


The documentation for this class was generated from the following files: