/* * PROJECT: NyARToolkitAS3 * -------------------------------------------------------------------------------- * This work is based on the original ARToolKit developed by * Hirokazu Kato * Mark Billinghurst * HITLab, University of Washington, Seattle * http://www.hitl.washington.edu/artoolkit/ * * The NyARToolkitAS3 is AS3 edition ARToolKit class library. * Copyright (C)2010 Ryo Iizuka * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * For further information please contact. * http://nyatla.jp/nyatoolkit/ * or * */ package jp.nyatla.nyartoolkit.as3.nyidmarker.data { import jp.nyatla.nyartoolkit.as3.nyidmarker.*; import jp.nyatla.nyartoolkit.as3.nyidmarker.data.*; public class NyIdMarkerDataEncoder_RawBit implements INyIdMarkerDataEncoder { private static const _DOMAIN_ID:int=0; private static const _mod_data:Vector.=Vector.([7,31,127,511,2047,4095]); public function encode(i_data:NyIdMarkerPattern,o_dest:INyIdMarkerData):Boolean { var dest:NyIdMarkerData_RawBit=NyIdMarkerData_RawBit(o_dest); if(i_data.ctrl_domain!=_DOMAIN_ID){ return false; } //パケット数計算 var resolution_len:int = (i_data.model * 2 - 1); //trace("resolution", resolution_len); //データドット数が、「(2 * model値 - 1)^2」となり、この2乗の元となる値がresolution_lenで、 //パケット数は「(int)(データドット数 / 8) + 1」(最後に足す1はパケット0)となる var packet_length:int = (((resolution_len * resolution_len)) / 8) + 1; //trace("packet", packet_length); var sum:int = 0; for(var i:int=0;i