Axiom.Overlays.Overlay.FindVisibleObjects C# (CSharp) Method

FindVisibleObjects() public method

Internal method to put the overlay contents onto the render queue.
public FindVisibleObjects ( Camera camera, RenderQueue queue ) : void
camera Axiom.Core.Camera Current camera being used in the render loop.
queue Axiom.Graphics.RenderQueue Current render queue.
return void
		public void FindVisibleObjects( Camera camera, RenderQueue queue )
		{

			if ( OverlayManager.Instance.HasViewportChanged )
			{

				for ( int i = 0; i < elementList.Count; i++ )
				{
					OverlayElementContainer container = (OverlayElementContainer)elementList[ i ];
					container.NotifyViewport();
				}
			}

			if ( isVisible )
			{
				// update transform of elements
				if ( isTransformUpdated )
				{
					GetWorldTransforms( xform );
					for ( int i = 0; i < elementList.Count; i++ )
					{
						OverlayElementContainer container = (OverlayElementContainer)elementList[ i ];
						container.NotifyWorldTransforms( xform );
					}
					isTransformUpdated = false;
				}

				// add 3d elements
				rootNode.Position = camera.DerivedPosition;
				rootNode.Orientation = camera.DerivedOrientation;
				rootNode.Update( true, false );

				// set up the default queue group for the objects about to be added
				RenderQueueGroupID oldGroupID = queue.DefaultRenderGroup;
				ushort oldPriority = queue.DefaultRenderablePriority;

				queue.DefaultRenderGroup = RenderQueueGroupID.Overlay;
				queue.DefaultRenderablePriority = (ushort)( ( zOrder * 100 ) - 1 );
				rootNode.FindVisibleObjects( camera, queue, true, false );

				// reset the group
				queue.DefaultRenderGroup = oldGroupID;
				queue.DefaultRenderablePriority = oldPriority;

				// add 2d elements
				for ( int i = 0; i < elementList.Count; i++ )
				{
					OverlayElementContainer container = (OverlayElementContainer)elementList[ i ];
					container.Update();
					container.UpdateRenderQueue( queue );
				}
			}
		}