本文整理汇总了C++中LLObjectSelectionHandle::findNode方法的典型用法代码示例。如果您正苦于以下问题:C++ LLObjectSelectionHandle::findNode方法的具体用法?C++ LLObjectSelectionHandle::findNode怎么用?C++ LLObjectSelectionHandle::findNode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LLObjectSelectionHandle
的用法示例。
在下文中一共展示了LLObjectSelectionHandle::findNode方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleObjectSelection
//.........这里部分代码省略.........
else
{
if ( ignore_group )
{
LLSelectMgr::getInstance()->selectObjectOnly(object, SELECT_ALL_TES);
}
else
{
LLSelectMgr::getInstance()->selectObjectAndFamily(object);
}
}
}
else
{
// Save the current zoom values because deselect resets them.
F32 target_zoom;
F32 current_zoom;
LLSelectMgr::getInstance()->getAgentHUDZoom(target_zoom, current_zoom);
// JC - Change behavior to make it easier to select children
// of linked sets. 9/3/2002
if( !already_selected || ignore_group)
{
// ...lose current selection in favor of just this object
LLSelectMgr::getInstance()->deselectAll();
}
if ( ignore_group )
{
LLSelectMgr::getInstance()->selectObjectOnly(object, SELECT_ALL_TES);
}
else
{
LLSelectMgr::getInstance()->selectObjectAndFamily(object);
}
// restore the zoom to the previously stored values.
LLSelectMgr::getInstance()->setAgentHUDZoom(target_zoom, current_zoom);
}
if (!gAgent.getFocusOnAvatar() && // if camera not glued to avatar
LLVOAvatar::findAvatarFromAttachment(object) != gAgent.getAvatarObject() && // and it's not one of your attachments
object != gAgent.getAvatarObject()) // and it's not you
{
// have avatar turn to face the selected object(s)
LLVector3d selection_center = LLSelectMgr::getInstance()->getSelectionCenterGlobal();
selection_center = selection_center - gAgent.getPositionGlobal();
LLVector3 selection_dir;
selection_dir.setVec(selection_center);
selection_dir.mV[VZ] = 0.f;
selection_dir.normVec();
if (!object->isAvatar() && gAgent.getAtAxis() * selection_dir < 0.6f)
{
LLQuaternion target_rot;
target_rot.shortestArc(LLVector3::x_axis, selection_dir);
gAgent.startAutoPilotGlobal(gAgent.getPositionGlobal(), "", &target_rot, NULL, NULL, 1.f, SELECTION_ROTATION_TRESHOLD);
}
}
if (temp_select)
{
if (!already_selected)
{
LLViewerObject* root_object = (LLViewerObject*)object->getRootEdit();
LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
// this is just a temporary selection
LLSelectNode* select_node = selection->findNode(root_object);
if (select_node)
{
select_node->setTransient(TRUE);
}
LLViewerObject::const_child_list_t& child_list = root_object->getChildren();
for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin();
iter != child_list.end(); iter++)
{
LLViewerObject* child = *iter;
select_node = selection->findNode(child);
if (select_node)
{
select_node->setTransient(TRUE);
}
}
}
} //if(temp_select)
} //if(!object)
// Cleanup temp select settings above.
if (temp_select || gAllowSelectAvatar)
{
gSavedSettings.setBOOL("SelectOwnedOnly", select_owned);
gSavedSettings.setBOOL("SelectMovableOnly", select_movable);
gSavedSettings.setBOOL("SelectThisRegionOnly", select_region);
LLSelectMgr::getInstance()->setForceSelection(FALSE);
}
return LLSelectMgr::getInstance()->getSelection();
}
示例2: handleObjectSelection
//.........这里部分代码省略.........
}
else
{
if ( ignore_group )
{
LLSelectMgr::getInstance()->selectObjectOnly(object, SELECT_ALL_TES);
}
else
{
LLSelectMgr::getInstance()->selectObjectAndFamily(object);
}
}
}
else
{
// Save the current zoom values because deselect resets them.
F32 target_zoom;
F32 current_zoom;
LLSelectMgr::getInstance()->getAgentHUDZoom(target_zoom, current_zoom);
// JC - Change behavior to make it easier to select children
// of linked sets. 9/3/2002
if( !already_selected || ignore_group)
{
// ...lose current selection in favor of just this object
LLSelectMgr::getInstance()->deselectAll();
}
if ( ignore_group )
{
LLSelectMgr::getInstance()->selectObjectOnly(object, SELECT_ALL_TES);
}
else
{
LLSelectMgr::getInstance()->selectObjectAndFamily(object);
}
// restore the zoom to the previously stored values.
LLSelectMgr::getInstance()->setAgentHUDZoom(target_zoom, current_zoom);
}
if (!gAgentCamera.getFocusOnAvatar() && // if camera not glued to avatar
LLVOAvatar::findAvatarFromAttachment(object) != gAgentAvatarp && // and it's not one of your attachments
object != gAgentAvatarp) // and it's not you
{
// have avatar turn to face the selected object(s)
LLVector3d selection_center = LLSelectMgr::getInstance()->getSelectionCenterGlobal();
selection_center = selection_center - gAgent.getPositionGlobal();
LLVector3 selection_dir;
selection_dir.setVec(selection_center);
selection_dir.mV[VZ] = 0.f;
selection_dir.normVec();
if (!object->isAvatar() && gAgent.getAtAxis() * selection_dir < 0.6f)
{
LLQuaternion target_rot;
target_rot.shortestArc(LLVector3::x_axis, selection_dir);
gAgent.startAutoPilotGlobal(gAgent.getPositionGlobal(), "", &target_rot, NULL, NULL, 1.f, SELECTION_ROTATION_TRESHOLD);
}
}
if (temp_select)
{
if (!already_selected)
{
LLViewerObject* root_object = (LLViewerObject*)object->getRootEdit();
LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
// this is just a temporary selection
LLSelectNode* select_node = selection->findNode(root_object);
if (select_node)
{
select_node->setTransient(TRUE);
}
LLViewerObject::const_child_list_t& child_list = root_object->getChildren();
for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin();
iter != child_list.end(); iter++)
{
LLViewerObject* child = *iter;
select_node = selection->findNode(child);
if (select_node)
{
select_node->setTransient(TRUE);
}
}
}
} //if(temp_select)
} //if(!object)
// Cleanup temp select settings above.
if (temp_select ||LLSelectMgr::getInstance()->mAllowSelectAvatar)
{
gSavedSettings.setBOOL("SelectOwnedOnly", select_owned);
gSavedSettings.setBOOL("SelectMovableOnly", select_movable);
LLSelectMgr::getInstance()->setForceSelection(FALSE);
}
return LLSelectMgr::getInstance()->getSelection();
}