示例#1
0
// static 
LLVector3d LLTracker::getTrackedPositionGlobal()
{
	LLVector3d pos_global;
	switch (getTrackingStatus())
	{
	case TRACKING_AVATAR:
	{
		LLAvatarTracker& av_tracker = LLAvatarTracker::instance();
		if (av_tracker.haveTrackingInfo())
		{
			pos_global = av_tracker.getGlobalPos(); }
		break;
	}
	case TRACKING_LANDMARK:
		if( instance()->mHasLandmarkPosition )
		{
			pos_global = instance()->mTrackedPositionGlobal;
		}
		break;
	case TRACKING_LOCATION:
		pos_global = instance()->mTrackedPositionGlobal;
		break;
	default:
		break;
	}
	return pos_global;
}
示例#2
0
// static 
BOOL LLTracker::handleMouseDown(S32 x, S32 y)
{
	BOOL eat_mouse_click = FALSE;
	// fortunately, we can always compute the tracking arrow center
	S32 dist_sqrd = (x - instance()->mHUDArrowCenterX) * (x - instance()->mHUDArrowCenterX) + 
					(y - instance()->mHUDArrowCenterY) * (y - instance()->mHUDArrowCenterY);
	if (dist_sqrd < ARROW_OFF_RADIUS_SQRD)
	{
		/* tracking autopilot destination has been disabled
		   -- 2004.01.09, Leviathan
		// turn off tracking
		if (gAgent.getAutoPilot())
		{
			gAgent.stopAutoPilot(TRUE);	// TRUE because cancelled by user
			eat_mouse_click = TRUE;
		}
		*/
		if (getTrackingStatus())
		{
			instance()->stopTrackingAll();
			eat_mouse_click = TRUE;
		}
	}
	return eat_mouse_click;
}
// static virtual
void LLTracker::drawHUDArrow()
{
	if (!gSavedSettings.getBOOL("RenderTrackerBeacon")) return;

	if (gViewerWindow->getProgressView()->getVisible()) return;

	static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white);
	
	/* tracking autopilot destination has been disabled 
	   -- 2004.01.09, Leviathan
	// Draw dot for autopilot target
	if (gAgent.getAutoPilot())
	{
		instance()->drawMarker( gAgent.getAutoPilotTargetGlobal(), map_track_color );
		return;
	}
	*/
	switch (getTrackingStatus())
	{ 
	case TRACKING_AVATAR:
		// Tracked avatar
		if(LLAvatarTracker::instance().haveTrackingInfo())
		{
			instance()->drawMarker( LLAvatarTracker::instance().getGlobalPos(), map_track_color );
		} 
		break;

	case TRACKING_LANDMARK:
		instance()->drawMarker( getTrackedPositionGlobal(), map_track_color );
		break;

	case TRACKING_LOCATION:
		// HACK -- try to keep the location just above the terrain
#if 0
		// UNHACKED by CRO - keep location where the location is
		instance()->mTrackedPositionGlobal.mdV[VZ] = 
				0.9f * instance()->mTrackedPositionGlobal.mdV[VZ]
				+ 0.1f * (LLWorld::getInstance()->resolveLandHeightGlobal(getTrackedPositionGlobal()) + 1.5f);
#endif
		instance()->mTrackedPositionGlobal.mdV[VZ] = llclamp((F32)instance()->mTrackedPositionGlobal.mdV[VZ], LLWorld::getInstance()->resolveLandHeightGlobal(getTrackedPositionGlobal()) + 1.5f, (F32)instance()->getTrackedPositionGlobal().mdV[VZ]);
		instance()->drawMarker( getTrackedPositionGlobal(), map_track_color );
		break;

	default:
		break;
	}
}
示例#4
0
// static virtual
void LLTracker::drawHUDArrow()
{
	/* tracking autopilot destination has been disabled 
	   -- 2004.01.09, Leviathan
	// Draw dot for autopilot target
	if (gAgent.getAutoPilot())
	{
		instance()->drawMarker( gAgent.getAutoPilotTargetGlobal(), gTrackColor );
		return;
	}
	*/
	switch (getTrackingStatus())
	{ 
	case TRACKING_AVATAR:
		// Tracked avatar
		if(LLAvatarTracker::instance().haveTrackingInfo())
		{
			instance()->drawMarker( LLAvatarTracker::instance().getGlobalPos(), gTrackColor );
		} 
		break;

	case TRACKING_LANDMARK:
		instance()->drawMarker( getTrackedPositionGlobal(), gTrackColor );
		break;

	case TRACKING_LOCATION:
		// HACK -- try to keep the location just above the terrain
#if 0
		// UNHACKED by CRO - keep location where the location is
		instance()->mTrackedPositionGlobal.mdV[VZ] = 
				0.9f * instance()->mTrackedPositionGlobal.mdV[VZ]
				+ 0.1f * (LLWorld::getInstance()->resolveLandHeightGlobal(getTrackedPositionGlobal()) + 1.5f);
#endif
		instance()->mTrackedPositionGlobal.mdV[VZ] = llclamp((F32)instance()->mTrackedPositionGlobal.mdV[VZ], LLWorld::getInstance()->resolveLandHeightGlobal(getTrackedPositionGlobal()) + 1.5f, (F32)instance()->getTrackedPositionGlobal().mdV[VZ]);
		instance()->drawMarker( getTrackedPositionGlobal(), gTrackColor );
		break;

	default:
		break;
	}
}