Debug DataDownload Example

// Class Main.as
package  
{
	import flare.basic.*
	import flare.collisions.*
	import flare.core.*
	import flare.system.*
	import flare.utils.*
	import flash.display.*
	import flash.events.*
	
	public class Main extends Sprite
	{
		private var scene:Scene3D
		private var collisions:Pivot3D
		private var vector:Pivot3D
		private var mouse:MouseCollision
		
		public function Main() 
		{
			stage.quality = "medium"
			
			// creates the scene.
			scene = new Viewer3D( this )
			
			// define complete event.
			scene.addEventListener( Scene3D.COMPLETE_EVENT, completeEvent )			
			
			// load 3d objects.
			collisions = scene.addChildFromFile( "collisions.f3d" )			
		}
		
		private function completeEvent(e:Event):void 
		{
			// create mouse collision.
			mouse = new MouseCollision( scene.camera, scene.canvas )			
			mouse.addCollisionWith( collisions )
			
			// force Debug3D to draw over all objects.
			Debug3D.priority = Number.MAX_VALUE
			
			// draw Debug3D axis.
			Debug3D.drawAxis( scene, 5, true )
			
			// we only need to test in render event, but we can test also in update event.
			scene.addEventListener( Scene3D.RENDER_EVENT, renderEvent )
		}
		
		private function renderEvent(e:Event):void 
		{
			// remove Debug3D data.
			Debug3D.removeBoundingBox( scene, true )
			Debug3D.removePoly( scene, true )
			
			// get mouse collision.
			if ( mouse.test( Input3D.mouseX, Input3D.mouseY ) )
			{	
				// get collision data.
				var info:CollisionInfo = mouse.data[ 0 ]
				
				// draw Debug3D data.
				Debug3D.priority = 1
				Debug3D.drawBoundingBox( info.mesh )
				Debug3D.drawPoly( info.mesh, info.poly )
			}
		}
	}
}