/** * ... * @author Luke Mitchell * @version 1.0.0 */ package { import flash.display.Sprite; import flash.events.Event; import org.papervision3d.view.Viewport3D; import org.papervision3d.cameras.*; import org.papervision3d.scenes.Scene3D; import org.papervision3d.render.BasicRenderEngine; public class PaperBase extends Sprite { public var viewport:Viewport3D; public var renderer:BasicRenderEngine; public var default_scene:Scene3D; public var default_camera:Camera3D; public function init(vpWidth:Number = 800, vpHeight:Number = 600):void { initPapervision(vpWidth, vpHeight); init3d(); init2d(); initEvents(); } protected function initPapervision(vpWidth:Number, vpHeight:Number):void { viewport = new Viewport3D(vpWidth, vpHeight); addChild(viewport); renderer = new BasicRenderEngine(); default_scene = new Scene3D(); default_camera = new Camera3D(); } protected function init3d():void { } protected function init2d():void { } protected function initEvents():void { addEventListener(Event.ENTER_FRAME, onEnterFrame); } protected function processFrame():void { // Process any movement or animation here. } protected function onEnterFrame( ThisEvent:Event ):void { processFrame(); renderer.renderScene(default_scene, default_camera, viewport); } } }