Mouse CollisionDownload 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 )
addChild( info_txt )
// load 3d objects.
collisions = scene.addChildFromFile( "collisions.f3d" )
vector = scene.addChildFromFile( "vector.f3d" )
}
private function completeEvent(e:Event):void
{
// create the mouse collision.
mouse = new MouseCollision()
// test collisions with collisions objects.
mouse.addCollisionWith( collisions )
// set more priority to see over the scene.
vector.setPriority( 1000 )
// 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 tooltip.
info_txt.visible = false
vector.visible = false
// get mouse collision.
if ( mouse.test( Input3D.mouseX, Input3D.mouseY ) )
{
// get collision data.
var info:CollisionInfo = mouse.data[ 0 ]
// show 3d vector.
vector.setPosition( info.point.x, info.point.y, info.point.z )
vector.setNormalOrientation( info.normal )
vector.visible = true
// show tooltip.
info_txt.visible = true
info_txt.x = Input3D.mouseX + 10
info_txt.y = Input3D.mouseY + 10
info_txt.text = info.mesh.name
info_txt.width = info_txt.textWidth + 5
}
}
}
}

English