PATH-760: Adding another pathfinding test method to the selection manager.

master
Todd Stinson 2012-06-22 11:24:23 -07:00
parent f143da27bf
commit 1ca92d37dd
3 changed files with 56 additions and 9 deletions

View File

@ -336,6 +336,12 @@ void LLPanelPermissions::refresh()
std::string pfAttrName;
if ((LLSelectMgr::getInstance()->getSelection()->getFirstRootNode()
&& LLSelectMgr::getInstance()->selectGetRootsNonPathfinding())
|| LLSelectMgr::getInstance()->selectGetNonPathfinding())
{
pfAttrName = "Pathfinding_Object_Attr_None";
}
else if ((LLSelectMgr::getInstance()->getSelection()->getFirstRootNode()
&& LLSelectMgr::getInstance()->selectGetRootsPermanent())
|| LLSelectMgr::getInstance()->selectGetPermanent())
{
@ -347,15 +353,6 @@ void LLPanelPermissions::refresh()
{
pfAttrName = "Pathfinding_Object_Attr_Character";
}
else if (((LLSelectMgr::getInstance()->getSelection()->getFirstRootNode()
&& LLSelectMgr::getInstance()->selectGetRootsNonPermanent())
|| LLSelectMgr::getInstance()->selectGetNonPermanent()) &&
((LLSelectMgr::getInstance()->getSelection()->getFirstRootNode()
&& LLSelectMgr::getInstance()->selectGetRootsNonCharacter())
|| LLSelectMgr::getInstance()->selectGetNonCharacter()))
{
pfAttrName = "Pathfinding_Object_Attr_None";
}
else
{
pfAttrName = "Pathfinding_Object_Attr_MultiSelect";

View File

@ -2647,6 +2647,52 @@ BOOL LLSelectMgr::selectGetRootsCharacter()
return TRUE;
}
//-----------------------------------------------------------------------------
// selectGetNonPathfinding() - return TRUE if all objects are not pathfinding
//-----------------------------------------------------------------------------
BOOL LLSelectMgr::selectGetNonPathfinding()
{
for (LLObjectSelection::iterator iter = getSelection()->begin();
iter != getSelection()->end(); iter++ )
{
LLSelectNode* node = *iter;
LLViewerObject* object = node->getObject();
if( !object || !node->mValid )
{
return FALSE;
}
if( object->flagObjectPermanent() || object->flagCharacter())
{
return FALSE;
}
}
return TRUE;
}
//-----------------------------------------------------------------------------
// selectGetRootsNonPathfinding() - return TRUE if all root objects are not
// pathfinding
//-----------------------------------------------------------------------------
BOOL LLSelectMgr::selectGetRootsNonPathfinding()
{
for (LLObjectSelection::root_iterator iter = getSelection()->root_begin();
iter != getSelection()->root_end(); iter++ )
{
LLSelectNode* node = *iter;
LLViewerObject* object = node->getObject();
if( !node->mValid )
{
return FALSE;
}
if( object->flagObjectPermanent() || object->flagCharacter())
{
return FALSE;
}
}
return TRUE;
}
//-----------------------------------------------------------------------------
// selectGetNonPermanent() - return TRUE if all objects are not permanent
//-----------------------------------------------------------------------------

View File

@ -572,6 +572,10 @@ public:
BOOL selectGetRootsCharacter();
BOOL selectGetCharacter();
// returns TRUE if is all objects are not permanent
BOOL selectGetRootsNonPathfinding();
BOOL selectGetNonPathfinding();
// returns TRUE if is all objects are not permanent
BOOL selectGetRootsNonPermanent();
BOOL selectGetNonPermanent();