Guest User

Untitled

a guest
May 21st, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. package org.libspark.flartoolkit.example {
  2.  
  3. import flash.display.Sprite;
  4. import flash.events.Event;
  5.  
  6. import org.libspark.flartoolkit.core.transmat.FLARTransMatResult;
  7. import org.libspark.flartoolkit.support.pv3d.FLARBaseNode;
  8. import org.libspark.flartoolkit.support.pv3d.FLARCamera3D;
  9. import org.papervision3d.render.LazyRenderEngine;
  10. import org.papervision3d.scenes.Scene3D;
  11. import org.papervision3d.view.Viewport3D;
  12.  
  13. public class PV3DARApp extends ARAppBase {
  14.  
  15. protected var _base:Sprite;
  16. protected var _viewport:Viewport3D;
  17. protected var _camera3d:FLARCamera3D;
  18. protected var _scene:Scene3D;
  19. protected var _renderer:LazyRenderEngine;
  20. protected var _markerNode:FLARBaseNode;
  21.  
  22. protected var _resultMat:FLARTransMatResult = new FLARTransMatResult();
  23.  
  24. public function PV3DARApp() {
  25. }
  26.  
  27. protected override function init(cameraFile:String, codeFile:String, canvasWidth:int = 320, canvasHeight:int = 240, codeWidth:int = 80):void {
  28. addEventListener(Event.INIT, _onInit, false, int.MAX_VALUE);
  29. super.init(cameraFile, codeFile, canvasWidth, canvasHeight, codeWidth);
  30. }
  31.  
  32. private function _onInit(e:Event):void {
  33. _base = addChild(new Sprite()) as Sprite;
  34.  
  35. _capture.width = 640;
  36. _capture.height = 480;
  37. _base.addChild(_capture);
  38.  
  39. _viewport = _base.addChild(new Viewport3D(320, 240)) as Viewport3D;
  40. _viewport.scaleX = 640 / 320;
  41. _viewport.scaleY = 480 / 240;
  42. _viewport.x = -4; // 4pix ???
  43.  
  44. _camera3d = new FLARCamera3D(_param);
  45.  
  46. _scene = new Scene3D();
  47. _markerNode = _scene.addChild(new FLARBaseNode()) as FLARBaseNode;
  48.  
  49. _renderer = new LazyRenderEngine(_scene, _camera3d, _viewport);
  50.  
  51. addEventListener(Event.ENTER_FRAME, _onEnterFrame);
  52. }
  53.  
  54. private function _onEnterFrame(e:Event = null):void {
  55. _capture.bitmapData.draw(_video);
  56.  
  57. var detected:Boolean = false;
  58. try {
  59. detected = _detector.detectMarkerLite(_raster, 80) && _detector.getConfidence() > 0.5;
  60. } catch (e:Error) {}
  61.  
  62. if (detected) {
  63. _detector.getTransformMatrix(_resultMat);
  64. _markerNode.setTransformMatrix(_resultMat);
  65. _markerNode.visible = true;
  66. } else {
  67. _markerNode.visible = false;
  68. }
  69.  
  70. _renderer.render();
  71. }
  72.  
  73. public function set mirror(value:Boolean):void {
  74. if (value) {
  75. _base.scaleX = -1;
  76. _base.x = 640;
  77. } else {
  78. _base.scaleX = 1;
  79. _base.x = 0;
  80. }
  81. }
  82.  
  83. public function get mirror():Boolean {
  84. return _base.scaleX < 0;
  85. }
  86. }
  87. }
Add Comment
Please, Sign In to add comment