package {
        import away3d.containers.Scene3D;
        import away3d.containers.View3D;
        import away3d.core.render.BasicRenderer;
        import away3d.primitives.Cube;
        import away3d.primitives.Sphere;

        import flash.display.BitmapData;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.media.Camera;
        import flash.media.Video;
        import flash.utils.ByteArray;

        import org.libspark.flartoolkit.core.FLARCode;
        import org.libspark.flartoolkit.core.param.FLARParam;
        import
org.libspark.flartoolkit.core.raster.rgb.FLARRgbRaster_BitmapData;
        import org.libspark.flartoolkit.core.transmat.FLARTransMatResult;
        import org.libspark.flartoolkit.detector.FLARSingleMarkerDetector;
        import org.libspark.flartoolkit.support.away3d_2.FLARBaseNode;
        import org.libspark.flartoolkit.support.away3d_2.FLARCamera3D;



        [SWF(width="640", height="480", frameRate="30",
background="#AAAAFF")]

        public class FLARDemo1 extends Sprite
        {
                [Embed(source="./123.pat",mimeType="application/octet-stream")]
                private var pattern:Class;

                [Embed(source="./camera_para.dat",mimeType="application/octet-
stream")]
                private var params:Class;

                private var fparams:FLARParam;
                private var mpattern:FLARCode;
                private var vid:Video;
                private var cam:Camera;
                private var bmd:BitmapData;
                private var raster:FLARRgbRaster_BitmapData;//este es el parser 
de
bitmap a FLAR
                private var detector:FLARSingleMarkerDetector;//detecta 1 
marker se
puede cambiar a multiples

                private var scene:Scene3D;
                private var camera:FLARCamera3D;
                private var container:FLARBaseNode;
                private var vp:View3D;
                private var bre:BasicRenderer;
                private var trans:FLARTransMatResult;//este posiciona los 
objetos

                private var bola:Sphere;

                public function FLARDemo1()
                {
                        setupFLAR();
                        setupCamera();
                        setupBitmap();
                        setupPV3D();
                        addEventListener(Event.ENTER_FRAME,loop);
                }
                private function setupFLAR():void
                {
                        fparams=new FLARParam();
                        fparams.loadARParam(new params() as ByteArray);
                        mpattern=new FLARCode(16,16);
                        mpattern.loadARPatt(new pattern());

                }
                private function setupCamera():void
                {
                        vid=new Video(640,480);
                        cam=Camera.getCamera();
                        cam.setMode(640,480,30);
                        vid.attachCamera(cam);
                        addChild(vid);

                }
                private function setupBitmap():void
                {
                        bmd=new BitmapData(640,480);//lee por cuadro la imagen 
de la camra
                        bmd.draw(vid);//la guarda en un bitmap
                        raster=new FLARRgbRaster_BitmapData(bmd);
                        detector=new 
FLARSingleMarkerDetector(fparams,mpattern,80);

                }
                private function setupPV3D():void
                {

                        scene=new Scene3D();
                        camera=new FLARCamera3D(fparams);
                        vp=new View3D({camera:camera,scene:scene});
                        addChild(vp);





                        container=new FLARBaseNode();


                        var cube1:Cube=new Cube();
                        var cube2:Cube=new Cube();
                        cube2.z=50;
//                      var cube3:Cube=new Cube();
var cube3:Sphere=new Sphere();
                        cube3.z=100;

                        cube1.width=cube1.height=cube1.depth=30;
                        cube2.width=cube2.height=cube2.depth=30;
                        cube3.radius=30;

                        bola=new Sphere();
                        bola.radius=100;
                        bola.ownCanvas=true;
                        bola.pushfront=true;

                        container.addChild(cube1);
                        container.addChild(cube2);
                        container.addChild(cube3);
                        container.addChild(bola);

                        scene.addChild(container);

                        bre=new BasicRenderer();
                        trans=new FLARTransMatResult();
                }
                private function loop(e:Event):void
                {
                        bmd.draw(vid);
                        try
                        {
                        if 
(detector.detectMarkerLite(raster,80)&&detector.getConfidence()
>0.5)
                        {
                                detector.getTransformMatrix(trans);
                                container.setTransformMatrix(trans);
                                vp.visible = true;
                                bre.render(vp);
                        }
                        else{
                                vp.visible=false;
                        }
                        }
                        catch(e:Error)
                        {
                                trace("Error: " + e.message);
                        }
                        vp.render();
                }
        }
}

it shows the camera, but it is suposed to render but it doesnt show
anything, what im doing wrong or what do i have to change? i already
set the confidence >0.1, so i guess it has to be with a bad rendering,
but i changed every line to make combinations and nothing.

Reply via email to