#include <llprimlinkinfo.h>
Public Member Functions | |
LLPrimLinkInfo () | |
LLPrimLinkInfo (DATA_TYPE data, const LLSphere &sphere) | |
~LLPrimLinkInfo () | |
void | set (DATA_TYPE data, const LLSphere &sphere) |
void | append (DATA_TYPE data, const LLSphere &sphere) |
void | getData (std::list< DATA_TYPE > &data_list) const |
F32 | getDiameter () const |
LLVector3 | getCenter () const |
bool | canLink (const LLPrimLinkInfo< DATA_TYPE > &other_info) |
S32 | getPrimCount () const |
void | mergeLinkableSet (typename std::list< LLPrimLinkInfo< DATA_TYPE > > &unlinked) |
void | transform (const LLVector3 &position, const LLQuaternion &rotation) |
Private Member Functions | |
S32 | merge (LLPrimLinkInfo< DATA_TYPE > &other_info) |
void | computeBoundingSphere () |
F32 | get_max_linkable_span (const LLSphere &first, const LLSphere &second) |
F32 | get_span (const LLSphere &first, const LLSphere &second) |
Static Private Member Functions | |
static S32 | collapse (typename std::list< LLPrimLinkInfo< DATA_TYPE > > &unlinked) |
Private Attributes | |
std::map< DATA_TYPE, LLSphere > | mDataMap |
LLSphere | mBoundingSphere |
Definition at line 46 of file llprimlinkinfo.h.
LLPrimLinkInfo< DATA_TYPE >::LLPrimLinkInfo | ( | ) | [inline] |
Definition at line 89 of file llprimlinkinfo.h.
LLPrimLinkInfo< DATA_TYPE >::LLPrimLinkInfo | ( | DATA_TYPE | data, | |
const LLSphere & | sphere | |||
) | [inline] |
LLPrimLinkInfo< DATA_TYPE >::~LLPrimLinkInfo | ( | ) | [inline] |
void LLPrimLinkInfo< DATA_TYPE >::set | ( | DATA_TYPE | data, | |
const LLSphere & | sphere | |||
) | [inline] |
Definition at line 108 of file llprimlinkinfo.h.
References LLPrimLinkInfo< DATA_TYPE >::mBoundingSphere, and LLPrimLinkInfo< DATA_TYPE >::mDataMap.
void LLPrimLinkInfo< DATA_TYPE >::append | ( | DATA_TYPE | data, | |
const LLSphere & | sphere | |||
) | [inline] |
Definition at line 119 of file llprimlinkinfo.h.
References LLPrimLinkInfo< DATA_TYPE >::computeBoundingSphere(), LLSphere::contains(), LLPrimLinkInfo< DATA_TYPE >::mBoundingSphere, and LLPrimLinkInfo< DATA_TYPE >::mDataMap.
void LLPrimLinkInfo< DATA_TYPE >::getData | ( | std::list< DATA_TYPE > & | data_list | ) | const [inline] |
F32 LLPrimLinkInfo< DATA_TYPE >::getDiameter | ( | ) | const [inline] |
Definition at line 139 of file llprimlinkinfo.h.
References LLSphere::getRadius(), and LLPrimLinkInfo< DATA_TYPE >::mBoundingSphere.
LLVector3 LLPrimLinkInfo< DATA_TYPE >::getCenter | ( | ) | const [inline] |
Definition at line 145 of file llprimlinkinfo.h.
References LLSphere::getCenter(), and LLPrimLinkInfo< DATA_TYPE >::mBoundingSphere.
bool LLPrimLinkInfo< DATA_TYPE >::canLink | ( | const LLPrimLinkInfo< DATA_TYPE > & | other_info | ) | [inline] |
Definition at line 173 of file llprimlinkinfo.h.
References FALSE, LLPrimLinkInfo< DATA_TYPE >::get_max_linkable_span(), LLPrimLinkInfo< DATA_TYPE >::get_span(), LLSphere::getRadius(), LLPrimLinkInfo< DATA_TYPE >::mBoundingSphere, LLPrimLinkInfo< DATA_TYPE >::mDataMap, and TRUE.
S32 LLPrimLinkInfo< DATA_TYPE >::getPrimCount | ( | ) | const [inline] |
Definition at line 62 of file llprimlinkinfo.h.
Referenced by LLPrimLinkInfo< DATA_TYPE >::merge(), and LLPrimLinkInfo< DATA_TYPE >::mergeLinkableSet().
void LLPrimLinkInfo< DATA_TYPE >::mergeLinkableSet | ( | typename std::list< LLPrimLinkInfo< DATA_TYPE > > & | unlinked | ) | [inline] |
Definition at line 212 of file llprimlinkinfo.h.
References LLPrimLinkInfo< DATA_TYPE >::collapse(), LLPrimLinkInfo< DATA_TYPE >::getPrimCount(), MAX_PRIMS_PER_OBJECT, LLPrimLinkInfo< DATA_TYPE >::merge(), and S32.
void LLPrimLinkInfo< DATA_TYPE >::transform | ( | const LLVector3 & | position, | |
const LLQuaternion & | rotation | |||
) | [inline] |
Definition at line 251 of file llprimlinkinfo.h.
References LLSphere::getCenter(), LLPrimLinkInfo< DATA_TYPE >::mBoundingSphere, LLPrimLinkInfo< DATA_TYPE >::mDataMap, and LLSphere::setCenter().
S32 LLPrimLinkInfo< DATA_TYPE >::merge | ( | LLPrimLinkInfo< DATA_TYPE > & | other_info | ) | [inline, private] |
Definition at line 264 of file llprimlinkinfo.h.
References LLPrimLinkInfo< DATA_TYPE >::computeBoundingSphere(), LLSphere::contains(), LLPrimLinkInfo< DATA_TYPE >::get_max_linkable_span(), LLPrimLinkInfo< DATA_TYPE >::get_span(), LLPrimLinkInfo< DATA_TYPE >::getPrimCount(), LLSphere::getRadius(), MAX_PRIMS_PER_OBJECT, LLPrimLinkInfo< DATA_TYPE >::mBoundingSphere, LLPrimLinkInfo< DATA_TYPE >::mDataMap, and S32.
Referenced by LLPrimLinkInfo< DATA_TYPE >::mergeLinkableSet().
S32 LLPrimLinkInfo< DATA_TYPE >::collapse | ( | typename std::list< LLPrimLinkInfo< DATA_TYPE > > & | unlinked | ) | [inline, static, private] |
Definition at line 340 of file llprimlinkinfo.h.
References S32.
Referenced by LLPrimLinkInfo< DATA_TYPE >::mergeLinkableSet().
void LLPrimLinkInfo< DATA_TYPE >::computeBoundingSphere | ( | ) | [inline, private] |
Definition at line 375 of file llprimlinkinfo.h.
References LLSphere::getBoundingSphere(), LLPrimLinkInfo< DATA_TYPE >::mBoundingSphere, and LLPrimLinkInfo< DATA_TYPE >::mDataMap.
Referenced by LLPrimLinkInfo< DATA_TYPE >::append(), and LLPrimLinkInfo< DATA_TYPE >::merge().
F32 LLPrimLinkInfo< DATA_TYPE >::get_max_linkable_span | ( | const LLSphere & | first, | |
const LLSphere & | second | |||
) | [inline, private] |
Definition at line 151 of file llprimlinkinfo.h.
References LLSphere::getRadius(), MAX_OBJECT_SPAN, and OBJECT_SPAN_BONUS.
Referenced by LLPrimLinkInfo< DATA_TYPE >::canLink(), and LLPrimLinkInfo< DATA_TYPE >::merge().
F32 LLPrimLinkInfo< DATA_TYPE >::get_span | ( | const LLSphere & | first, | |
const LLSphere & | second | |||
) | [inline, private] |
Definition at line 163 of file llprimlinkinfo.h.
References LLSphere::getCenter(), and LLSphere::getRadius().
Referenced by LLPrimLinkInfo< DATA_TYPE >::canLink(), and LLPrimLinkInfo< DATA_TYPE >::merge().
std::map< DATA_TYPE, LLSphere > LLPrimLinkInfo< DATA_TYPE >::mDataMap [private] |
Definition at line 82 of file llprimlinkinfo.h.
Referenced by LLPrimLinkInfo< DATA_TYPE >::append(), LLPrimLinkInfo< DATA_TYPE >::canLink(), LLPrimLinkInfo< DATA_TYPE >::computeBoundingSphere(), LLPrimLinkInfo< DATA_TYPE >::getData(), LLPrimLinkInfo< signed int >::getPrimCount(), LLPrimLinkInfo< DATA_TYPE >::LLPrimLinkInfo(), LLPrimLinkInfo< DATA_TYPE >::merge(), LLPrimLinkInfo< DATA_TYPE >::set(), LLPrimLinkInfo< DATA_TYPE >::transform(), and LLPrimLinkInfo< DATA_TYPE >::~LLPrimLinkInfo().
LLSphere LLPrimLinkInfo< DATA_TYPE >::mBoundingSphere [private] |
Definition at line 83 of file llprimlinkinfo.h.
Referenced by LLPrimLinkInfo< DATA_TYPE >::append(), LLPrimLinkInfo< DATA_TYPE >::canLink(), LLPrimLinkInfo< DATA_TYPE >::computeBoundingSphere(), LLPrimLinkInfo< DATA_TYPE >::getCenter(), LLPrimLinkInfo< DATA_TYPE >::getDiameter(), LLPrimLinkInfo< DATA_TYPE >::merge(), LLPrimLinkInfo< DATA_TYPE >::set(), and LLPrimLinkInfo< DATA_TYPE >::transform().