LLPrimLinkInfo< DATA_TYPE > Class Template Reference

#include <llprimlinkinfo.h>

Inheritance diagram for LLPrimLinkInfo< DATA_TYPE >:

Inheritance graph
[legend]
Collaboration diagram for LLPrimLinkInfo< DATA_TYPE >:

Collaboration graph
[legend]

List of all members.

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, LLSpheremDataMap
LLSphere mBoundingSphere


Detailed Description

template<typename DATA_TYPE>
class LLPrimLinkInfo< DATA_TYPE >

Definition at line 46 of file llprimlinkinfo.h.


Constructor & Destructor Documentation

template<typename DATA_TYPE>
LLPrimLinkInfo< DATA_TYPE >::LLPrimLinkInfo (  )  [inline]

Definition at line 89 of file llprimlinkinfo.h.

template<typename DATA_TYPE>
LLPrimLinkInfo< DATA_TYPE >::LLPrimLinkInfo ( DATA_TYPE  data,
const LLSphere sphere 
) [inline]

Definition at line 95 of file llprimlinkinfo.h.

References LLPrimLinkInfo< DATA_TYPE >::mDataMap.

template<typename DATA_TYPE>
LLPrimLinkInfo< DATA_TYPE >::~LLPrimLinkInfo (  )  [inline]

Definition at line 102 of file llprimlinkinfo.h.

References LLPrimLinkInfo< DATA_TYPE >::mDataMap.


Member Function Documentation

template<typename DATA_TYPE>
void LLPrimLinkInfo< DATA_TYPE >::set ( DATA_TYPE  data,
const LLSphere sphere 
) [inline]

template<typename DATA_TYPE>
void LLPrimLinkInfo< DATA_TYPE >::append ( DATA_TYPE  data,
const LLSphere sphere 
) [inline]

template<typename DATA_TYPE>
void LLPrimLinkInfo< DATA_TYPE >::getData ( std::list< DATA_TYPE > &  data_list  )  const [inline]

Definition at line 129 of file llprimlinkinfo.h.

References LLPrimLinkInfo< DATA_TYPE >::mDataMap.

template<typename DATA_TYPE>
F32 LLPrimLinkInfo< DATA_TYPE >::getDiameter (  )  const [inline]

Definition at line 139 of file llprimlinkinfo.h.

References LLSphere::getRadius(), and LLPrimLinkInfo< DATA_TYPE >::mBoundingSphere.

Here is the call graph for this function:

template<typename DATA_TYPE>
LLVector3 LLPrimLinkInfo< DATA_TYPE >::getCenter (  )  const [inline]

Definition at line 145 of file llprimlinkinfo.h.

References LLSphere::getCenter(), and LLPrimLinkInfo< DATA_TYPE >::mBoundingSphere.

Here is the call graph for this function:

template<typename DATA_TYPE>
bool LLPrimLinkInfo< DATA_TYPE >::canLink ( const LLPrimLinkInfo< DATA_TYPE > &  other_info  )  [inline]

template<typename DATA_TYPE>
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().

Here is the caller graph for this function:

template<typename DATA_TYPE>
void LLPrimLinkInfo< DATA_TYPE >::mergeLinkableSet ( typename std::list< LLPrimLinkInfo< DATA_TYPE > > &  unlinked  )  [inline]

template<typename DATA_TYPE>
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().

Here is the call graph for this function:

template<typename DATA_TYPE>
S32 LLPrimLinkInfo< DATA_TYPE >::merge ( LLPrimLinkInfo< DATA_TYPE > &  other_info  )  [inline, private]

template<typename DATA_TYPE>
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().

Here is the caller graph for this function:

template<typename DATA_TYPE>
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().

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename DATA_TYPE>
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().

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename DATA_TYPE>
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().

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

template<typename DATA_TYPE>
std::map< DATA_TYPE, LLSphere > LLPrimLinkInfo< DATA_TYPE >::mDataMap [private]

template<typename DATA_TYPE>
LLSphere LLPrimLinkInfo< DATA_TYPE >::mBoundingSphere [private]


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

Generated on Fri May 16 09:00:50 2008 for SecondLife by  doxygen 1.5.5