Hola!!
he intentado que un solo proyecto pueda "leer" varios makers y con respecto a cada maker muestre su respectivo modelo
lo he hecho de la forma del post "Multiples Markers e Interacción con FLARManager" pero aun asi no me logra mostrar nigun modelo y me gustaria saber: ¿Como puedo visualizar multi maker entonces?.. por que no logro visualizar anda ?
si hasta el momento lo he intentado con el siguiente codigo:
- package
- {
- import com.transmote.flar.marker.FLARMarker;
- import com.transmote.flar.FLARManager;
- import com.transmote.flar.marker.FLARMarkerEvent;
- import com.transmote.flar.utils.geom.FLARPVGeomUtils;
- import flash.display.Shape;
- import flash.display.Sprite;
- import flash.events.*;
- import org.papervision3d.objects.DisplayObject3D;
- import org.papervision3d.objects.parsers.DAE;
- import org.papervision3d.scenes.Scene3D;
- import org.papervision3d.view.Viewport3D;
- import org.papervision3d.lights.PointLight3D;
- import org.papervision3d.render.LazyRenderEngine;
- import org.libspark.flartoolkit.support.pv3d.FLARCamera3D;
- import org.papervision3d.core.math.Matrix3D;
- public class ensayoMultiple extends Sprite
- {
- private var modeloUno:DAE;
- private var modeloDos:DAE;
- private var modeloTres:DAE;
- private var marker1:FLARMarker;
- private var marker2:FLARMarker;
- private var marker3:FLARMarker;
- private var fm:FLARManager;
- private var scene3D:Scene3D;
- private var viewport3D:Viewport3D;
- private var camera3D:FLARCamera3D;
- private var lre:LazyRenderEngine;
- private var pointLight3D:PointLight3D;
- private var contenedor:Array=new Array(new DisplayObject3D,new DisplayObject3D,new DisplayObject3D);
- private var SW:int=0;
- private var sw:int=0;
- private var dibujos:Shape;
- public function ensayoMultiple()
- {
- modeloUno = new DAE();
- modeloUno.load('Daes/bola.DAE');
- modeloUno.scale = 5;
- modeloUno.rotationX = 90;
- modeloDos = new DAE();
- modeloDos.load('Daes/caja.DAE');
- modeloDos.scale = 5;
- modeloDos.rotationX = 90;
- modeloTres = new DAE();
- modeloTres.load('Daes/primerCosito.DAE');
- modeloTres.scale = 5;
- modeloTres.rotationX = 90;
- this.contenedor[0].addChild(modeloUno);
- this.contenedor[1].addChild(modeloDos);
- this.contenedor[2].addChild(modeloTres);
- this.contenedor[0].visible=false;
- this.contenedor[1].visible=false;
- this.contenedor[2].visible=false;
- initFLAR();
- }
- private function initFLAR():void {
- this.fm = new FLARManager("data/flarConfig.xml");
- fm.addEventListener(FLARMarkerEvent.MARKER_ADDED, onAdded);
- fm.addEventListener(FLARMarkerEvent.MARKER_REMOVED, onRemoved);
- fm.addEventListener(Event.INIT, onFlarManagerLoad);
- this.addChild(Sprite(fm.flarSource));
- }
- private function onFlarManagerLoad(e:Event):void {
- this.fm.removeEventListener(Event.INIT, onFlarManagerLoad);
- this.initPaperVision();
- }
- private function onAdded(e:FLARMarkerEvent):void {
- this.contenedor[e.marker.patternId].visible=true;
- if(e.marker.patternId==0){
- marker1=e.marker;
- }
- if(e.marker.patternId==1){
- marker2=e.marker;
- }
- if(e.marker.patternId==2){
- marker3=e.marker;
- }
- }
- private function onRemoved(e:FLARMarkerEvent):void {
- this.contenedor[e.marker.patternId].visible=false;
- if(e.marker.patternId==0){
- marker1=null;
- }
- if(e.marker.patternId==1){
- marker2=null;
- }
- if(e.marker.patternId==2){
- marker3=null;
- }
- }
- private function initPaperVision():void {
- this.scene3D = new Scene3D();
- this.camera3D = new FLARCamera3D(this.fm.cameraParams);
- this.viewport3D = new Viewport3D(640, 480, true);
- this.addChild(this.viewport3D);
- this.pointLight3D = new PointLight3D(true, false);
- this.pointLight3D.x = 1000;
- this.pointLight3D.y = 1000;
- this.pointLight3D.z = -1000;
- this.scene3D.addChild(pointLight3D);
- this.lre = new LazyRenderEngine(this.scene3D, this.camera3D, this.viewport3D);
- this.addEventListener(Event.ENTER_FRAME, this.onEnterFrame);
- this.scene3D.addChild(contenedor[0]);
- this.scene3D.addChild(contenedor[1]);
- this.scene3D.addChild(contenedor[2]);
- }
- private function onEnterFrame(e:Event):void {
- var dist:Number;
- var atrac:Number=10;
- var inverse:Matrix3D = new Matrix3D();
- var parentMatrix:Matrix3D = new Matrix3D();
- if(dibujos)dibujos.graphics.clear();
- if(marker1){
- this.contenedor[0].transform=FLARPVGeomUtils.convertFLARMatrixToPVMatrix(marker1.transformMatrix);
- }
- if(marker2) {
- this.contenedor[1].transform=FLARPVGeomUtils.convertFLARMatrixToPVMatrix(marker2.transformMatrix);
- }
- if(marker3) {
- this.contenedor[2].transform=FLARPVGeomUtils.convertFLARMatrixToPVMatrix(marker3.transformMatrix);
- }
- this.lre.render();
- }
- }
- }

está resuelto