Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.rimv.PV3DUtils
- {
- import flash.display.*;
- import flash.events.*;
- import flash.utils.Timer;
- import org.papervision3d.cameras.*;
- import org.papervision3d.scenes.Scene3D;
- import org.papervision3d.render.BasicRenderEngine;
- import org.papervision3d.view.Viewport3D;
- import org.papervision3d.objects.DisplayObject3D;
- public class PV3DEnvironment extends Sprite
- {
- // pv3d parameters
- private var _scene:Scene3D;
- private var _viewport:Viewport3D;
- private var _renderer:BasicRenderEngine;
- private var _camera:Camera3D;
- // render manager
- private var rManager:Timer;
- // get function
- public function get scene():Scene3D
- {
- return _scene;
- }
- public function get viewport():Viewport3D
- {
- return _viewport;
- }
- public function get renderer():BasicRenderEngine
- {
- return _renderer;
- }
- public function get camera():Camera3D
- {
- return _camera;
- }
- // main
- public function PV3DEnvironment(vWidth:Number = 640, vHeight:Number = 480, scaleToStage:Boolean = false, interactive:Boolean = true)
- {
- // initialize 3d parameters
- _viewport = new Viewport3D(vWidth, vHeight, scaleToStage, interactive);
- _scene = new Scene3D();
- _renderer = new BasicRenderEngine();
- _camera = new Camera3D(60);
- _camera.target = DisplayObject3D.ZERO;
- _camera.z = -(_camera.zoom * _camera.focus);
- // setup render manager
- rManager = new Timer(1000, 1);
- rManager.addEventListener(TimerEvent.TIMER_COMPLETE, stopRendering, false, 0, true);
- }
- // render manager function
- public function renderManager(duration:Number):void
- {
- rManager.stop();
- rManager.reset();
- rManager.delay = duration * 1000;
- startRendering();
- rManager.start();
- }
- public function startRendering():void
- {
- addEventListener(Event.ENTER_FRAME, rendering, false, 0, true);
- }
- public function stopRendering(e:TimerEvent):void
- {
- removeEventListener(Event.ENTER_FRAME, rendering);
- }
- private function rendering(e:Event):void
- {
- _renderer.renderScene(_scene, _camera, _viewport);
- }
- }
- }
Add Comment
Please, Sign In to add comment