topical media & game development

talk show tell print

student-ar-org-libspark-flartoolkit-core-labeling-FLARLabelingLabelStack.ax

student-ar-org-libspark-flartoolkit-core-labeling-FLARLabelingLabelStack.ax [swf] flex


  /* 
   * PROJECT: FLARToolKit
   * --------------------------------------------------------------------------------
   * This work is based on the NyARToolKit developed by
   *   R.Iizuka (nyatla)
   * http://nyatla.jp/nyatoolkit/
   *
   * The FLARToolKit is ActionScript 3.0 version ARToolkit class library.
   * Copyright (C)2008 Saqoosha
   *
   * 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 2
   * 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 framework; if not, write to the Free Software
   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   * 
   * For further information please contact.
   *        http://www.libspark.org/wiki/saqoosha/FLARToolKit
   *        <saq(at)saqoosha.net>
   * 
   */
  
  package org.libspark.flartoolkit.core.labeling {
          import org.libspark.flartoolkit.utils.NyObjectStack;                                        
  
          
NyLabelの予約型動的配列

  
          public class @ax-student-ar-org-libspark-flartoolkit-core-labeling-FLARLabelingLabelStack extends NyObjectStack {
  
                  

parameter: i_label_array FLARLabelingLabel[]

  
                  //        protected function @ax-student-ar-org-libspark-flartoolkit-core-labeling-FLARLabelingLabelStack(i_label_array:Array)
                  //        {
                  //                super(i_label_array);                
                  //        }
                  public function @ax-student-ar-org-libspark-flartoolkit-core-labeling-FLARLabelingLabelStack(i_max_array_size:int) {
                          super(FLARLabelingLabel, i_max_array_size);
                  }
  
                  

parameter: i_start
parameter: i_end
parameter: i_buffer Object[]

  
  //                protected override function onReservRequest(i_start:int, i_end:int, i_buffer:Array):void {
  //                        for (var i:int = i_start; i < i_end; i++) {
  //                                i_buffer[i] = new FLARLabelingLabel();
  //                        }
  //                }
  
                  
エリアの大きい順にラベルをソートします。

  
                  public function sortByArea():void {
                          var len:int = this._length;
                          var h:int = len * 13 / 10;
                          var item:Array = this._items; // FLARLabelingLabel[]
                          
                          var swaps:int;
                          var temp:FLARLabelingLabel;
                          for(;;) {
                                  swaps = 0;
                                  for (var i:int = 0;i + h < len; i++) {
                                          if (item[i + h].area > item[i].area) {
                                                  temp = item[i + h];
                                                  item[i + h] = item[i];
                                                  item[i] = temp;
                                                  swaps++;
                                          }
                                  }
                                  if (h == 1) {
                                          if (swaps == 0) {
                                                  break;
                                          }
                                  }else {
                                          h = h * 10 / 13;
                                  }
                          }                
                  } 
          }
  }


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.