#include <activeobjectmgr.h>
Public Member Functions | |
| ~ActiveObjectMgr () override | |
| void | clearIf (const std::function< bool(ServerActiveObject *, u16)> &cb) |
| void | step (float dtime, const std::function< void(ServerActiveObject *)> &f) override |
| bool | registerObject (std::unique_ptr< ServerActiveObject > obj) override |
| void | removeObject (u16 id) override |
| void | invalidateActiveObjectObserverCaches () |
| void | updateObjectPos (u16 id, v3f pos) |
| void | getObjectsInsideRadius (v3f pos, float radius, std::vector< ServerActiveObject * > &result, std::function< bool(ServerActiveObject *obj)> include_obj_cb) |
| void | getObjectsInArea (const aabb3f &box, std::vector< ServerActiveObject * > &result, std::function< bool(ServerActiveObject *obj)> include_obj_cb) |
| void | getAddedActiveObjectsAroundPos (v3f player_pos, const std::string &player_name, f32 radius, f32 player_radius, const std::set< u16 > ¤t_objects, std::vector< u16 > &added_objects) |
| Public Member Functions inherited from ActiveObjectMgr< ServerActiveObject > | |
| ActiveObjectMgr ()=default | |
| DISABLE_CLASS_COPY (ActiveObjectMgr) | |
| void | clear () |
| ServerActiveObject * | getActiveObject (u16 id) |
Private Attributes | |
| k_d_tree::DynamicKdTrees< 3, f32, u16 > | m_spatial_index |
Additional Inherited Members | |
| Protected Member Functions inherited from ActiveObjectMgr< ServerActiveObject > | |
| u16 | getFreeId () const |
| bool | isFreeId (u16 id) const |
| Protected Attributes inherited from ActiveObjectMgr< ServerActiveObject > | |
| ModifySafeMap< u16, std::unique_ptr< ServerActiveObject > > | m_active_objects |
|
overridevirtual |
Reimplemented from ActiveObjectMgr< ServerActiveObject >.
References ActiveObjectMgr< ServerActiveObject >::clear(), ActiveObjectMgr< ServerActiveObject >::m_active_objects, and warningstream.
| void ActiveObjectMgr< T >::clearIf | ( | const std::function< bool(ServerActiveObject *, u16)> & | cb | ) |
References ActiveObjectMgr< ServerActiveObject >::m_active_objects, and removeObject().
| void ActiveObjectMgr< T >::getAddedActiveObjectsAroundPos | ( | v3f | player_pos, |
| const std::string & | player_name, | ||
| f32 | radius, | ||
| f32 | player_radius, | ||
| const std::set< u16 > & | current_objects, | ||
| std::vector< u16 > & | added_objects ) |
References ACTIVEOBJECT_TYPE_PLAYER, ServerActiveObject::getBasePosition(), ActiveObject::getType(), ServerActiveObject::isEffectivelyObservedBy(), ServerActiveObject::isGone(), and ActiveObjectMgr< ServerActiveObject >::m_active_objects.
Referenced by TEST_CASE().
| void ActiveObjectMgr< T >::getObjectsInArea | ( | const aabb3f & | box, |
| std::vector< ServerActiveObject * > & | result, | ||
| std::function< bool(ServerActiveObject *obj)> | include_obj_cb ) |
References _, and m_spatial_index.
Referenced by benchGetObjectsInArea().
| void ActiveObjectMgr< T >::getObjectsInsideRadius | ( | v3f | pos, |
| float | radius, | ||
| std::vector< ServerActiveObject * > & | result, | ||
| std::function< bool(ServerActiveObject *obj)> | include_obj_cb ) |
References ActiveObjectMgr< ServerActiveObject >::m_active_objects, and m_spatial_index.
Referenced by benchGetObjectsInsideRadius(), and TEST_CASE().
| void ActiveObjectMgr< T >::invalidateActiveObjectObserverCaches | ( | ) |
References ServerActiveObject::invalidateEffectiveObservers(), and ActiveObjectMgr< ServerActiveObject >::m_active_objects.
|
overridevirtual |
Implements ActiveObjectMgr< ServerActiveObject >.
References errorstream, ActiveObjectMgr< ServerActiveObject >::getFreeId(), ActiveObjectMgr< ServerActiveObject >::isFreeId(), ActiveObjectMgr< ServerActiveObject >::m_active_objects, m_spatial_index, objectpos_over_limit(), verbosestream, and warningstream.
Referenced by TEST_CASE().
|
overridevirtual |
Implements ActiveObjectMgr< ServerActiveObject >.
References infostream, ActiveObjectMgr< ServerActiveObject >::m_active_objects, m_spatial_index, and verbosestream.
Referenced by clearIf().
|
overridevirtual |
Implements ActiveObjectMgr< ServerActiveObject >.
References g_profiler, and ActiveObjectMgr< ServerActiveObject >::m_active_objects.
| void ActiveObjectMgr< T >::updateObjectPos | ( | u16 | id, |
| v3f | pos ) |
References ActiveObjectMgr< ServerActiveObject >::m_active_objects, and m_spatial_index.
|
private |
Referenced by getObjectsInArea(), getObjectsInsideRadius(), registerObject(), removeObject(), and updateObjectPos().