<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:dc="http://purl.org/dc/elements/1.1/">
 <channel>
  <pubDate>Sat, 21 Jan 2012 08:03:00 GMT</pubDate>
  <description>Releases headline of NyARToolkit(nyartoolkit) @ SourceForge.JP</description>
  <atom:link href="http://sourceforge.jp/projects/nyartoolkit/releases/rss" rel="self" type="application/rss+xml" />
  <link>http://sourceforge.jp/projects/nyartoolkit/releases/</link>
  <title>New Releases of NyARToolkit</title>
  <language>ja-jp</language>
  <item>
   <pubDate>Sat, 21 Jan 2012 08:03:00 GMT</pubDate>
   <title>nyar4psg NyARToolkit for processing - 1.1.7</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/54646</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/54646</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;A new function.&lt;br /&gt;&lt;br /&gt;MultiMarker.marker2ScreenCoordSystem&lt;br /&gt;&lt;br /&gt;This function converts a point on the marker coordinate system to the screen coordinate system.&lt;br /&gt;&lt;br /&gt;For example,&lt;br /&gt;&lt;br /&gt;MultiMarker.marker2ScreenCoordSystem(0,0,0,0) returns center of marker id #0 on screen.&lt;/p&gt;</description>
  </item>
  <item>
   <pubDate>Thu, 01 Dec 2011 15:14:00 GMT</pubDate>
   <title>NyWMCapture - 0.1.2</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/54041</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/54041</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description></description>
  </item>
  <item>
   <pubDate>Fri, 08 Jul 2011 07:37:00 GMT</pubDate>
   <title>nyar4psg NyARToolkit for processing - 1.1.6</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/52564</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/52564</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;* Add getProjectionMatrix function.&lt;br /&gt;* Add an example for useing OpenGL API.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
  </item>
  <item>
   <pubDate>Mon, 04 Jul 2011 00:44:00 GMT</pubDate>
   <title>nyar4psg NyARToolkit for processing - 1.1.5</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/52515</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/52515</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;1.Rename example folder to examples.&lt;br /&gt;2.Remove unused values in sample program.&lt;/p&gt;</description>
  </item>
  <item>
   <pubDate>Fri, 06 May 2011 06:51:00 GMT</pubDate>
   <title>nyar4psg NyARToolkit for processing - 1.1.4</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/51880</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/51880</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;* New 3 functions for Frustum setting and background drawing.(setARClipping,drawBackground,setbackgroundOrtho)&lt;br /&gt;* setARPerspective function type was changed to void from PMatrix3D.(The function dose not return old projection matrix.)&lt;br /&gt;&lt;/p&gt;</description>
  </item>
  <item>
   <pubDate>Sun, 24 Apr 2011 15:04:00 GMT</pubDate>
   <title>nyar4psg NyARToolkit for processing - 1.0.3</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/51763</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/51763</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;div class=&quot;wiki-compact&quot;&gt;&lt;p&gt;Feature
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The core library was updated to NyARToolkit/3.0.0 API
&lt;/li&gt;&lt;li&gt;New NyAR4psg was checked with Processing1.2. 
&lt;/li&gt;&lt;li&gt;P3D(Processing 3D) support. New NyAR4psg uses Processing core API only so it will support some extended PGraphics3D class.
&lt;/li&gt;&lt;li&gt;Some examples for new function.
&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://sourceforge.jp/projects/nyartoolkit/wiki/MultiMarker&quot;&gt;MultiMarker&lt;/a&gt; - It handles a few ARMarker and &lt;a href=&quot;http://sourceforge.jp/projects/nyartoolkit/wiki/NyIdMarker&quot;&gt;NyIdMarker&lt;/a&gt;  on same time.(example arPlusNyIdMarker,)
&lt;/li&gt;&lt;li&gt;The coordinate system. It can handle left-hand or right-hand.(example rotation)
&lt;/li&gt;&lt;li&gt;The marker plane image picking function. It pick up. (example imagePickup)
&lt;/li&gt;&lt;li&gt;The marker plane picking. It can convert screen position to marker position. (example markerPlane)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If your pde updates NyAR4psg then your pde needs a small repair.&lt;/p&gt;&lt;/div&gt;</description>
  </item>
  <item>
   <pubDate>Sun, 09 Jan 2011 17:21:00 GMT</pubDate>
   <title>NyARToolkit for C Sharp - 3.0.0</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/50542</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/50542</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;NyARToolkit-3.0.0　APIに対応。&lt;br /&gt;これに付随する更新の実施。&lt;/p&gt;</description>
  </item>
  <item>
   <pubDate>Fri, 31 Dec 2010 08:42:00 GMT</pubDate>
   <title>NyARToolkit for ActionScript3(Flash10) - 3.0.0</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/50398</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/50398</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;NyARToolkit/3.0.0のAPIを実装したものです。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;NyARToolkit/3.0.0と同じ変更のほかに、Flash版用の以下の拡張があります。&lt;br /&gt;----&lt;br /&gt;[NyARToolkitAS3独自の拡張]&lt;br /&gt;&lt;br /&gt;* BitmapDataをそのまま取り扱うRasterクラスを追加しました。 &lt;br /&gt;* BitmapData形式のGrayscaleRasterの仕様が変わりました。従来はRGB3チャンネルを使用していましたが、現在はBチャンネルのみを使用します。（そのまま表示すると青/黒のイメージが表示されます。）&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
  </item>
  <item>
   <pubDate>Fri, 31 Dec 2010 08:06:00 GMT</pubDate>
   <title>NyARToolkit for Java - NyARToolkit Core - 3.0.0</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/50397</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/50397</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;[機能修正]&lt;br /&gt;* 既存モジュールについて、若干の性能向上があります。&lt;br /&gt;* 既存モジュールについて、再現率の低い不具合をいくつか修正しました[機能変更]&lt;br /&gt;&lt;br /&gt;[機能変更]&lt;br /&gt;NyARToolkit/3.0.0では、ユーザアプリケーションを修正する必要がある変更を、多く実施しました。&lt;br /&gt;&lt;br /&gt;* 既存モジュールのプロジェクトを整理しました。utils,sampleのプロジェクトについて、前バージョンと互換性がなくなりました。&lt;br /&gt;* NyARToolkit.utils.jogl配下の関数仕様が大きく変わりました。&lt;br /&gt;* NyARToolkitモジュール内の関数で、多数の引数変更をしました。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[機能追加]&lt;br /&gt;NyARToolkit/3.0.0では、より簡単にARアプリケーションを作成するためのコードが追加されています。&lt;br /&gt;&lt;br /&gt;* RPF(RealityPlatform)モジュールを追加しました。このモジュールは、detectorやprocessorに代わるモジュールです。非同期マーカ特定、トラッキング、エッジベース検出、複数マーカ、同一種マーカの取り扱いなどができます。&lt;br /&gt;* BufferedImageをそのまま取り扱うRasterクラスを追加しました。&lt;br /&gt;&lt;br /&gt;[不具合]&lt;br /&gt;* RPFのトラッキング機能が不足しているため、平行移動するマーカを正しく追跡できないことがあります。&lt;br /&gt;* RPFの最適化が不十分であり、十分なパフォーマンスが出ないことがあります。&lt;/p&gt;</description>
  </item>
  <item>
   <pubDate>Thu, 27 May 2010 04:53:00 GMT</pubDate>
   <title>NyARToolkit for C++ - 2.5.4</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/47617</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/47617</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;div class=&quot;wiki-compact&quot;&gt;&lt;ul&gt;&lt;li&gt;2.5.3の機能
&lt;/li&gt;&lt;li&gt;チケット&lt;a href=&quot;http://sourceforge.jp/projects/nyartoolkit/tracker/detail/21948&quot; class=&quot;tracker&quot;&gt;#21948&lt;/a&gt;への対応
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://sourceforge.jp/projects/nyartoolkit/wiki/NyWin32Capture&quot;&gt;NyWin32Capture&lt;/a&gt;の同梱
&lt;/li&gt;&lt;li&gt;OpenGLサンプルの追加&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description>
  </item>
  <item>
   <pubDate>Sun, 23 May 2010 05:33:00 GMT</pubDate>
   <title>NyWin32Capture - 1.0.0</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/47561</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/47561</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;Windows向けのキャプチャデバイス制御ライブラリ。&lt;br /&gt;PSDK7.1対応&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;ChangeLog&lt;/h2&gt;&lt;p&gt;Capture device control library for Windows PSDK 7.1.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
  </item>
  <item>
   <pubDate>Tue, 27 Apr 2010 16:25:00 GMT</pubDate>
   <title>NyARToolkit for ActionScript3(Flash10) - 2.5.2</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/47191</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/47191</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;NyARToolkit/2.5.2への対応。&lt;/p&gt;</description>
  </item>
  <item>
   <pubDate>Mon, 26 Apr 2010 02:59:00 GMT</pubDate>
   <title>NyARToolkit for C Sharp - 2.5.2</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/47165</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/47165</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;== バージョンの追従&lt;br /&gt;* NyARToolkit for Java /2.5.2に追従しました。&lt;br /&gt;&lt;/p&gt;</description>
  </item>
  <item>
   <pubDate>Mon, 26 Apr 2010 02:52:00 GMT</pubDate>
   <title>NyARToolkit for Java - NyARToolkit Core - 2.5.2</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/47164</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/47164</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;== 重要なバグ修正&lt;br /&gt;* 射影変換行列の計算不具合による、パターン取得に失敗する問題を修正しました。小さめのマーカ、0,90,180,270度ぴったりの場合のマーカ認識性能が向上しています。&lt;br /&gt;&lt;br /&gt;==ラスタ処理系の引数変更&lt;br /&gt;* NyARRaster_BasicClassの引数を変更しました。影響を受けるクラスも修正が入ってます。&lt;br /&gt;&lt;br /&gt;==GLNyARRaster_RGBの廃止&lt;br /&gt;* GLNyARRaster_RGBを廃止しました。これにより、アプリケーションに若干変更を加える必要があります。GLNyARRaster_RGBの代わりに、JmfNyARRaster_RGBを使うようにして下さい。&lt;br /&gt;&lt;br /&gt;== その他&lt;br /&gt;* 細かいバグ修正&lt;br /&gt;* 説明書の微妙な更新&lt;br /&gt;* 静止画版のサンプルプログラム(JpegSimpleLite)を追加。&lt;/p&gt;</description>
  </item>
  <item>
   <pubDate>Tue, 09 Feb 2010 15:01:00 GMT</pubDate>
   <title>NyARToolkit for C Sharp - 2.5.1</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/45896</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/45896</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;div class=&quot;wiki-compact&quot;&gt;&lt;p&gt;* NyARToolkit for Java /2.5.1に対応。
* サンプルSingleARMarkerを追加&lt;/p&gt;&lt;/div&gt;</description>
  </item>
  <item>
   <pubDate>Sat, 06 Feb 2010 13:57:00 GMT</pubDate>
   <title>NyARToolkit for ActionScript3(Flash10) - 2.5.1</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/45837</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/45837</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;div class=&quot;wiki-compact&quot;&gt;&lt;p&gt;* NyARToolkit for Java/2.5.1 の反映
* FLARLaberingのバグ修正,NyARHistogramAnalyzer_SlidePTileのバグ修正&lt;/p&gt;&lt;/div&gt;</description>
  </item>
  <item>
   <pubDate>Tue, 02 Feb 2010 14:34:00 GMT</pubDate>
   <title>NyARToolkit for Java - NyARToolkit Core - 2.5.1</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/45779</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/45779</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;div class=&quot;wiki-compact&quot;&gt;&lt;p&gt;2.5.0のバグフィクス版です。
&lt;/p&gt;&lt;p&gt;* SingleARMarkerProcesserが複数マーカ登録時に正常動作しないバグを修正
* SingleARMarkerProcesserのサンプルを修正。２種のマーカーを扱うようにした。
* processorのサンプルが間違っていたので修正した。
* NyARDoubleMatrix34にsetValue関数(2)を追加
* &lt;a href=&quot;http://sourceforge.jp/projects/nyartoolkit/wiki/SingleMarkerProcessor&quot;&gt;SingleMarkerProcessor&lt;/a&gt;のsetConfidenceThreshold関数の引数ミスを修正
* refSquareを追加
* SingleARMarkerProcessorの認識敷居値の調整。&lt;/p&gt;&lt;/div&gt;</description>
  </item>
  <item>
   <pubDate>Sun, 31 Jan 2010 14:39:00 GMT</pubDate>
   <title>nyar4psg NyARToolkit for processing - 0.3.0</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/45702</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/45702</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;下記アップデートを行いました。&lt;br /&gt;&lt;br /&gt;+NyARToolkit/2.5.0+系に対応&lt;br /&gt;+ユースケースクラスSingleARTKMarker,SingleNyIdMarkerの追加&lt;br /&gt;+サンプルプログラムの修正。&lt;br /&gt;&lt;br /&gt;従来より、複数種類のマーカを取り扱いやすくなっています。&lt;br /&gt;&lt;/p&gt;</description>
  </item>
  <item>
   <pubDate>Tue, 19 Jan 2010 15:10:00 GMT</pubDate>
   <title>NyARToolkit for ActionScript3(Flash10) - 2.5.0</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/45528</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/45528</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;NyARToolkit for Java/2.5.0の追従版です。&lt;br /&gt;&lt;br /&gt;このモジュールは、FLARToolKitに2.5.0系APIを供給することを目的に実装したものです。FLARToolKitをご利用ください。&lt;br /&gt;&lt;br /&gt;※画処理関数の一部は省略しています。&lt;br /&gt;&lt;/p&gt;</description>
  </item>
  <item>
   <pubDate>Tue, 19 Jan 2010 15:08:00 GMT</pubDate>
   <title>NyARToolkit for C Sharp - 2.5.0</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/45527</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/45527</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;NyARToolkit for Java/2.5.0の機能を追従しました。&lt;/p&gt;</description>
  </item>
  <item>
   <pubDate>Tue, 19 Jan 2010 14:59:00 GMT</pubDate>
   <title>NyARToolkit for Java - NyARToolkit Core - 2.5.0</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/45526</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/45526</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;div class=&quot;wiki-compact&quot;&gt;&lt;p&gt;2.5.0では、ラスタ管理方式の変更、NyARSquareのメンバ変数調整、NyARTransmatの機能調整を行いました。また、histogramのスペルミスの修正も行いました。
&lt;/p&gt;&lt;h3 id=&quot;h3-.E3.82.B9.E3.83.9A.E3.83.AB.E3.83.9F.E3.82.B9.E4.BF.AE.E6.AD.A3&quot;&gt;スペルミス修正&lt;/h3&gt;&lt;p&gt;クラス名、変数名などのHistgramをHistogramに修正しました。
&lt;/p&gt;&lt;h3 id=&quot;h3-.E3.83.97.E3.83.AC.E3.83.95.E3.82.A3.E3.82.AF.E3.82.B9.22NyAR.22.E3.82.92.E3.82.AF.E3.83.A9.E3.82.B9.E5.90.8D.E3.81.AB.E8.A3.9C.E5.AE.8C&quot;&gt;プレフィクス&amp;quot;NyAR&amp;quot;をクラス名に補完&lt;/h3&gt;&lt;p&gt;&lt;a href=&quot;http://sourceforge.jp/projects/nyartoolkit/wiki/NyObjectStack&quot;&gt;NyObjectStack&lt;/a&gt;-&amp;gt;NyARObjectStack, &lt;a href=&quot;http://sourceforge.jp/projects/nyartoolkit/wiki/LabelOverlapChecker&quot;&gt;LabelOverlapChecker&lt;/a&gt;→NyARLabelOverlapChecker, &lt;a href=&quot;http://sourceforge.jp/projects/nyartoolkit/wiki/RleLabelFragmentInfoStack&quot;&gt;RleLabelFragmentInfoStack&lt;/a&gt;→NyARRleLabelFragmentInfoStack, &lt;a href=&quot;http://sourceforge.jp/projects/nyartoolkit/wiki/ContourPickup&quot;&gt;ContourPickup&lt;/a&gt;→NyARContourPickup, &lt;a href=&quot;http://sourceforge.jp/projects/nyartoolkit/wiki/Coord2Linear&quot;&gt;Coord2Linear&lt;/a&gt;→NyARCoord2Linear, &lt;a href=&quot;http://sourceforge.jp/projects/nyartoolkit/wiki/Coord2SquareVertexIndexes&quot;&gt;Coord2SquareVertexIndexes&lt;/a&gt;→NyARCoord2SquareVertexIndexes
&lt;/p&gt;&lt;h3 id=&quot;h3-.E3.83.A9.E3.82.B9.E3.82.BF.E7.AE.A1.E7.90.86.E6.96.B9.E5.BC.8F.E3.81.AE.E5.A4.89.E6.9B.B4&quot;&gt;ラスタ管理方式の変更&lt;/h3&gt;&lt;p&gt;* INyARBufferReaderを廃止し、INyARRasterへ統合しました。
* バッファタイプの定義を、INyARBufferReaderからNyARBufferTypeへ移動しました。
* INyARRaster派生のクラスの生成方式を変更しました。バッファを所有する/しないを選択できるようになります。
* プラットフォーム固有のバッファタイプ値を定義できるようになりました。
* 以上の変更に関連する、すべての派生クラス、参照クラスを修正しました。
&lt;/p&gt;&lt;h3 id=&quot;h3-NyARBiinRaster.E3.80.81NyARGrayscaleRaster.E3.81.AE.E3.83.90.E3.83.83.E3.83.95.E3.82.A1.E3.82.BF.E3.82.A4.E3.83.97.E5.A4.9A.E9.87.8D.E5.8C.96&quot;&gt;NyARBiinRaster、NyARGrayscaleRasterのバッファタイプ多重化&lt;/h3&gt;&lt;p&gt;* NyARBiinRaster、NyARGrayscaleRasterの所有するバッファのタイプを変更可能にしました。これにより、プラットフォーム固有のラスタバッファを所有するクラスを作成可能になります。
&lt;/p&gt;&lt;h3 id=&quot;h3-NyARSquare.E3.81.AEdirection.2Fimvertex.E3.81.AE.E5.BB.83.E6.AD.A2&quot;&gt;NyARSquareのdirection/imvertexの廃止&lt;/h3&gt;&lt;p&gt;* NyARSquareのimvertex[],directionメンバを廃止しました。
新しいNyARSquareDetector_xxxは、directionによる頂点順位指定を反映したNyARSquareを出力します。
&lt;/p&gt;&lt;h3 id=&quot;h3-NyARTransMat.E3.82.AF.E3.83.A9.E3.82.B9.E3.81.AE.E5.BC.95.E6.95.B0.E3.83.BB.E3.83.A1.E3.83.B3.E3.83.90.E9.96.A2.E6.95.B0.E5.A4.89.E6.9B.B4&quot;&gt;NyARTransMatクラスの引数・メンバ関数変更&lt;/h3&gt;&lt;p&gt;* NyARSquareのdirection廃止に伴い、関数を削除しました。
* setCenter関数を削除しました。
* transMat関数の引数から、direction,widthを削除し、offset(矩形の３次元空間オフセット)を追加しました。
&lt;/p&gt;&lt;h3 id=&quot;h3-.E3.81.9D.E3.81.AE.E4.BB.96&quot;&gt;その他&lt;/h3&gt;&lt;p&gt;* &lt;a href=&quot;http://sourceforge.jp/projects/nyartoolkit/wiki/NyObjectStack&quot;&gt;NyObjectStack&lt;/a&gt;をNyARObjectStackに変更し、メモリの確保タイミングを変更しました。
* NyARSquareDetectorの修正に伴い、detector/processorクラスを修正しました。
* トラッキング処理の実験プログラムをTestに追加しました。
&lt;/p&gt;&lt;/div&gt;</description>
  </item>
  <item>
   <pubDate>Mon, 07 Dec 2009 14:14:00 GMT</pubDate>
   <title>NyARToolkit for Java - NyARToolkit Core - 2.4.2</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/44810</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/44810</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;NyARToolkit for Java/2.4.1のバグフィクスです。&lt;br /&gt;&lt;br /&gt;== バグ修正&lt;br /&gt;&lt;br /&gt; * TransformedBitmapPickupのアクセスレベルが間違っていたのを修正。&lt;br /&gt; * NyARHistgramAnalyzer_SlidePTileの継承忘れを修正&lt;br /&gt; * NyObjectStackの移動と、DoubleValue,Intvalueクラスの削除&lt;br /&gt; * jp.nyatla.utils以下を、jp.nyatla.nyartoolkit.utilsへ移動。&lt;/p&gt;</description>
  </item>
  <item>
   <pubDate>Mon, 07 Dec 2009 13:08:00 GMT</pubDate>
   <title>NyARToolkit for C Sharp - 2.4.1</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/44808</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/44808</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;div class=&quot;wiki-compact&quot;&gt;&lt;p&gt;NyARToolkit for Java/2.4.2の追従版です。他に、C#版のみのバグフィクスも含みます。
&lt;/p&gt;&lt;h3 id=&quot;h3-.E3.83.90.E3.82.B0.E3.83.95.E3.82.A3.E3.82.AF.E3.82.B9&quot;&gt;バグフィクス&lt;/h3&gt;&lt;div class=&quot;indent&quot;&gt;*&lt;a href=&quot;http://sourceforge.jp/projects/nyartoolkit/wiki/NyId&quot;&gt;NyId&lt;/a&gt;マーカの認識系が動作しない不具合を解消しました。&lt;/div&gt;&lt;/div&gt;</description>
  </item>
  <item>
   <pubDate>Sun, 01 Nov 2009 15:55:00 GMT</pubDate>
   <title>NyARToolkit for C++ - 2.4.0</title>
   <link>http://sourceforge.jp/projects/nyartoolkit/releases/44261</link>
   <guid>http://sourceforge.jp/projects/nyartoolkit/releases/44261</guid>
   <dc:creator>nyatla (nyatla)</dc:creator>
   <description>&lt;h2&gt;ReleaseNote&lt;/h2&gt;&lt;p&gt;Update for NyARToolkit/2.4.0&lt;br /&gt;&lt;br /&gt;Update Alchemymaster and Alchemy-bind module.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;ChangeLog&lt;/h2&gt;&lt;p&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/LICENCE.txt&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/LICENCE.txt	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/LICENCE.txt	(revision 335)&lt;br /&gt;@@ -1,10 +1,10 @@&lt;br /&gt;-ARToolkit Java class library NyARToolkitCS.&lt;br /&gt;+ARToolkit C++ class library NyARToolkitCPP.&lt;br /&gt; Copyright (C)2008 R.Iizuka&lt;br /&gt; &lt;br /&gt;-This program is free software; you can redistribute it and/or&lt;br /&gt;-modify it under the terms of the GNU General Public License&lt;br /&gt;-as published by the Free Software Foundation; either version 2&lt;br /&gt;-of the License, or (at your option) any later version.&lt;br /&gt;+This program is free software: you can redistribute it and/or modify&lt;br /&gt;+it under the terms of the GNU General Public License as published by&lt;br /&gt;+the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+(at your option) any later version.&lt;br /&gt; &lt;br /&gt; This program is distributed in the hope that it will be useful,&lt;br /&gt; but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;@@ -12,24 +12,21 @@&lt;br /&gt; GNU General Public License for more details.&lt;br /&gt; &lt;br /&gt; You should have received a copy of the GNU General Public License&lt;br /&gt;-along with this program; if not, write to the Free Software&lt;br /&gt;-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.&lt;br /&gt;+along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt; &lt;br /&gt;  &lt;br /&gt; &lt;br /&gt;-C#版 NyARToolkit クラスライブラリ NyARToolkitCS&lt;br /&gt;-Copyright (C)2008  R.Iizuka&lt;br /&gt;+C++ NyARToolkit クラスライブラリ NyARToolkitCS&lt;br /&gt;+Copyright (C)2008-2009  Ryo Iizuka&lt;br /&gt; &lt;br /&gt;-このプログラムはフリーソフトウェアです。あなたはこれを、フリーソフトウェ&lt;br /&gt;-ア財団によって発行された GNU 一般公衆利用許諾契約書(バージョン2か、希&lt;br /&gt;-望によってはそれ以降のバージョンのうちどれか)の定める条件の下で再頒布&lt;br /&gt;-または改変することができます。&lt;br /&gt;+このプログラムはフリーソフトウェアです。あなたはこれを、フリーソフトウェア&lt;br /&gt;+財団によって発行されたGNU 一般公衆利用許諾書(バージョン3か、それ以降のバー&lt;br /&gt;+ジョンのうちどれか)が定める条件の下で再頒布または改変 することができます。&lt;br /&gt; &lt;br /&gt;-このプログラムは有用であることを願って頒布されますが、*全くの無保証* &lt;br /&gt;-です。商業可能性の保証や特定の目的への適合性は、言外に示されたものも含&lt;br /&gt;-め全く存在しません。詳しくはGNU 一般公衆利用許諾契約書をご覧ください。&lt;br /&gt;-     &lt;br /&gt;-あなたはこのプログラムと共に、GNU 一般公衆利用許諾契約書の複製物を一部&lt;br /&gt;-受け取ったはずです。もし受け取っていなければ、フリーソフトウェア財団ま&lt;br /&gt;-で請求してください(宛先は the Free Software Foundation, Inc., 59&lt;br /&gt;-Temple Place, Suite 330, Boston, MA 02111-1307 USA)。&lt;br /&gt;\ No newline at end of file&lt;br /&gt;+このプログラムは有用であることを願って頒布されますが、*全くの無保証 *です。&lt;br /&gt;+商業可能性の保証や特定目的への適合性は、言外に示されたものも 含め、全く存&lt;br /&gt;+在しません。詳しくはGNU 一般公衆利用許諾書をご覧ください。&lt;br /&gt;+&lt;br /&gt;+あなたはこのプログラムと共に、GNU 一般公衆利用許諾書のコピーを一部受け取って&lt;br /&gt;+いるはずです。もし受け取っていなければ、&amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt; を&lt;br /&gt;+ご覧ください。 &lt;br /&gt;\ No newline at end of file&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolkitCPP/NyARToolkitCPP.vcproj&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolkitCPP/NyARToolkitCPP.vcproj	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolkitCPP/NyARToolkitCPP.vcproj	(revision 335)&lt;br /&gt;@@ -163,14 +163,6 @@&lt;br /&gt; 					Name=&amp;quot;nyartoolkit&amp;quot;&lt;br /&gt; 					&amp;gt;&lt;br /&gt; 					&amp;lt;File&lt;br /&gt;-						RelativePath=&amp;quot;..\..\src\core\NyARColorPatt_Perspective.cpp&amp;quot;&lt;br /&gt;-						&amp;gt;&lt;br /&gt;-					&amp;lt;/File&amp;gt;&lt;br /&gt;-					&amp;lt;File&lt;br /&gt;-						RelativePath=&amp;quot;..\..\inc\core\NyARColorPatt_Perspective.h&amp;quot;&lt;br /&gt;-						&amp;gt;&lt;br /&gt;-					&amp;lt;/File&amp;gt;&lt;br /&gt;-					&amp;lt;File&lt;br /&gt; 						RelativePath=&amp;quot;..\..\src\core\NyARColorPatt_PseudoAffine.cpp&amp;quot;&lt;br /&gt; 						&amp;gt;&lt;br /&gt; 					&amp;lt;/File&amp;gt;&lt;br /&gt;@@ -206,14 +198,6 @@&lt;br /&gt; 						Name=&amp;quot;core&amp;quot;&lt;br /&gt; 						&amp;gt;&lt;br /&gt; 						&amp;lt;File&lt;br /&gt;-							RelativePath=&amp;quot;..\..\src\core\INyARSquareDetector.cpp&amp;quot;&lt;br /&gt;-							&amp;gt;&lt;br /&gt;-						&amp;lt;/File&amp;gt;&lt;br /&gt;-						&amp;lt;File&lt;br /&gt;-							RelativePath=&amp;quot;..\..\inc\core\INyARSquareDetector.h&amp;quot;&lt;br /&gt;-							&amp;gt;&lt;br /&gt;-						&amp;lt;/File&amp;gt;&lt;br /&gt;-						&amp;lt;File&lt;br /&gt; 							RelativePath=&amp;quot;..\..\src\core\NyARCode.cpp&amp;quot;&lt;br /&gt; 							&amp;gt;&lt;br /&gt; 						&amp;lt;/File&amp;gt;&lt;br /&gt;@@ -242,30 +226,6 @@&lt;br /&gt; 							&amp;gt;&lt;br /&gt; 						&amp;lt;/File&amp;gt;&lt;br /&gt; 						&amp;lt;File&lt;br /&gt;-							RelativePath=&amp;quot;..\..\src\core\NyARSquare.cpp&amp;quot;&lt;br /&gt;-							&amp;gt;&lt;br /&gt;-						&amp;lt;/File&amp;gt;&lt;br /&gt;-						&amp;lt;File&lt;br /&gt;-							RelativePath=&amp;quot;..\..\inc\core\NyARSquare.h&amp;quot;&lt;br /&gt;-							&amp;gt;&lt;br /&gt;-						&amp;lt;/File&amp;gt;&lt;br /&gt;-						&amp;lt;File&lt;br /&gt;-							RelativePath=&amp;quot;..\..\src\core\NyARSquareDetector.cpp&amp;quot;&lt;br /&gt;-							&amp;gt;&lt;br /&gt;-						&amp;lt;/File&amp;gt;&lt;br /&gt;-						&amp;lt;File&lt;br /&gt;-							RelativePath=&amp;quot;..\..\inc\core\NyARSquareDetector.h&amp;quot;&lt;br /&gt;-							&amp;gt;&lt;br /&gt;-						&amp;lt;/File&amp;gt;&lt;br /&gt;-						&amp;lt;File&lt;br /&gt;-							RelativePath=&amp;quot;..\..\src\core\NyARSquareStack.cpp&amp;quot;&lt;br /&gt;-							&amp;gt;&lt;br /&gt;-						&amp;lt;/File&amp;gt;&lt;br /&gt;-						&amp;lt;File&lt;br /&gt;-							RelativePath=&amp;quot;..\..\inc\core\NyARSquareStack.h&amp;quot;&lt;br /&gt;-							&amp;gt;&lt;br /&gt;-						&amp;lt;/File&amp;gt;&lt;br /&gt;-						&amp;lt;File&lt;br /&gt; 							RelativePath=&amp;quot;..\..\src\core\NyARVec.cpp&amp;quot;&lt;br /&gt; 							&amp;gt;&lt;br /&gt; 						&amp;lt;/File&amp;gt;&lt;br /&gt;@@ -273,14 +233,6 @@&lt;br /&gt; 							RelativePath=&amp;quot;..\..\inc\core\NyARVec.h&amp;quot;&lt;br /&gt; 							&amp;gt;&lt;br /&gt; 						&amp;lt;/File&amp;gt;&lt;br /&gt;-						&amp;lt;File&lt;br /&gt;-							RelativePath=&amp;quot;..\..\src\core\NyARVertexCounter.cpp&amp;quot;&lt;br /&gt;-							&amp;gt;&lt;br /&gt;-						&amp;lt;/File&amp;gt;&lt;br /&gt;-						&amp;lt;File&lt;br /&gt;-							RelativePath=&amp;quot;..\..\inc\core\NyARVertexCounter.h&amp;quot;&lt;br /&gt;-							&amp;gt;&lt;br /&gt;-						&amp;lt;/File&amp;gt;&lt;br /&gt; 						&amp;lt;Filter&lt;br /&gt; 							Name=&amp;quot;types&amp;quot;&lt;br /&gt; 							&amp;gt;&lt;br /&gt;@@ -521,53 +473,85 @@&lt;br /&gt; 							Name=&amp;quot;labeling&amp;quot;&lt;br /&gt; 							&amp;gt;&lt;br /&gt; 							&amp;lt;File&lt;br /&gt;-								RelativePath=&amp;quot;..\..\src\core\INyARLabeling.cpp&amp;quot;&lt;br /&gt;+								RelativePath=&amp;quot;..\..\src\core\LabelOverlapChecker.cpp&amp;quot;&lt;br /&gt; 								&amp;gt;&lt;br /&gt; 							&amp;lt;/File&amp;gt;&lt;br /&gt; 							&amp;lt;File&lt;br /&gt;-								RelativePath=&amp;quot;..\..\inc\core\INyARLabeling.h&amp;quot;&lt;br /&gt;+								RelativePath=&amp;quot;..\..\inc\core\LabelOverlapChecker.h&amp;quot;&lt;br /&gt; 								&amp;gt;&lt;br /&gt; 							&amp;lt;/File&amp;gt;&lt;br /&gt; 							&amp;lt;File&lt;br /&gt;-								RelativePath=&amp;quot;..\..\src\core\INyARLabelingImage.cpp&amp;quot;&lt;br /&gt;+								RelativePath=&amp;quot;..\..\src\core\NyARLabelInfo.cpp&amp;quot;&lt;br /&gt; 								&amp;gt;&lt;br /&gt; 							&amp;lt;/File&amp;gt;&lt;br /&gt; 							&amp;lt;File&lt;br /&gt;-								RelativePath=&amp;quot;..\..\inc\core\INyARLabelingImage.h&amp;quot;&lt;br /&gt;+								RelativePath=&amp;quot;..\..\inc\core\NyARLabelInfo.h&amp;quot;&lt;br /&gt; 								&amp;gt;&lt;br /&gt; 							&amp;lt;/File&amp;gt;&lt;br /&gt; 							&amp;lt;File&lt;br /&gt;-								RelativePath=&amp;quot;..\..\src\core\NyARLabeling_ARToolKit.cpp&amp;quot;&lt;br /&gt;+								RelativePath=&amp;quot;..\..\src\core\NyARLabelInfoStack.cpp&amp;quot;&lt;br /&gt; 								&amp;gt;&lt;br /&gt; 							&amp;lt;/File&amp;gt;&lt;br /&gt; 							&amp;lt;File&lt;br /&gt;-								RelativePath=&amp;quot;..\..\inc\core\NyARLabeling_ARToolKit.h&amp;quot;&lt;br /&gt;+								RelativePath=&amp;quot;..\..\inc\core\NyARLabelInfoStack.h&amp;quot;&lt;br /&gt; 								&amp;gt;&lt;br /&gt; 							&amp;lt;/File&amp;gt;&lt;br /&gt;-							&amp;lt;File&lt;br /&gt;-								RelativePath=&amp;quot;..\..\src\core\NyARLabelingImage.cpp&amp;quot;&lt;br /&gt;+							&amp;lt;Filter&lt;br /&gt;+								Name=&amp;quot;rlelabeling&amp;quot;&lt;br /&gt; 								&amp;gt;&lt;br /&gt;-							&amp;lt;/File&amp;gt;&lt;br /&gt;-							&amp;lt;File&lt;br /&gt;-								RelativePath=&amp;quot;..\..\inc\core\NyARLabelingImage.h&amp;quot;&lt;br /&gt;+								&amp;lt;File&lt;br /&gt;+									RelativePath=&amp;quot;..\..\src\core\NyARLabeling_Rle.cpp&amp;quot;&lt;br /&gt;+									&amp;gt;&lt;br /&gt;+								&amp;lt;/File&amp;gt;&lt;br /&gt;+								&amp;lt;File&lt;br /&gt;+									RelativePath=&amp;quot;..\..\inc\core\NyARLabeling_Rle.h&amp;quot;&lt;br /&gt;+									&amp;gt;&lt;br /&gt;+								&amp;lt;/File&amp;gt;&lt;br /&gt;+								&amp;lt;File&lt;br /&gt;+									RelativePath=&amp;quot;..\..\src\core\RleLabelFragmentInfoStack.cpp&amp;quot;&lt;br /&gt;+									&amp;gt;&lt;br /&gt;+								&amp;lt;/File&amp;gt;&lt;br /&gt;+								&amp;lt;File&lt;br /&gt;+									RelativePath=&amp;quot;..\..\inc\core\RleLabelFragmentInfoStack.h&amp;quot;&lt;br /&gt;+									&amp;gt;&lt;br /&gt;+								&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;/Filter&amp;gt;&lt;br /&gt;+							&amp;lt;Filter&lt;br /&gt;+								Name=&amp;quot;artoolkit&amp;quot;&lt;br /&gt; 								&amp;gt;&lt;br /&gt;-							&amp;lt;/File&amp;gt;&lt;br /&gt;-							&amp;lt;File&lt;br /&gt;-								RelativePath=&amp;quot;..\..\src\core\NyARLabelingLabel.cpp&amp;quot;&lt;br /&gt;-								&amp;gt;&lt;br /&gt;-							&amp;lt;/File&amp;gt;&lt;br /&gt;-							&amp;lt;File&lt;br /&gt;-								RelativePath=&amp;quot;..\..\inc\core\NyARLabelingLabel.h&amp;quot;&lt;br /&gt;-								&amp;gt;&lt;br /&gt;-							&amp;lt;/File&amp;gt;&lt;br /&gt;-							&amp;lt;File&lt;br /&gt;-								RelativePath=&amp;quot;..\..\src\core\NyARLabelingLabelStack.cpp&amp;quot;&lt;br /&gt;-								&amp;gt;&lt;br /&gt;-							&amp;lt;/File&amp;gt;&lt;br /&gt;-							&amp;lt;File&lt;br /&gt;-								RelativePath=&amp;quot;..\..\inc\core\NyARLabelingLabelStack.h&amp;quot;&lt;br /&gt;-								&amp;gt;&lt;br /&gt;-							&amp;lt;/File&amp;gt;&lt;br /&gt;+								&amp;lt;File&lt;br /&gt;+									RelativePath=&amp;quot;..\..\src\core\NyARLabeling_ARToolKit.cpp&amp;quot;&lt;br /&gt;+									&amp;gt;&lt;br /&gt;+								&amp;lt;/File&amp;gt;&lt;br /&gt;+								&amp;lt;File&lt;br /&gt;+									RelativePath=&amp;quot;..\..\inc\core\NyARLabeling_ARToolKit.h&amp;quot;&lt;br /&gt;+									&amp;gt;&lt;br /&gt;+								&amp;lt;/File&amp;gt;&lt;br /&gt;+								&amp;lt;File&lt;br /&gt;+									RelativePath=&amp;quot;..\..\src\core\NyARLabelingImage.cpp&amp;quot;&lt;br /&gt;+									&amp;gt;&lt;br /&gt;+								&amp;lt;/File&amp;gt;&lt;br /&gt;+								&amp;lt;File&lt;br /&gt;+									RelativePath=&amp;quot;..\..\inc\core\NyARLabelingImage.h&amp;quot;&lt;br /&gt;+									&amp;gt;&lt;br /&gt;+								&amp;lt;/File&amp;gt;&lt;br /&gt;+								&amp;lt;File&lt;br /&gt;+									RelativePath=&amp;quot;..\..\src\core\NyARLabelingLabel.cpp&amp;quot;&lt;br /&gt;+									&amp;gt;&lt;br /&gt;+								&amp;lt;/File&amp;gt;&lt;br /&gt;+								&amp;lt;File&lt;br /&gt;+									RelativePath=&amp;quot;..\..\inc\core\NyARLabelingLabel.h&amp;quot;&lt;br /&gt;+									&amp;gt;&lt;br /&gt;+								&amp;lt;/File&amp;gt;&lt;br /&gt;+								&amp;lt;File&lt;br /&gt;+									RelativePath=&amp;quot;..\..\src\core\NyARLabelingLabelStack.cpp&amp;quot;&lt;br /&gt;+									&amp;gt;&lt;br /&gt;+								&amp;lt;/File&amp;gt;&lt;br /&gt;+								&amp;lt;File&lt;br /&gt;+									RelativePath=&amp;quot;..\..\inc\core\NyARLabelingLabelStack.h&amp;quot;&lt;br /&gt;+									&amp;gt;&lt;br /&gt;+								&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;/Filter&amp;gt;&lt;br /&gt; 						&amp;lt;/Filter&amp;gt;&lt;br /&gt; 						&amp;lt;Filter&lt;br /&gt; 							Name=&amp;quot;param&amp;quot;&lt;br /&gt;@@ -669,18 +653,6 @@&lt;br /&gt; 								&amp;gt;&lt;br /&gt; 							&amp;lt;/File&amp;gt;&lt;br /&gt; 							&amp;lt;Filter&lt;br /&gt;-								Name=&amp;quot;fitveccalc&amp;quot;&lt;br /&gt;-								&amp;gt;&lt;br /&gt;-								&amp;lt;File&lt;br /&gt;-									RelativePath=&amp;quot;..\..\src\core\NyARFitVecCalculator.cpp&amp;quot;&lt;br /&gt;-									&amp;gt;&lt;br /&gt;-								&amp;lt;/File&amp;gt;&lt;br /&gt;-								&amp;lt;File&lt;br /&gt;-									RelativePath=&amp;quot;..\..\inc\core\NyARFitVecCalculator.h&amp;quot;&lt;br /&gt;-									&amp;gt;&lt;br /&gt;-								&amp;lt;/File&amp;gt;&lt;br /&gt;-							&amp;lt;/Filter&amp;gt;&lt;br /&gt;-							&amp;lt;Filter&lt;br /&gt; 								Name=&amp;quot;rotmatrix&amp;quot;&lt;br /&gt; 								&amp;gt;&lt;br /&gt; 								&amp;lt;File&lt;br /&gt;@@ -700,11 +672,11 @@&lt;br /&gt; 									&amp;gt;&lt;br /&gt; 								&amp;lt;/File&amp;gt;&lt;br /&gt; 								&amp;lt;File&lt;br /&gt;-									RelativePath=&amp;quot;..\..\src\core\NyARRotMatrix_NyARToolKit.cpp&amp;quot;&lt;br /&gt;+									RelativePath=&amp;quot;..\..\src\core\NyARRotMatrix_ARToolKit_O2.cpp&amp;quot;&lt;br /&gt; 									&amp;gt;&lt;br /&gt; 								&amp;lt;/File&amp;gt;&lt;br /&gt; 								&amp;lt;File&lt;br /&gt;-									RelativePath=&amp;quot;..\..\inc\core\NyARRotMatrix_NyARToolKit.h&amp;quot;&lt;br /&gt;+									RelativePath=&amp;quot;..\..\inc\core\NyARRotMatrix_ARToolKit_O2.h&amp;quot;&lt;br /&gt; 									&amp;gt;&lt;br /&gt; 								&amp;lt;/File&amp;gt;&lt;br /&gt; 								&amp;lt;File&lt;br /&gt;@@ -720,21 +692,53 @@&lt;br /&gt; 								Name=&amp;quot;optimize&amp;quot;&lt;br /&gt; 								&amp;gt;&lt;br /&gt; 								&amp;lt;File&lt;br /&gt;-									RelativePath=&amp;quot;..\..\src\core\INyARRotTransOptimize.cpp&amp;quot;&lt;br /&gt;+									RelativePath=&amp;quot;..\..\src\core\NyARPartialDifferentiationOptimize.cpp&amp;quot;&lt;br /&gt; 									&amp;gt;&lt;br /&gt; 								&amp;lt;/File&amp;gt;&lt;br /&gt; 								&amp;lt;File&lt;br /&gt;-									RelativePath=&amp;quot;..\..\inc\core\INyARRotTransOptimize.h&amp;quot;&lt;br /&gt;+									RelativePath=&amp;quot;..\..\inc\core\NyARPartialDifferentiationOptimize.h&amp;quot;&lt;br /&gt; 									&amp;gt;&lt;br /&gt; 								&amp;lt;/File&amp;gt;&lt;br /&gt;+								&amp;lt;Filter&lt;br /&gt;+									Name=&amp;quot;artoolkit&amp;quot;&lt;br /&gt;+									&amp;gt;&lt;br /&gt;+									&amp;lt;File&lt;br /&gt;+										RelativePath=&amp;quot;..\..\src\core\INyARRotTransOptimize.cpp&amp;quot;&lt;br /&gt;+										&amp;gt;&lt;br /&gt;+									&amp;lt;/File&amp;gt;&lt;br /&gt;+									&amp;lt;File&lt;br /&gt;+										RelativePath=&amp;quot;..\..\inc\core\INyARRotTransOptimize.h&amp;quot;&lt;br /&gt;+										&amp;gt;&lt;br /&gt;+									&amp;lt;/File&amp;gt;&lt;br /&gt;+									&amp;lt;File&lt;br /&gt;+										RelativePath=&amp;quot;..\..\src\core\NyARRotTransOptimize_O2.cpp&amp;quot;&lt;br /&gt;+										&amp;gt;&lt;br /&gt;+									&amp;lt;/File&amp;gt;&lt;br /&gt;+									&amp;lt;File&lt;br /&gt;+										RelativePath=&amp;quot;..\..\inc\core\NyARRotTransOptimize_O2.h&amp;quot;&lt;br /&gt;+										&amp;gt;&lt;br /&gt;+									&amp;lt;/File&amp;gt;&lt;br /&gt;+								&amp;lt;/Filter&amp;gt;&lt;br /&gt;+							&amp;lt;/Filter&amp;gt;&lt;br /&gt;+							&amp;lt;Filter&lt;br /&gt;+								Name=&amp;quot;solver&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt; 								&amp;lt;File&lt;br /&gt;-									RelativePath=&amp;quot;..\..\src\core\NyARRotTransOptimize_O2.cpp&amp;quot;&lt;br /&gt;+									RelativePath=&amp;quot;..\..\src\core\INyARTransportVectorSolver.cpp&amp;quot;&lt;br /&gt; 									&amp;gt;&lt;br /&gt; 								&amp;lt;/File&amp;gt;&lt;br /&gt; 								&amp;lt;File&lt;br /&gt;-									RelativePath=&amp;quot;..\..\inc\core\NyARRotTransOptimize_O2.h&amp;quot;&lt;br /&gt;+									RelativePath=&amp;quot;..\..\inc\core\INyARTransportVectorSolver.h&amp;quot;&lt;br /&gt; 									&amp;gt;&lt;br /&gt; 								&amp;lt;/File&amp;gt;&lt;br /&gt;+								&amp;lt;File&lt;br /&gt;+									RelativePath=&amp;quot;..\..\src\core\NyARTransportVectorSolver.cpp&amp;quot;&lt;br /&gt;+									&amp;gt;&lt;br /&gt;+								&amp;lt;/File&amp;gt;&lt;br /&gt;+								&amp;lt;File&lt;br /&gt;+									RelativePath=&amp;quot;..\..\inc\core\NyARTransportVectorSolver.h&amp;quot;&lt;br /&gt;+									&amp;gt;&lt;br /&gt;+								&amp;lt;/File&amp;gt;&lt;br /&gt; 							&amp;lt;/Filter&amp;gt;&lt;br /&gt; 						&amp;lt;/Filter&amp;gt;&lt;br /&gt; 						&amp;lt;Filter&lt;br /&gt;@@ -792,11 +796,35 @@&lt;br /&gt; 								RelativePath=&amp;quot;..\..\inc\core\NyARColorPatt_O3.h&amp;quot;&lt;br /&gt; 								&amp;gt;&lt;br /&gt; 							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\src\core\NyARColorPatt_Perspective.cpp&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\inc\core\NyARColorPatt_Perspective.h&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\src\core\NyARColorPatt_Perspective_O2.cpp&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\inc\core\NyARColorPatt_Perspective_O2.h&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt; 						&amp;lt;/Filter&amp;gt;&lt;br /&gt; 						&amp;lt;Filter&lt;br /&gt; 							Name=&amp;quot;utils&amp;quot;&lt;br /&gt; 							&amp;gt;&lt;br /&gt; 							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\src\core\NyAREquationSolver.cpp&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\inc\core\NyAREquationSolver.h&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt; 								RelativePath=&amp;quot;..\..\src\core\NyARPerspectiveParamGenerator.cpp&amp;quot;&lt;br /&gt; 								&amp;gt;&lt;br /&gt; 							&amp;lt;/File&amp;gt;&lt;br /&gt;@@ -813,6 +841,74 @@&lt;br /&gt; 								&amp;gt;&lt;br /&gt; 							&amp;lt;/File&amp;gt;&lt;br /&gt; 						&amp;lt;/Filter&amp;gt;&lt;br /&gt;+						&amp;lt;Filter&lt;br /&gt;+							Name=&amp;quot;squaredetector&amp;quot;&lt;br /&gt;+							&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\src\core\ContourPickup.cpp&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\inc\core\ContourPickup.h&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\src\core\INyARSquareDetector.cpp&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\inc\core\INyARSquareDetector.h&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\src\core\NyARSquare.cpp&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\inc\core\NyARSquare.h&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\src\core\NyARSquareDetector_ARToolKit.cpp&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\inc\core\NyARSquareDetector_ARToolKit.h&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\src\core\NyARSquareDetector_Rle.cpp&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\inc\core\NyARSquareDetector_Rle.h&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\src\core\NyARSquareStack.cpp&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\inc\core\NyARSquareStack.h&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\src\core\NyARVertexCounter.cpp&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\inc\core\NyARVertexCounter.h&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\src\core\SquareContourDetector.cpp&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+							&amp;lt;File&lt;br /&gt;+								RelativePath=&amp;quot;..\..\inc\core\SquareContourDetector.h&amp;quot;&lt;br /&gt;+								&amp;gt;&lt;br /&gt;+							&amp;lt;/File&amp;gt;&lt;br /&gt;+						&amp;lt;/Filter&amp;gt;&lt;br /&gt; 					&amp;lt;/Filter&amp;gt;&lt;br /&gt; 					&amp;lt;Filter&lt;br /&gt; 						Name=&amp;quot;core2&amp;quot;&lt;br /&gt;@@ -951,6 +1047,14 @@&lt;br /&gt; 					Name=&amp;quot;processor&amp;quot;&lt;br /&gt; 					&amp;gt;&lt;br /&gt; 					&amp;lt;File&lt;br /&gt;+						RelativePath=&amp;quot;..\..\src\processor\SingleARMarkerProcessor.cpp&amp;quot;&lt;br /&gt;+						&amp;gt;&lt;br /&gt;+					&amp;lt;/File&amp;gt;&lt;br /&gt;+					&amp;lt;File&lt;br /&gt;+						RelativePath=&amp;quot;..\..\inc\processor\SingleARMarkerProcessor.h&amp;quot;&lt;br /&gt;+						&amp;gt;&lt;br /&gt;+					&amp;lt;/File&amp;gt;&lt;br /&gt;+					&amp;lt;File&lt;br /&gt; 						RelativePath=&amp;quot;..\..\src\processor\SingleNyIdMarkerProcessor.cpp&amp;quot;&lt;br /&gt; 						&amp;gt;&lt;br /&gt; 					&amp;lt;/File&amp;gt;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolKitCPP-SingleARMarker/main.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolKitCPP-SingleARMarker/main.cpp	(revision 0)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolKitCPP-SingleARMarker/main.cpp	(revision 335)&lt;br /&gt;@@ -0,0 +1,110 @@&lt;br /&gt;+#include &amp;quot;NyAR_core.h&amp;quot;&lt;br /&gt;+#include &amp;quot;SingleARMarkerProcessor.h&amp;quot;&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+#define CODE_FILE &amp;quot;../../data/patt.hiro&amp;quot;&lt;br /&gt;+#define DATA_FILE &amp;quot;../../data/320x240ABGR.raw&amp;quot;&lt;br /&gt;+#define CAMERA_FILE &amp;quot;../../data/camera_para.dat&amp;quot;&lt;br /&gt;+#include &amp;lt;cstdio&amp;gt;&lt;br /&gt;+#include &amp;lt;iostream&amp;gt;&lt;br /&gt;+#include &amp;lt;fstream&amp;gt;&lt;br /&gt;+#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;+using namespace NyARToolkitCPP;&lt;br /&gt;+using namespace std;&lt;br /&gt;+&lt;br /&gt;+unsigned char* load_file_image(const char* i_filename)&lt;br /&gt;+{&lt;br /&gt;+	ifstream inf;&lt;br /&gt;+	unsigned char* result=NULL;&lt;br /&gt;+	try {&lt;br /&gt;+		inf.open(i_filename,ios::binary+ios::in);&lt;br /&gt;+		int size=320*240*4;&lt;br /&gt;+		result=new unsigned char[size];&lt;br /&gt;+		inf.read((char*)result,size);&lt;br /&gt;+		if(size!=inf.gcount()){&lt;br /&gt;+			throw exception();&lt;br /&gt;+		}&lt;br /&gt;+		inf.close();&lt;br /&gt;+	} catch(exception e){&lt;br /&gt;+		if(result!=NULL){&lt;br /&gt;+			delete result;&lt;br /&gt;+		}&lt;br /&gt;+		throw;&lt;br /&gt;+	}&lt;br /&gt;+	return result;&lt;br /&gt;+}&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+class MarkerProcessor :public SingleARMarkerProcesser&lt;br /&gt;+	{	&lt;br /&gt;+	public:&lt;br /&gt;+		const NyARTransMatResult* transmat;&lt;br /&gt;+		int current_code;&lt;br /&gt;+&lt;br /&gt;+	public:&lt;br /&gt;+		MarkerProcessor(const NyARParam* i_cparam,int i_raster_format)&lt;br /&gt;+		{&lt;br /&gt;+			//āĶÊĐĖÇÓĴÌÀÏĎÌω˺ɻ&lt;br /&gt;+			initInstance(i_cparam,i_raster_format);&lt;br /&gt;+			current_code=-1;&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+	protected:&lt;br /&gt;+		void onEnterHandler(int i_code)&lt;br /&gt;+		{&lt;br /&gt;+			current_code=i_code;&lt;br /&gt;+		}&lt;br /&gt;+		void onLeaveHandler()&lt;br /&gt;+		{&lt;br /&gt;+			current_code=-1;&lt;br /&gt;+			this-&amp;gt;transmat=NULL;&lt;br /&gt;+			return;			&lt;br /&gt;+		}&lt;br /&gt;+		void onUpdateHandler(const NyARSquare&amp;amp; i_square, const NyARTransMatResult&amp;amp; result)&lt;br /&gt;+		{&lt;br /&gt;+			this-&amp;gt;transmat=&amp;amp;result;&lt;br /&gt;+		}&lt;br /&gt;+	};&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+int main(int argc,char* argv[])&lt;br /&gt;+{&lt;br /&gt;+	{&lt;br /&gt;+	// ARذĊÁÉİÉÁĞĴĀăËðÍĨ&lt;br /&gt;+	NyARParam ap;&lt;br /&gt;+	//CPUÌćÓĦĂāÓðϷӨµÄɺ³¢&lt;br /&gt;+	ap.setEndian(TNyAREndian_LITTLE);&lt;br /&gt;+	ap.loadARParamFromFile(CAMERA_FILE);&lt;br /&gt;+	ap.changeScreenSize(320, 240);&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+	// ARذÌİĞÓĒĨðԇÝЯµ&lt;br /&gt;+	unsigned char* buf;&lt;br /&gt;+	NyARRgbRaster_BGRA* ra;&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+	NyARCode code(16, 16);&lt;br /&gt;+	code.loadARPattFromFile(CODE_FILE);&lt;br /&gt;+	buf=load_file_image(DATA_FILE);&lt;br /&gt;+	ra = new NyARRgbRaster_BGRA(buf,320, 240);&lt;br /&gt;+	//ÉĢĶ·éįĢĴĀðĚĢħ·é&lt;br /&gt;+&lt;br /&gt;+    MarkerProcessor* pr = new MarkerProcessor(&amp;amp;ap, ra-&amp;gt;getBufferReader().getBufferType());&lt;br /&gt;+    NyARCode* codes[1];&lt;br /&gt;+    codes[0]=new NyARCode(16,16);&lt;br /&gt;+    codes[0]-&amp;gt;loadARPattFromFile(CODE_FILE);&lt;br /&gt;+    pr-&amp;gt;setARCodeTable(codes,1,16,80.0);&lt;br /&gt;+    pr-&amp;gt;detectMarker(*ra);&lt;br /&gt;+	delete codes[0];&lt;br /&gt;+	delete ra;&lt;br /&gt;+	delete pr;&lt;br /&gt;+	delete buf;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	_CrtDumpMemoryLeaks();&lt;br /&gt;+	return 0;&lt;br /&gt;+}&lt;br /&gt;\ No newline at end of file&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolKitCPP-SingleARMarker/NyARToolKitCPP-SingleARMarker.vcproj&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolKitCPP-SingleARMarker/NyARToolKitCPP-SingleARMarker.vcproj	(revision 0)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolKitCPP-SingleARMarker/NyARToolKitCPP-SingleARMarker.vcproj	(revision 335)&lt;br /&gt;@@ -0,0 +1,195 @@&lt;br /&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;shift_jis&amp;quot;?&amp;gt;&lt;br /&gt;+&amp;lt;VisualStudioProject&lt;br /&gt;+	ProjectType=&amp;quot;Visual C++&amp;quot;&lt;br /&gt;+	Version=&amp;quot;9.00&amp;quot;&lt;br /&gt;+	Name=&amp;quot;NyARToolKitCPP-SingleARMarker&amp;quot;&lt;br /&gt;+	ProjectGUID=&amp;quot;{48345895-F493-4D1F-A4A6-2A8622D3B657}&amp;quot;&lt;br /&gt;+	RootNamespace=&amp;quot;NyARToolKitCPPSingleARMarker&amp;quot;&lt;br /&gt;+	Keyword=&amp;quot;Win32Proj&amp;quot;&lt;br /&gt;+	TargetFrameworkVersion=&amp;quot;196613&amp;quot;&lt;br /&gt;+	&amp;gt;&lt;br /&gt;+	&amp;lt;Platforms&amp;gt;&lt;br /&gt;+		&amp;lt;Platform&lt;br /&gt;+			Name=&amp;quot;Win32&amp;quot;&lt;br /&gt;+		/&amp;gt;&lt;br /&gt;+	&amp;lt;/Platforms&amp;gt;&lt;br /&gt;+	&amp;lt;ToolFiles&amp;gt;&lt;br /&gt;+	&amp;lt;/ToolFiles&amp;gt;&lt;br /&gt;+	&amp;lt;Configurations&amp;gt;&lt;br /&gt;+		&amp;lt;Configuration&lt;br /&gt;+			Name=&amp;quot;Debug|Win32&amp;quot;&lt;br /&gt;+			OutputDirectory=&amp;quot;$(SolutionDir)$(ConfigurationName)&amp;quot;&lt;br /&gt;+			IntermediateDirectory=&amp;quot;$(ConfigurationName)&amp;quot;&lt;br /&gt;+			ConfigurationType=&amp;quot;1&amp;quot;&lt;br /&gt;+			CharacterSet=&amp;quot;1&amp;quot;&lt;br /&gt;+			&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCPreBuildEventTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCCustomBuildTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCXMLDataGeneratorTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCWebServiceProxyGeneratorTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCMIDLTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCCLCompilerTool&amp;quot;&lt;br /&gt;+				Optimization=&amp;quot;0&amp;quot;&lt;br /&gt;+				AdditionalIncludeDirectories=&amp;quot;../../inc;../../inc/nyidmarker;../../inc/processor;../../inc/core;../../inc/core2&amp;quot;&lt;br /&gt;+				PreprocessorDefinitions=&amp;quot;WIN32;_DEBUG;_CONSOLE&amp;quot;&lt;br /&gt;+				MinimalRebuild=&amp;quot;true&amp;quot;&lt;br /&gt;+				BasicRuntimeChecks=&amp;quot;3&amp;quot;&lt;br /&gt;+				RuntimeLibrary=&amp;quot;1&amp;quot;&lt;br /&gt;+				UsePrecompiledHeader=&amp;quot;0&amp;quot;&lt;br /&gt;+				WarningLevel=&amp;quot;3&amp;quot;&lt;br /&gt;+				DebugInformationFormat=&amp;quot;4&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCManagedResourceCompilerTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCResourceCompilerTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCPreLinkEventTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCLinkerTool&amp;quot;&lt;br /&gt;+				LinkIncremental=&amp;quot;2&amp;quot;&lt;br /&gt;+				GenerateDebugInformation=&amp;quot;true&amp;quot;&lt;br /&gt;+				SubSystem=&amp;quot;1&amp;quot;&lt;br /&gt;+				TargetMachine=&amp;quot;1&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCALinkTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCManifestTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCXDCMakeTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCBscMakeTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCFxCopTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCAppVerifierTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCPostBuildEventTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+		&amp;lt;/Configuration&amp;gt;&lt;br /&gt;+		&amp;lt;Configuration&lt;br /&gt;+			Name=&amp;quot;Release|Win32&amp;quot;&lt;br /&gt;+			OutputDirectory=&amp;quot;$(SolutionDir)$(ConfigurationName)&amp;quot;&lt;br /&gt;+			IntermediateDirectory=&amp;quot;$(ConfigurationName)&amp;quot;&lt;br /&gt;+			ConfigurationType=&amp;quot;1&amp;quot;&lt;br /&gt;+			CharacterSet=&amp;quot;1&amp;quot;&lt;br /&gt;+			WholeProgramOptimization=&amp;quot;1&amp;quot;&lt;br /&gt;+			&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCPreBuildEventTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCCustomBuildTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCXMLDataGeneratorTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCWebServiceProxyGeneratorTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCMIDLTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCCLCompilerTool&amp;quot;&lt;br /&gt;+				Optimization=&amp;quot;2&amp;quot;&lt;br /&gt;+				EnableIntrinsicFunctions=&amp;quot;true&amp;quot;&lt;br /&gt;+				AdditionalIncludeDirectories=&amp;quot;../../inc;../../inc/nyidmarker;../../inc/processor;../../inc/core;../../inc/core2&amp;quot;&lt;br /&gt;+				PreprocessorDefinitions=&amp;quot;WIN32;NDEBUG;_CONSOLE&amp;quot;&lt;br /&gt;+				RuntimeLibrary=&amp;quot;2&amp;quot;&lt;br /&gt;+				EnableFunctionLevelLinking=&amp;quot;true&amp;quot;&lt;br /&gt;+				UsePrecompiledHeader=&amp;quot;0&amp;quot;&lt;br /&gt;+				WarningLevel=&amp;quot;3&amp;quot;&lt;br /&gt;+				DebugInformationFormat=&amp;quot;3&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCManagedResourceCompilerTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCResourceCompilerTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCPreLinkEventTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCLinkerTool&amp;quot;&lt;br /&gt;+				LinkIncremental=&amp;quot;1&amp;quot;&lt;br /&gt;+				GenerateDebugInformation=&amp;quot;true&amp;quot;&lt;br /&gt;+				SubSystem=&amp;quot;1&amp;quot;&lt;br /&gt;+				OptimizeReferences=&amp;quot;2&amp;quot;&lt;br /&gt;+				EnableCOMDATFolding=&amp;quot;2&amp;quot;&lt;br /&gt;+				TargetMachine=&amp;quot;1&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCALinkTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCManifestTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCXDCMakeTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCBscMakeTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCFxCopTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCAppVerifierTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+			&amp;lt;Tool&lt;br /&gt;+				Name=&amp;quot;VCPostBuildEventTool&amp;quot;&lt;br /&gt;+			/&amp;gt;&lt;br /&gt;+		&amp;lt;/Configuration&amp;gt;&lt;br /&gt;+	&amp;lt;/Configurations&amp;gt;&lt;br /&gt;+	&amp;lt;References&amp;gt;&lt;br /&gt;+	&amp;lt;/References&amp;gt;&lt;br /&gt;+	&amp;lt;Files&amp;gt;&lt;br /&gt;+		&amp;lt;Filter&lt;br /&gt;+			Name=&amp;quot;ĜĘ ĴĀăË&amp;quot;&lt;br /&gt;+			Filter=&amp;quot;cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx&amp;quot;&lt;br /&gt;+			UniqueIdentifier=&amp;quot;{4FC737F1-C7A5-4376-A066-2A32D752A2FF}&amp;quot;&lt;br /&gt;+			&amp;gt;&lt;br /&gt;+			&amp;lt;File&lt;br /&gt;+				RelativePath=&amp;quot;.\main.cpp&amp;quot;&lt;br /&gt;+				&amp;gt;&lt;br /&gt;+			&amp;lt;/File&amp;gt;&lt;br /&gt;+		&amp;lt;/Filter&amp;gt;&lt;br /&gt;+		&amp;lt;Filter&lt;br /&gt;+			Name=&amp;quot;ķĢğ ĴĀăË&amp;quot;&lt;br /&gt;+			Filter=&amp;quot;h;hpp;hxx;hm;inl;inc;xsd&amp;quot;&lt;br /&gt;+			UniqueIdentifier=&amp;quot;{93995380-89BD-4b04-88EB-625FBE52EBFB}&amp;quot;&lt;br /&gt;+			&amp;gt;&lt;br /&gt;+		&amp;lt;/Filter&amp;gt;&lt;br /&gt;+		&amp;lt;Filter&lt;br /&gt;+			Name=&amp;quot;ÊĜĘ ĴĀăË&amp;quot;&lt;br /&gt;+			Filter=&amp;quot;rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav&amp;quot;&lt;br /&gt;+			UniqueIdentifier=&amp;quot;{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}&amp;quot;&lt;br /&gt;+			&amp;gt;&lt;br /&gt;+		&amp;lt;/Filter&amp;gt;&lt;br /&gt;+	&amp;lt;/Files&amp;gt;&lt;br /&gt;+	&amp;lt;Globals&amp;gt;&lt;br /&gt;+	&amp;lt;/Globals&amp;gt;&lt;br /&gt;+&amp;lt;/VisualStudioProject&amp;gt;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolkitCPP-RawTest/main.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolkitCPP-RawTest/main.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolkitCPP-RawTest/main.cpp	(revision 335)&lt;br /&gt;@@ -32,7 +32,7 @@&lt;br /&gt; 	return result;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;-void main(int argc,char* argv[])&lt;br /&gt;+int main(int argc,char* argv[])&lt;br /&gt; {&lt;br /&gt; 	{&lt;br /&gt; 	// ARذĊÁÉİÉÁĞĴĀăËðÍĨ&lt;br /&gt;@@ -52,12 +52,10 @@&lt;br /&gt; 	NyARCode code(16, 16);&lt;br /&gt; 	code.loadARPattFromFile(CODE_FILE);&lt;br /&gt; 	buf=load_file_image(DATA_FILE);&lt;br /&gt;-	ra = new NyARRgbRaster_BGRA(320, 240);&lt;br /&gt;-	//ÉĢĶ·éįĢĴĀðĚĢħ·é&lt;br /&gt;-	ra-&amp;gt;setBuffer(buf);&lt;br /&gt;+	ra = new NyARRgbRaster_BGRA(buf,320, 240);&lt;br /&gt; &lt;br /&gt; 	// ÐİĞÓÌÝðӇѕ·éĎÉĘðάЬ&lt;br /&gt;-	ar = new NyARSingleDetectMarker(&amp;amp;ap,&amp;amp;code, 80.0,ra-&amp;gt;getBufferReader().getBufferType());&lt;br /&gt;+	ar = new NyARSingleDetectMarker(&amp;amp;ap,&amp;amp;code, 80.0,ra-&amp;gt;getBufferReader().getBufferType(),NyARSingleDetectMarker::PF_NYARTOOLKIT);&lt;br /&gt; &lt;br /&gt; 	ar-&amp;gt;setContinueMode(false);&lt;br /&gt; &lt;br /&gt;@@ -103,11 +101,14 @@&lt;br /&gt; 	}&lt;br /&gt; 	printf(&amp;quot;done.\ntotal=%u[ms]\n&amp;quot;,GetTickCount()-st);&lt;br /&gt; &lt;br /&gt;+	TNyARDoublePoint3d ang;&lt;br /&gt;+	result_mat.getZXYAngle(ang);&lt;br /&gt;+&lt;br /&gt; 	delete ra;&lt;br /&gt; 	delete ar;&lt;br /&gt; 	delete buf;&lt;br /&gt; &lt;br /&gt; 	}&lt;br /&gt; 	_CrtDumpMemoryLeaks();&lt;br /&gt;-	return;&lt;br /&gt;+	return 0;&lt;br /&gt; }&lt;br /&gt;\ No newline at end of file&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolkitCPP.sln&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolkitCPP.sln	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolkitCPP.sln	(revision 335)&lt;br /&gt;@@ -13,6 +13,13 @@&lt;br /&gt; 		{D41825F6-E7FA-4823-A465-F87E3FB4D12D} = {D41825F6-E7FA-4823-A465-F87E3FB4D12D}&lt;br /&gt; 	EndProjectSection&lt;br /&gt; EndProject&lt;br /&gt;+Project(&amp;quot;{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}&amp;quot;) = &amp;quot;NyARToolKitCPP-SingleARMarker&amp;quot;, &amp;quot;NyARToolKitCPP-SingleARMarker\NyARToolKitCPP-SingleARMarker.vcproj&amp;quot;, &amp;quot;{48345895-F493-4D1F-A4A6-2A8622D3B657}&amp;quot;&lt;br /&gt;+	ProjectSection(ProjectDependencies) = postProject&lt;br /&gt;+		{D41825F6-E7FA-4823-A465-F87E3FB4D12D} = {D41825F6-E7FA-4823-A465-F87E3FB4D12D}&lt;br /&gt;+	EndProjectSection&lt;br /&gt;+EndProject&lt;br /&gt;+Project(&amp;quot;{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}&amp;quot;) = &amp;quot;NyARToolKitCPP-sandbox&amp;quot;, &amp;quot;NyARToolKitCPP-sandbox\NyARToolKitCPP-sandbox.vcproj&amp;quot;, &amp;quot;{E6F6BDD9-7FA3-4161-93F4-35FB02583F5D}&amp;quot;&lt;br /&gt;+EndProject&lt;br /&gt; Global&lt;br /&gt; 	GlobalSection(SolutionConfigurationPlatforms) = preSolution&lt;br /&gt; 		Debug|Mixed Platforms = Debug|Mixed Platforms&lt;br /&gt;@@ -53,6 +60,26 @@&lt;br /&gt; 		{1E833C12-B3FF-448B-9B71-693D9867F006}.Release|Win32.ActiveCfg = Release|Win32&lt;br /&gt; 		{1E833C12-B3FF-448B-9B71-693D9867F006}.Release|Win32.Build.0 = Release|Win32&lt;br /&gt; 		{1E833C12-B3FF-448B-9B71-693D9867F006}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Release|Win32&lt;br /&gt;+		{48345895-F493-4D1F-A4A6-2A8622D3B657}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32&lt;br /&gt;+		{48345895-F493-4D1F-A4A6-2A8622D3B657}.Debug|Mixed Platforms.Build.0 = Debug|Win32&lt;br /&gt;+		{48345895-F493-4D1F-A4A6-2A8622D3B657}.Debug|Win32.ActiveCfg = Debug|Win32&lt;br /&gt;+		{48345895-F493-4D1F-A4A6-2A8622D3B657}.Debug|Win32.Build.0 = Debug|Win32&lt;br /&gt;+		{48345895-F493-4D1F-A4A6-2A8622D3B657}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Debug|Win32&lt;br /&gt;+		{48345895-F493-4D1F-A4A6-2A8622D3B657}.Release|Mixed Platforms.ActiveCfg = Release|Win32&lt;br /&gt;+		{48345895-F493-4D1F-A4A6-2A8622D3B657}.Release|Mixed Platforms.Build.0 = Release|Win32&lt;br /&gt;+		{48345895-F493-4D1F-A4A6-2A8622D3B657}.Release|Win32.ActiveCfg = Release|Win32&lt;br /&gt;+		{48345895-F493-4D1F-A4A6-2A8622D3B657}.Release|Win32.Build.0 = Release|Win32&lt;br /&gt;+		{48345895-F493-4D1F-A4A6-2A8622D3B657}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Release|Win32&lt;br /&gt;+		{E6F6BDD9-7FA3-4161-93F4-35FB02583F5D}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32&lt;br /&gt;+		{E6F6BDD9-7FA3-4161-93F4-35FB02583F5D}.Debug|Mixed Platforms.Build.0 = Debug|Win32&lt;br /&gt;+		{E6F6BDD9-7FA3-4161-93F4-35FB02583F5D}.Debug|Win32.ActiveCfg = Debug|Win32&lt;br /&gt;+		{E6F6BDD9-7FA3-4161-93F4-35FB02583F5D}.Debug|Win32.Build.0 = Debug|Win32&lt;br /&gt;+		{E6F6BDD9-7FA3-4161-93F4-35FB02583F5D}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Debug|Win32&lt;br /&gt;+		{E6F6BDD9-7FA3-4161-93F4-35FB02583F5D}.Release|Mixed Platforms.ActiveCfg = Release|Win32&lt;br /&gt;+		{E6F6BDD9-7FA3-4161-93F4-35FB02583F5D}.Release|Mixed Platforms.Build.0 = Release|Win32&lt;br /&gt;+		{E6F6BDD9-7FA3-4161-93F4-35FB02583F5D}.Release|Win32.ActiveCfg = Release|Win32&lt;br /&gt;+		{E6F6BDD9-7FA3-4161-93F4-35FB02583F5D}.Release|Win32.Build.0 = Release|Win32&lt;br /&gt;+		{E6F6BDD9-7FA3-4161-93F4-35FB02583F5D}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Release|Win32&lt;br /&gt; 	EndGlobalSection&lt;br /&gt; 	GlobalSection(SolutionProperties) = preSolution&lt;br /&gt; 		HideSolutionNode = FALSE&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolkitCPP-IdMarker/main.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolkitCPP-IdMarker/main.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/forWindows/NyARToolkitCPP-IdMarker/main.cpp	(revision 335)&lt;br /&gt;@@ -111,7 +111,7 @@&lt;br /&gt; 			// Ύ̱ăÁėÌԇÝЯµ(320x240 BGRAÌRAWĦĞ)&lt;br /&gt; 			unsigned char* img=load_file_image(data_file);&lt;br /&gt; &lt;br /&gt;-			NyARRgbRaster_BGRA* ra = NyARRgbRaster_BGRA::wrap(img, 320, 240);&lt;br /&gt;+			NyARRgbRaster_BGRA* ra = new NyARRgbRaster_BGRA(img, 320, 240);&lt;br /&gt; 			MarkerProcessor pr(&amp;amp;ap, ra-&amp;gt;getBufferReader().getBufferType());&lt;br /&gt; 			pr.detectMarker(*ra);&lt;br /&gt; 			delete ra;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/readme.ja.txt&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/readme.ja.txt	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/readme.ja.txt	(revision 335)&lt;br /&gt;@@ -1,7 +1,7 @@&lt;br /&gt; ARToolkit C++ class library NyARToolkitCPP.&lt;br /&gt; Copyright (C)2008-2009 R.Iizuka&lt;br /&gt; &lt;br /&gt;-version 0.10.0&lt;br /&gt;+version 2.4.0&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://nyatla.jp/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/&lt;/a&gt;&lt;br /&gt; airmail(at)ebony.plala.or.jp&lt;br /&gt;@@ -10,16 +10,14 @@&lt;br /&gt; &lt;br /&gt; ・NyARToolkitCPP&lt;br /&gt; &lt;br /&gt;-NyARToolkitCPPは、NyARToolkit for Java 2.3系をベースにした、C++&lt;br /&gt;+NyARToolkitCPPは、NyARToolkit for Java 2.4系をベースにした、C++&lt;br /&gt; によるNyARToolkit互換のクラスライブラリです。&lt;br /&gt; &lt;br /&gt;-処理性能は、オリジナルARToolKit比で、約30%～40%程度高速です。&lt;br /&gt;+処理性能は、オリジナルARToolKit比で、約400%程度高速です。&lt;br /&gt; NyARToolkitと同様に、検出数が多くなるほど高速になります。&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;-****現在β版につき、いくつか機能不足な点があります。****&lt;br /&gt;-&lt;br /&gt;-※現在は計算用のコアクラスのみの実装となっています。&lt;br /&gt;+※現在は計算用クラスのみの実装となっています。&lt;br /&gt; 　カメラ入力・3D出力部のコードはまだ実装されていません。&lt;br /&gt; &lt;br /&gt; ※マーカ検出クラスは、SingleMarkerDetectorのみ（単一マーカ検出クラス）&lt;br /&gt;@@ -52,6 +50,7 @@&lt;br /&gt; &lt;br /&gt; forAlchemy&lt;br /&gt;  Adobe alchemy用のswcを作成するmakefileがあります。&lt;br /&gt;+ コンパイル方法は、NyARToolkitAS3以下にあるhow_to_compile.txtを見てください。&lt;br /&gt; &lt;br /&gt;  &lt;br /&gt; ・ディレクトリ構成&lt;br /&gt;@@ -98,23 +97,26 @@&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; ・ライセンス&lt;br /&gt;-extlib以下のものは、各モジュールのライセンスに従ってください。&lt;br /&gt;-NyARToolkitCSは、GPLv2、または商用ライセンスでご利用になれます。&lt;br /&gt;+後述するモジュールを除いたNyARToolkitCPP主要コンポーネントは、商用ライセンス&lt;br /&gt;+とGPLv3以降のデュアルライセンスを採用しています。&lt;br /&gt;+(Version/2.4.0より、GPLv3ライセンスになりました。)&lt;br /&gt; &lt;br /&gt;-GPL&lt;br /&gt;- GPLは、商用目的/非商用目的のどちらでも利用できますが、&lt;br /&gt;- ソフトウェアのバイナリを第三者に公開するのであれば、&lt;br /&gt;- そのソフトウェアを構成するすべてのソースファイルを、&lt;br /&gt;- GPLライセンスで公開しなければならない制約があります。&lt;br /&gt;- 詳しくはLICENCE.txtをみてください。&lt;br /&gt; &lt;br /&gt;-商用ライセンス&lt;br /&gt;+以下のディレクトリ配下にあるものについては、各モジュールのライセンスに従ってください。&lt;br /&gt;+forAlchemy/AlchemyMaster&lt;br /&gt;+forAlchemy/NyARToolkitAS3&lt;br /&gt; &lt;br /&gt;- クローズ開発等が可能なライセンスです。ARToolWorksから&lt;br /&gt;- 購入することができます。価格等のお問い合わせは、&lt;br /&gt;- &lt;a href=&quot;mailto:info@artoolworks.com&quot;&gt;info@artoolworks.com&lt;/a&gt;からどうぞ。&lt;br /&gt; &lt;br /&gt;+ -GPL&lt;br /&gt;+ GPLについては、LICENCE.txtをお読みください。&lt;br /&gt; &lt;br /&gt;+ -商用ライセンス&lt;br /&gt;+ 商用ライセンスについては、ARToolWorks社に管理を委託しております。&lt;br /&gt;+ &lt;a href=&quot;http://www.artoolworks.com/Home.html&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.artoolworks.com/Home.html&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;+ 日本国内での販売については、下記にお問い合わせ下さい。&lt;br /&gt;+ &lt;a href=&quot;http://www.msoft.co.jp/pressrelease/press090928-1.html&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.msoft.co.jp/pressrelease/press090928-1.html&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/forLinux/RawTest/main.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/forLinux/RawTest/main.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/forLinux/RawTest/main.cpp	(revision 335)&lt;br /&gt;@@ -50,12 +50,10 @@&lt;br /&gt; 	NyARCode code(16, 16);&lt;br /&gt; 	code.loadARPattFromFile(CODE_FILE);&lt;br /&gt; 	buf=load_file_image(DATA_FILE);&lt;br /&gt;-	ra = new NyARRgbRaster_BGRA(320, 240);&lt;br /&gt;-	//ÉĢĶ·éįĢĴĀðĚĢħ·é&lt;br /&gt;-	ra-&amp;gt;setBuffer(buf);&lt;br /&gt;+	ra = new NyARRgbRaster_BGRA(buf,320, 240);&lt;br /&gt; &lt;br /&gt; 	// ÐİĞÓÌÝðӇѕ·éĎÉĘðάЬ&lt;br /&gt;-	ar = new NyARSingleDetectMarker(&amp;amp;ap,&amp;amp;code, 80.0,ra-&amp;gt;getBufferReader()-&amp;gt;getBufferType());&lt;br /&gt;+	ar = new NyARSingleDetectMarker(&amp;amp;ap,&amp;amp;code, 80.0,ra-&amp;gt;getBufferReader().getBufferType());&lt;br /&gt; 	ar-&amp;gt;setContinueMode(false);&lt;br /&gt; &lt;br /&gt; 	NyARTransMatResult result_mat;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/processor/SingleARMarkerProcessor.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/processor/SingleARMarkerProcessor.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/processor/SingleARMarkerProcessor.cpp	(revision 335)&lt;br /&gt;@@ -1,33 +1,331 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+#include &amp;quot;SingleARMarkerProcessor.h&amp;quot;&lt;br /&gt;+#include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt;+	/**&lt;br /&gt;+	* ±ÌĎÉĘÍӯΞÉÐ͂ÌĽĊðψם·é±ÆÌÅ«éāĶÊĐĖÇÓĶÍĚĢĔÅ·&lt;br /&gt;+	* ĽĊÌЯ̻ɚӮЁׅðăĸÓħÅӊӭ·é±ÆªÅ«Ü·&lt;br /&gt;+	* ĎÉĘÉÍաДÌĽĊðԯٞÅ«Ü·ɪÂÌĽĊª̩Â©éÆĶÍĚĢĔÍͰѱµÄӯ¶ĽĊð&lt;br /&gt;+	* ÐÂ¾¯Նίµѱ¯̩θ¤ÜÅÌ˔ÍѼÌĽĊðՆίµÜ¹ñ&lt;br /&gt;+	* &lt;br /&gt;+	* ăĸÓħÍ OnEnterhOnUpdate[n]hOnLeaveÌχÅԭжµÜ·&lt;br /&gt;+	* ĽĊª̩Â©éÆÜ¸OnEnterªÐԸԭжµÄɽՔÌĽĊªԭ̩³ê½©ªí©èÜ·&lt;br /&gt;+	* ΟÉOnUpdateÉæè̻ΝÌ֏ʷγرªفѱµÄԮ³êÜ·΅ͣÉĽĊð̩θ¤ÆOnLeave&lt;br /&gt;+	* ăĸÓħªԭжµÜ·&lt;br /&gt;+	* &lt;br /&gt;+	*/&lt;br /&gt;+	SingleARMarkerProcesser::SingleARMarkerProcesser()&lt;br /&gt;+	{&lt;br /&gt;+		this-&amp;gt;_cf_threshold_new = 0.30;&lt;br /&gt;+		this-&amp;gt;_cf_threshold_exist = 0.15;&lt;br /&gt;+		this-&amp;gt;_threshold = 110;&lt;br /&gt;+		this-&amp;gt;_current_arcode_index = -1;&lt;br /&gt;+		this-&amp;gt;_lost_delay_count = 0;&lt;br /&gt;+		this-&amp;gt;_lost_delay = 5;&lt;br /&gt;+		this-&amp;gt;_square_list = new NyARSquareStack(100);&lt;br /&gt;+		this-&amp;gt;_initialized=false;&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	SingleARMarkerProcesser::~SingleARMarkerProcesser()&lt;br /&gt;+	{&lt;br /&gt;+		//setARCodeTableÅʄèӖÄçê½ĉĵėĆĎħðˊֺ&lt;br /&gt;+		freeARCodeTable();&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_square_list);&lt;br /&gt;+		if(this-&amp;gt;_initialized==true){&lt;br /&gt;+			//initInstanceÅʄèӖÄ½ĉĵėĆĎħðˊֺ&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_square_detect);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_transmat);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_bin_raster);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_tobin_filter);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_threshold_detect);&lt;br /&gt;+		}&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	void SingleARMarkerProcesser::initInstance(const NyARParam* i_param,int i_raster_type)&lt;br /&gt;+	{&lt;br /&gt;+		const TNyARIntSize&amp;amp; scr_size = i_param-&amp;gt;getScreenSize();&lt;br /&gt;+		// ʰэĉĵėĆĎħðάé&lt;br /&gt;+		this-&amp;gt;_square_detect = new NyARSquareDetector_Rle(i_param-&amp;gt;getDistortionFactor(), scr_size);&lt;br /&gt;+		this-&amp;gt;_transmat = new NyARTransMat(i_param);&lt;br /&gt;+		this-&amp;gt;_tobin_filter=new NyARRasterFilter_ARToolkitThreshold(110,i_raster_type);&lt;br /&gt; &lt;br /&gt;+		// ÑӬʦќįĢĴĀðάé&lt;br /&gt;+		this-&amp;gt;_bin_raster = new NyARBinRaster(scr_size.w, scr_size.h);&lt;br /&gt;+		this-&amp;gt;_threshold_detect=new NyARRasterThresholdAnalyzer_SlidePTile(15,i_raster_type,4);&lt;br /&gt;+		//ω˺ɻ&lt;br /&gt;+		this-&amp;gt;_patt=NULL;&lt;br /&gt;+		this-&amp;gt;_deviation_data=NULL;&lt;br /&gt;+		this-&amp;gt;_match_patt=NULL;&lt;br /&gt;+		this-&amp;gt;_initialized=true;&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	void SingleARMarkerProcesser::freeARCodeTable()&lt;br /&gt;+	{&lt;br /&gt;+		//ʄӖΏÌĉĵėĆĎħðέϜ&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_patt);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_deviation_data);&lt;br /&gt;+		if(this-&amp;gt;_match_patt!=NULL){&lt;br /&gt;+			for(int i=0;i&amp;lt;this-&amp;gt;_match_patt-&amp;gt;length;i++){&lt;br /&gt;+				NyAR_SAFE_DELETE(this-&amp;gt;_match_patt-&amp;gt;item[i]);&lt;br /&gt;+			}&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_match_patt);&lt;br /&gt;+		}&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	/*ΩӮϨӮÌѝӨªЯ׈È¢ÌÅĒÁÓħāąħ&lt;br /&gt;+	public void setThreshold(int i_threshold)&lt;br /&gt;+	{&lt;br /&gt;+	this._threshold = i_threshold;&lt;br /&gt;+	return;&lt;br /&gt;+	}*/&lt;br /&gt;+&lt;br /&gt;+	/**̟Я·éĽĊĒĨÌպرðϷӨµÜ· ̟ЯгҔÅ±Ì˖Дðπγ·éÆ&lt;br /&gt;+	* ĉĵėĆĎħгҔÉ˭ЧÊĚĢħª©©èÜ·&lt;br /&gt;+	*/&lt;br /&gt;+&lt;br /&gt;+	void SingleARMarkerProcesser::setARCodeTable(NyARCode* const i_ref_code_table[],int i_number_of_code, int i_code_resolution, double i_marker_width)&lt;br /&gt;+	{&lt;br /&gt;+		if (this-&amp;gt;_current_arcode_index != -1) {&lt;br /&gt;+			// ˭ЧÊĚĢħ&lt;br /&gt;+			reset(true);&lt;br /&gt;+		}&lt;br /&gt;+		//ʄӖΏÌĉĵėĆĎħðέϜ&lt;br /&gt;+		freeARCodeTable();&lt;br /&gt;+&lt;br /&gt;+		//̟Я·éĽĊĚĢħЮֱ̟Я˭ðάèҼ·(1ĳĎĚË4ļăÓħĔÓĶÊÓď,ĽĊÌİĞÓ،ɦÍ50%)&lt;br /&gt;+		this-&amp;gt;_patt = new NyARColorPatt_Perspective_O2(i_code_resolution, i_code_resolution,4,25);&lt;br /&gt;+		this-&amp;gt;_deviation_data=new NyARMatchPattDeviationColorData(i_code_resolution, i_code_resolution);&lt;br /&gt;+		this-&amp;gt;_marker_width = i_marker_width;&lt;br /&gt;+&lt;br /&gt;+		this-&amp;gt;_match_patt = new NyArray&amp;lt;NyARMatchPatt_Color_WITHOUT_PCA*&amp;gt;(i_number_of_code);&lt;br /&gt;+		for(int i=0;i&amp;lt;i_number_of_code;i++){&lt;br /&gt;+			this-&amp;gt;_match_patt-&amp;gt;item[i]=new NyARMatchPatt_Color_WITHOUT_PCA(i_ref_code_table[i]);&lt;br /&gt;+		}&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	void SingleARMarkerProcesser::reset(bool i_is_force)&lt;br /&gt;+	{&lt;br /&gt;+		if (this-&amp;gt;_current_arcode_index != -1 &amp;amp;&amp;amp; i_is_force == false) {&lt;br /&gt;+			// ˭Чϑ«ʷ¦ÅÈ¯êÎăĸÓħĒË&lt;br /&gt;+			this-&amp;gt;onLeaveHandler();&lt;br /&gt;+		}&lt;br /&gt;+		// ĊÌÓħĽĊðÊĚĢħ&lt;br /&gt;+		this-&amp;gt;_current_arcode_index = -1;&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	void SingleARMarkerProcesser::detectMarker(const INyARRgbRaster&amp;amp; i_raster)&lt;br /&gt;+	{&lt;br /&gt;+		// ĔăęĠĆĢĎ&lt;br /&gt;+		NyAR_ASSERT(this-&amp;gt;_bin_raster-&amp;gt;getSize().isEqualSize(i_raster.getSize().w, i_raster.getSize().h));&lt;br /&gt;+&lt;br /&gt;+		// ĒĨĥĵËªֳ¯êÎ±±ÅЉíè&lt;br /&gt;+		if (this-&amp;gt;_match_patt== NULL) {&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+&lt;br /&gt;+		// ÉĘĞð(1/4ÌʦќÌ)ÑӬăÁėÉ֏ʷ·é.&lt;br /&gt;+		this-&amp;gt;_tobin_filter-&amp;gt;setThreshold(this-&amp;gt;_threshold);&lt;br /&gt;+		this-&amp;gt;_tobin_filter-&amp;gt;doFilter(i_raster, *this-&amp;gt;_bin_raster);&lt;br /&gt;+&lt;br /&gt;+		NyARSquareStack&amp;amp; square_stack = *this-&amp;gt;_square_list;&lt;br /&gt;+		// ĘĎćāĒĨðӔ·&lt;br /&gt;+		this-&amp;gt;_square_detect-&amp;gt;detectMarker(*this-&amp;gt;_bin_raster, square_stack);&lt;br /&gt;+		// Նίψם&lt;br /&gt;+		if (this-&amp;gt;_current_arcode_index == -1) { // ĽĊ֢Նί&lt;br /&gt;+			detectNewMarker(i_raster, square_stack);&lt;br /&gt;+		} else { // ĽĊՆί҆&lt;br /&gt;+			detectExistMarker(i_raster, square_stack, this-&amp;gt;_current_arcode_index);&lt;br /&gt;+		}&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+	/**ARCodeÌÊĘħ©ç΅àɪӶ·éĒĨՔ͆ð̟εµÜ·&lt;br /&gt;+	*/&lt;br /&gt;+	bool SingleARMarkerProcesser::selectARCodeIndexFromList(const INyARRgbRaster&amp;amp; i_raster,const NyARSquare&amp;amp; i_square, TResult_selectARCodeIndex&amp;amp; o_result)&lt;br /&gt;+	{&lt;br /&gt;+		// ̻ΝĒĨĥĵËÍāĎĥĂĵ&lt;br /&gt;+		if (this-&amp;gt;_match_patt==NULL) {&lt;br /&gt;+			return false;&lt;br /&gt;+		}&lt;br /&gt;+		// ֝ɿˮπÉÈéİĞÓðăÁė©çјèЯ·&lt;br /&gt;+		if (!this-&amp;gt;_patt-&amp;gt;pickFromRaster(i_raster, i_square)) {&lt;br /&gt;+			return false;&lt;br /&gt;+		}&lt;br /&gt;+		//֝ɿĦĞðάЬµÄ֝ɿ˭ÉĚĢħ&lt;br /&gt;+		this-&amp;gt;_deviation_data-&amp;gt;setRaster(*this-&amp;gt;_patt);		&lt;br /&gt;+		TNyARMatchPattResult mr;&lt;br /&gt;+		int code_index = 0;&lt;br /&gt;+		int dir = 0;&lt;br /&gt;+		double c1 = 0;&lt;br /&gt;+		// ĒĨÆդ˲·é&lt;br /&gt;+		for (int i = 0; i &amp;lt; this-&amp;gt;_match_patt-&amp;gt;length; i++) {&lt;br /&gt;+			this-&amp;gt;_match_patt-&amp;gt;item[i]-&amp;gt;evaluate(*this-&amp;gt;_deviation_data,mr);&lt;br /&gt;+			double c2 = mr.confidence;&lt;br /&gt;+			if (c1 &amp;lt; c2) {&lt;br /&gt;+				code_index = i;&lt;br /&gt;+				c1 = c2;&lt;br /&gt;+				dir = mr.direction;&lt;br /&gt;+			}&lt;br /&gt;+		}&lt;br /&gt;+		o_result.code_index = code_index;&lt;br /&gt;+		o_result.direction = dir;&lt;br /&gt;+		o_result.confidence = c1;&lt;br /&gt;+		return true;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	/**і̋ĽĊ̟ε ̻ΝՆί҆ÌĽĊªÈ¢àÌÆµÄ΅àՆίµâ·¢ĽĊðÐ͂ՆίµÜ·&lt;br /&gt;+	*/&lt;br /&gt;+	void SingleARMarkerProcesser::detectNewMarker(const INyARRgbRaster&amp;amp; i_raster,NyARSquareStack&amp;amp; i_stack)&lt;br /&gt;+	{&lt;br /&gt;+		int number_of_square = i_stack.getLength();&lt;br /&gt;+		double cf = 0;&lt;br /&gt;+		int dir = 0;&lt;br /&gt;+		int code_index = -1;&lt;br /&gt;+		int square_index = 0;&lt;br /&gt;+		TResult_selectARCodeIndex detect_result;&lt;br /&gt;+		for (int i = 0; i &amp;lt; number_of_square; i++) {&lt;br /&gt;+			if (!selectARCodeIndexFromList(i_raster,*i_stack.getItem(i), detect_result)) {&lt;br /&gt;+				// ̩Â©çÈ¢&lt;br /&gt;+				return;&lt;br /&gt;+			}&lt;br /&gt;+			if (detect_result.confidence &amp;lt; this-&amp;gt;_cf_threshold_new) {&lt;br /&gt;+				continue;&lt;br /&gt;+			}&lt;br /&gt;+			if (detect_result.confidence &amp;lt; cf) {&lt;br /&gt;+				// ɪӶԸªӡ¢&lt;br /&gt;+				continue;&lt;br /&gt;+			}&lt;br /&gt;+			cf = detect_result.confidence;&lt;br /&gt;+			code_index = detect_result.code_index;&lt;br /&gt;+			square_index = i;&lt;br /&gt;+			dir = detect_result.direction;&lt;br /&gt;+		}&lt;br /&gt;+		// ՆίгҔðΘі&lt;br /&gt;+		const bool is_id_found=updateStatus(*this-&amp;gt;_square_list-&amp;gt;getItem(square_index), code_index, cf, dir);&lt;br /&gt;+		//臒lĴĂĨįĢĎ(detectExistMarkerÉà éæ)&lt;br /&gt;+		if(!is_id_found){&lt;br /&gt;+			//ĽĊªÈ¯êÎӔε+DualPTailÅˮπ̐Ը̟ε&lt;br /&gt;+			this-&amp;gt;_threshold_detect-&amp;gt;analyzeRaster(i_raster);&lt;br /&gt;+			this-&amp;gt;_threshold=(this-&amp;gt;_threshold+this-&amp;gt;_threshold_detect-&amp;gt;getThreshold())/2;&lt;br /&gt;+		}&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	/**ĽĊÌͰѱՆί ̻ΝՆί҆ÌĽĊð؄ѦµÄՆίµÜ· &lt;br /&gt;+	* ©ҍª±Ì̀՜Í½Ôñͣ͡¢ë¢ëԭԗ·é©çNewÆͬºÈ¢±Æ&lt;br /&gt;+	*/&lt;br /&gt;+	void SingleARMarkerProcesser::detectExistMarker(const INyARRgbRaster&amp;amp; i_raster,const NyARSquareStack&amp;amp; i_stack, int i_current_id)&lt;br /&gt;+	{&lt;br /&gt;+		int number_of_square = i_stack.getLength();&lt;br /&gt;+		double cf = 0;&lt;br /&gt;+		int dir = 0;&lt;br /&gt;+		int code_index = -1;&lt;br /&gt;+		int square_index = 0;&lt;br /&gt;+		TResult_selectARCodeIndex detect_result;&lt;br /&gt;+		for (int i = 0; i &amp;lt; number_of_square; i++) {&lt;br /&gt;+			if (!selectARCodeIndexFromList(i_raster,*i_stack.getItem(i), detect_result)) {&lt;br /&gt;+				// ̩Â©çÈ¢&lt;br /&gt;+				return;&lt;br /&gt;+			}&lt;br /&gt;+			// ̻ΝÌĽĊðՆίµ½©&lt;br /&gt;+			if (detect_result.code_index != i_current_id) {&lt;br /&gt;+				// Նί҆ÌĽĊÅÍÈ¢ÌÅֳ΋&lt;br /&gt;+				continue;&lt;br /&gt;+			}&lt;br /&gt;+			if (detect_result.confidence &amp;lt; this-&amp;gt;_cf_threshold_exist) {&lt;br /&gt;+				continue;&lt;br /&gt;+			}&lt;br /&gt;+			if (detect_result.confidence &amp;lt; cf) {&lt;br /&gt;+				// ɪӶԸª͂¢ֻð҉Ô&lt;br /&gt;+				continue;&lt;br /&gt;+			}&lt;br /&gt;+			cf = detect_result.confidence;&lt;br /&gt;+			code_index = detect_result.code_index;&lt;br /&gt;+			dir = detect_result.direction;&lt;br /&gt;+			square_index = i;&lt;br /&gt;+		}&lt;br /&gt;+		// ՆίгҔðΘі&lt;br /&gt;+		const bool is_id_found=updateStatus(*this-&amp;gt;_square_list-&amp;gt;getItem(square_index), code_index, cf, dir);&lt;br /&gt;+		//臒lĴĂĨįĢĎ(detectExistMarkerÉà éæ)&lt;br /&gt;+		if(!is_id_found){&lt;br /&gt;+			//ĽĊªÈ¯êÎӔε+DualPTailÅˮπ̐Ը̟ε&lt;br /&gt;+			this-&amp;gt;_threshold_detect-&amp;gt;analyzeRaster(i_raster);&lt;br /&gt;+			this-&amp;gt;_threshold=(this-&amp;gt;_threshold+this-&amp;gt;_threshold_detect-&amp;gt;getThreshold())/2;&lt;br /&gt;+		}&lt;br /&gt;+&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	/**	ĉĵėĆĎħÌĘĥĞĘðΘіµ֋ضÉɞ¶ÄĮÓĨË˖Дð̬ӮµÜ·&lt;br /&gt;+	* 	ןèӬÍµπΛÉĽĊðԭ̩·éΖªÅ«½©¶Å·ĎÉĘÌгҔÆÍəÈèÜ·&lt;br /&gt;+	*/&lt;br /&gt;+	bool SingleARMarkerProcesser::updateStatus(const NyARSquare&amp;amp; i_square, int i_code_index, double i_cf, int i_dir)&lt;br /&gt;+	{&lt;br /&gt;+		NyARTransMatResult&amp;amp; result = this-&amp;gt;__NyARSquare_result;&lt;br /&gt;+		if (this-&amp;gt;_current_arcode_index &amp;lt; 0) {// ֢Նί҆&lt;br /&gt;+			if (i_code_index &amp;lt; 0) {// ֢Նί©ç֢ՆίÌҊɚ&lt;br /&gt;+				// ÈÉàµÈ¢æñ&lt;br /&gt;+				return false;&lt;br /&gt;+			} else {// ֢Նί©çՆίÌҊɚ&lt;br /&gt;+				this-&amp;gt;_current_arcode_index = i_code_index;&lt;br /&gt;+				// ăĸÓħжЬ&lt;br /&gt;+				// OnEnter&lt;br /&gt;+				this-&amp;gt;onEnterHandler(i_code_index);&lt;br /&gt;+				// ֏ʷγرðάЬ&lt;br /&gt;+				this-&amp;gt;_transmat-&amp;gt;transMat(i_square, i_dir, this-&amp;gt;_marker_width, result);&lt;br /&gt;+				// OnUpdate&lt;br /&gt;+				this-&amp;gt;onUpdateHandler(i_square, result);&lt;br /&gt;+				this-&amp;gt;_lost_delay_count = 0;&lt;br /&gt;+				return true;&lt;br /&gt;+			}&lt;br /&gt;+		} else {// Նί҆&lt;br /&gt;+			if (i_code_index &amp;lt; 0) {// Նί©ç֢ՆίÌҊɚ&lt;br /&gt;+				this-&amp;gt;_lost_delay_count++;&lt;br /&gt;+				if (this-&amp;gt;_lost_delay &amp;lt; this-&amp;gt;_lost_delay_count) {&lt;br /&gt;+					// OnLeave&lt;br /&gt;+					this-&amp;gt;_current_arcode_index = -1;&lt;br /&gt;+					this-&amp;gt;onLeaveHandler();&lt;br /&gt;+				}&lt;br /&gt;+				return false;&lt;br /&gt;+			} else if (i_code_index == this-&amp;gt;_current_arcode_index) {// ӯ¶ARCodeÌ΄Նί&lt;br /&gt;+				// ăĸÓħжЬ&lt;br /&gt;+				// ֏ʷγرðάЬ&lt;br /&gt;+				this-&amp;gt;_transmat-&amp;gt;transMat(i_square, i_dir, this-&amp;gt;_marker_width, result);&lt;br /&gt;+				// OnUpdate&lt;br /&gt;+				this-&amp;gt;onUpdateHandler(i_square, result);&lt;br /&gt;+				this-&amp;gt;_lost_delay_count = 0;&lt;br /&gt;+				return true;&lt;br /&gt;+			} else {// əÈéĒĨÌՆίh͡ÍĔļħµÈ¢&lt;br /&gt;+				throw NyARException();&lt;br /&gt;+			}&lt;br /&gt;+		}&lt;br /&gt;+	}&lt;br /&gt; }&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/processor/SingleNyIdMarkerProcessor.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/processor/SingleNyIdMarkerProcessor.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/processor/SingleNyIdMarkerProcessor.cpp	(revision 335)&lt;br /&gt;@@ -2,32 +2,28 @@&lt;br /&gt; * PROJECT: NyARToolkitCPP&lt;br /&gt; * --------------------------------------------------------------------------------&lt;br /&gt; *&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt; *&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt; * &lt;br /&gt; * This program is distributed in the hope that it will be useful,&lt;br /&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt; * GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;+*&lt;br /&gt; * You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt; * &lt;br /&gt; * For further information please contact.&lt;br /&gt; *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt; &lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt; #include &amp;quot;SingleNyIdMarkerProcessor.h&amp;quot;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt;@@ -35,28 +31,33 @@&lt;br /&gt; 	//filterÍΩժÅ̈ßé&lt;br /&gt; 	SingleNyIdMarkerProcesser::SingleNyIdMarkerProcesser()&lt;br /&gt; 	{&lt;br /&gt;+		this-&amp;gt;_initialized=false;&lt;br /&gt; 	}&lt;br /&gt; 	SingleNyIdMarkerProcesser::~SingleNyIdMarkerProcesser()&lt;br /&gt; 	{&lt;br /&gt;-		// ÑӬʦќįĢĴĀðάé&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_threshold_detect);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_tobin_filter);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_data_current);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_data_temp);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_bin_raster);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_transmat);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_square_detect);&lt;br /&gt; 		NyAR_SAFE_DELETE(this-&amp;gt;_id_pickup);&lt;br /&gt; 		NyAR_SAFE_DELETE(this-&amp;gt;_square_list);&lt;br /&gt;+&lt;br /&gt;+		if(this-&amp;gt;_initialized==true){&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_threshold_detect);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_tobin_filter);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_data_current);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_data_temp);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_bin_raster);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_transmat);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_square_detect);&lt;br /&gt;+			this-&amp;gt;_initialized=false;&lt;br /&gt;+		}&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt; &lt;br /&gt; 	void SingleNyIdMarkerProcesser::initInstance(const NyARParam* i_param,const INyIdMarkerDataEncoder* i_encoder,int i_raster_format)&lt;br /&gt; 	{&lt;br /&gt;+		NyAR_ASSERT(this-&amp;gt;_initialized==false);&lt;br /&gt; 		const TNyARIntSize &amp;amp;scr_size = i_param-&amp;gt;getScreenSize();&lt;br /&gt; 		this-&amp;gt;_id_pickup=new NyIdMarkerPickup();&lt;br /&gt; 		// ʰэĉĵėĆĎħðάé&lt;br /&gt;-		this-&amp;gt;_square_detect = new NyARSquareDetector(i_param-&amp;gt;getDistortionFactor(), scr_size);&lt;br /&gt;+		this-&amp;gt;_square_detect = new NyARSquareDetector_Rle(i_param-&amp;gt;getDistortionFactor(), scr_size);&lt;br /&gt; 		this-&amp;gt;_transmat = new NyARTransMat(i_param);&lt;br /&gt; 		this-&amp;gt;_encoder=i_encoder;&lt;br /&gt; &lt;br /&gt;@@ -73,7 +74,7 @@&lt;br /&gt; 		this-&amp;gt;_current_threshold=110;&lt;br /&gt; 		this-&amp;gt;_lost_delay_count=0;&lt;br /&gt; 		this-&amp;gt;_lost_delay = 5;&lt;br /&gt;-&lt;br /&gt;+		this-&amp;gt;_initialized=true;&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt; &lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/utils/NyStdLib.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/utils/NyStdLib.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/utils/NyStdLib.cpp	(revision 335)&lt;br /&gt;@@ -1,3 +1,28 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyStdLib.h&amp;quot;&lt;br /&gt; &lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/NyIdMarkerPickup.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/NyIdMarkerPickup.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/NyIdMarkerPickup.cpp	(revision 335)&lt;br /&gt;@@ -2,27 +2,25 @@&lt;br /&gt; * PROJECT: NyARToolkitCPP&lt;br /&gt; * --------------------------------------------------------------------------------&lt;br /&gt; *&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt; *&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt; * &lt;br /&gt; * This program is distributed in the hope that it will be useful,&lt;br /&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt; * GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;+*&lt;br /&gt; * You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt; * &lt;br /&gt; * For further information please contact.&lt;br /&gt; *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt; #include &amp;quot;NyIdMarkerPickup.h&amp;quot;&lt;br /&gt;@@ -314,9 +312,8 @@&lt;br /&gt; 		double _cparam[8];&lt;br /&gt; &lt;br /&gt; 	private:&lt;br /&gt;-		const INyARRgbRaster* _raster;&lt;br /&gt;-		const TNyARIntSize* _raster_size;&lt;br /&gt; &lt;br /&gt;+&lt;br /&gt; 	public:&lt;br /&gt; 		PerspectivePixelReader()&lt;br /&gt; 		{&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/NyIdMarkerPattern.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/NyIdMarkerPattern.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/NyIdMarkerPattern.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/NyIdMarkerParam.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/NyIdMarkerParam.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/NyIdMarkerParam.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/NyIdMarkerDataEncoder_RawBit.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/NyIdMarkerDataEncoder_RawBit.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/NyIdMarkerDataEncoder_RawBit.cpp	(revision 335)&lt;br /&gt;@@ -2,27 +2,25 @@&lt;br /&gt; * PROJECT: NyARToolkitCPP&lt;br /&gt; * --------------------------------------------------------------------------------&lt;br /&gt; *&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt; *&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt; * &lt;br /&gt; * This program is distributed in the hope that it will be useful,&lt;br /&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt; * GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;+*&lt;br /&gt; * You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt; * &lt;br /&gt; * For further information please contact.&lt;br /&gt; *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt; &lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/NyIdMarkerData_RawBit.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/NyIdMarkerData_RawBit.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/NyIdMarkerData_RawBit.cpp	(revision 335)&lt;br /&gt;@@ -2,27 +2,25 @@&lt;br /&gt; * PROJECT: NyARToolkitCPP&lt;br /&gt; * --------------------------------------------------------------------------------&lt;br /&gt; *&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt; *&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt; * &lt;br /&gt; * This program is distributed in the hope that it will be useful,&lt;br /&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt; * GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;+*&lt;br /&gt; * You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt; * &lt;br /&gt; * For further information please contact.&lt;br /&gt; *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt; #include &amp;quot;NyIdMarkerData_RawBit.h&amp;quot;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/INyIdMarkerData.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/INyIdMarkerData.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/INyIdMarkerData.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;INyIdMarkerData.h&amp;quot;&lt;br /&gt; &lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/INyIdMarkerDataEncoder.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/INyIdMarkerDataEncoder.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/nyidmarker/INyIdMarkerDataEncoder.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSquareDetector.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSquareDetector.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSquareDetector.cpp	(revision 335)&lt;br /&gt;@@ -1,419 +0,0 @@&lt;br /&gt;-/* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;-#include &amp;quot;NyARSquareDetector.h&amp;quot;&lt;br /&gt;-#include &amp;quot;NyARLabeling_ARToolKit.h&amp;quot;&lt;br /&gt;-#include &amp;quot;NyARLabelingImage.h&amp;quot;&lt;br /&gt;-#include &amp;quot;NyARObserv2IdealMap.h&amp;quot;&lt;br /&gt;-#include &amp;quot;INyARSquareDetector.h&amp;quot;&lt;br /&gt;-#include &amp;quot;NyARVertexCounter.h&amp;quot;&lt;br /&gt;-#include &amp;quot;INyARPca2d.h&amp;quot;&lt;br /&gt;-#include &amp;quot;NyARPca2d_MatrixPCA_O2.h&amp;quot;&lt;br /&gt;-#include &amp;quot;../utils/NyArray.h&amp;quot;&lt;br /&gt;-#include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt;-#include &amp;lt;cstring&amp;gt;&lt;br /&gt;-#include &amp;lt;cstdio&amp;gt;&lt;br /&gt;-namespace NyARToolkitCPP&lt;br /&gt;-{&lt;br /&gt;-&lt;br /&gt;-	/**&lt;br /&gt;-	* ÉĸËӯϭÌФÈè©Ԡ֯˖͗ªðҲ×éĎÉĘÅ· &lt;br /&gt;-	* ÉĸËÊĘħÉԠ֯·éÉĸËðӾяµ»êÉĞđĢħÌÉĸËªԠ֯³êÄ¢é© ð˭ՆµÜ·&lt;br /&gt;-	*/&lt;br /&gt;-	class OverlapChecker&lt;br /&gt;-	{&lt;br /&gt;-	private:&lt;br /&gt;-		NyArray&amp;lt;const NyARLabelingLabel*&amp;gt; _labels;&lt;br /&gt;-		int _length;&lt;br /&gt;-&lt;br /&gt;-		/**&lt;br /&gt;-		* ΅ҥi_max_label͂ÌÉĸËðӾяÅ«éæ¤ÉĉĵėĆĎħðÊĚĢħ·é&lt;br /&gt;-		* &lt;br /&gt;-		* @param i_max_label&lt;br /&gt;-		*/&lt;br /&gt;-	public:&lt;br /&gt;-		OverlapChecker()&lt;br /&gt;-		{&lt;br /&gt;-			return;&lt;br /&gt;-		}&lt;br /&gt;-		~OverlapChecker()&lt;br /&gt;-		{&lt;br /&gt;-			return;&lt;br /&gt;-		}&lt;br /&gt;-		 void reset(int i_max_label)&lt;br /&gt;-		{&lt;br /&gt;-			if (i_max_label &amp;gt; this-&amp;gt;_labels.length){&lt;br /&gt;-				this-&amp;gt;_labels.renew(i_max_label);&lt;br /&gt;-			}&lt;br /&gt;-			this-&amp;gt;_length = 0;&lt;br /&gt;-		}&lt;br /&gt;-&lt;br /&gt;-		/**&lt;br /&gt;-		* ĠĆĢĎҎЛÌÉĸËðӇʁ·é&lt;br /&gt;-		* &lt;br /&gt;-		* @param i_label_ref&lt;br /&gt;-		*/&lt;br /&gt;-		 void push(const NyARLabelingLabel* i_label_ref)&lt;br /&gt;-		{&lt;br /&gt;-			this-&amp;gt;_labels.item[this-&amp;gt;_length] = i_label_ref;&lt;br /&gt;-			this-&amp;gt;_length++;&lt;br /&gt;-		}&lt;br /&gt;-&lt;br /&gt;-		/**&lt;br /&gt;-		* ̻ΝÊĘħÉ éÉĸËÆФÈÁÄ¢é©ð֔·&lt;br /&gt;-		* &lt;br /&gt;-		* @param i_label&lt;br /&gt;-		* @return ɽê©ÌÉĸËÌԠѤÉ éÈçÎfalse,Ԇקµ½ÉĸËÅ éʂ՜Ыª͂¯êÎtrueÅ·&lt;br /&gt;-		*/&lt;br /&gt;-		bool check(const NyARLabelingLabel&amp;amp; i_label)&lt;br /&gt;-		{&lt;br /&gt;-			// ФÈèψם©È&lt;br /&gt;-			const NyARLabelingLabel** label_pt = this-&amp;gt;_labels.item;&lt;br /&gt;-			const int px1 = (int) i_label.pos_x;&lt;br /&gt;-			const int py1 = (int) i_label.pos_y;&lt;br /&gt;-			for (int i = this-&amp;gt;_length - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;-				const int px2 = (int) label_pt[i]-&amp;gt;pos_x;&lt;br /&gt;-				const int py2 = (int) label_pt[i]-&amp;gt;pos_y;&lt;br /&gt;-				const int d = (px1 - px2) * (px1 - px2) + (py1 - py2) * (py1 - py2);&lt;br /&gt;-				if (d &amp;lt; label_pt[i]-&amp;gt;area / 4) {&lt;br /&gt;-					// ҎЛˏ&lt;br /&gt;-					return false;&lt;br /&gt;-				}&lt;br /&gt;-			}&lt;br /&gt;-			// ҎЛ&lt;br /&gt;-			return true;&lt;br /&gt;-		}&lt;br /&gt;-	};&lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt;-#define VERTEX_FACTOR 1.0// Ѽ̟ЯÌĴĀĎĞ&lt;br /&gt;-#define AR_AREA_MAX 100000// #define AR_AREA_MAX 100000&lt;br /&gt;-#define AR_AREA_MIN 70// #define AR_AREA_MIN 70&lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt;-	NyARSquareDetector::NyARSquareDetector(const NyARCameraDistortionFactor&amp;amp; i_dist_factor_ref,const TNyARIntSize&amp;amp; i_size)&lt;br /&gt;-	{&lt;br /&gt;-		this-&amp;gt;_width = i_size.w;&lt;br /&gt;-		this-&amp;gt;_height = i_size.h;&lt;br /&gt;-		//٣ÝͶϚĥĵËðάéÆ8*width/height*2Ì،ɦðЁկµÜ·&lt;br /&gt;-		//،ɦðϦè½­È¢Ъ͇Íi_dist_factor_refÌӬð»ÌÜÜϧÁÄ­¾³¢&lt;br /&gt;-		this-&amp;gt;_dist_factor = new NyARObserv2IdealMap(i_dist_factor_ref,i_size);&lt;br /&gt;-		this-&amp;gt;_limage = new NyARLabelingImage(this-&amp;gt;_width, this-&amp;gt;_height);&lt;br /&gt;-		this-&amp;gt;_labeling = new NyARLabeling_ARToolKit();&lt;br /&gt;-		this-&amp;gt;_labeling-&amp;gt;attachDestination(this-&amp;gt;_limage);&lt;br /&gt;-		this-&amp;gt;_pca=new NyARPca2d_MatrixPCA_O2();&lt;br /&gt;-&lt;br /&gt;-		// ؖ˳Ì΅ҥҷÍʦ׊Éʦè¤é΅ҥÌҷֻ͠Ĕăę&lt;br /&gt;-		int number_of_coord = (this-&amp;gt;_width + this-&amp;gt;_height) * 2;&lt;br /&gt;-		// ؖ˳įĢĴĀÍҸԟ֏ʷð·éÌÅؖ˳įĢĴĀÌÑջϦé&lt;br /&gt;-		this-&amp;gt;_max_coord = number_of_coord;&lt;br /&gt;-		this-&amp;gt;_xcoord = new int[number_of_coord * 2];&lt;br /&gt;-		this-&amp;gt;_ycoord = new int[number_of_coord * 2];&lt;br /&gt;-		this-&amp;gt;_xpos=new double[this-&amp;gt;_width+this-&amp;gt;_height];//΅ҥ֓ҷÍthis._width+this._height&lt;br /&gt;-		this-&amp;gt;_ypos=new double[this-&amp;gt;_width+this-&amp;gt;_height];//΅ҥ֓ҷÍthis._width+this._height&lt;br /&gt;-		this-&amp;gt;_overlap_checker=new OverlapChecker();&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt;-	NyARSquareDetector::~NyARSquareDetector()&lt;br /&gt;-	{&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_overlap_checker);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_labeling);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_limage);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_dist_factor);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_pca);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_xcoord);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_ycoord);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_xpos);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_ypos);&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt;-	void NyARSquareDetector::normalizeCoord(int i_coord_x[], int i_coord_y[], int i_index, int i_coord_num)&lt;br /&gt;-	{&lt;br /&gt;-		// vertex1ð˫˅ÉµÄֻͣÉպرðف̋&lt;br /&gt;-		memcpy(i_coord_x+i_coord_num,i_coord_x+1,i_index*sizeof(int));&lt;br /&gt;-		memcpy(i_coord_y+i_coord_num,i_coord_y+1,i_index*sizeof(int));&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt;-	void NyARSquareDetector::detectMarker(const NyARBinRaster&amp;amp; i_raster, NyARSquareStack&amp;amp; o_square_stack)&lt;br /&gt;-	{&lt;br /&gt;-		NyARLabelingImage&amp;amp; limage = *this-&amp;gt;_limage;&lt;br /&gt;-&lt;br /&gt;-		// ω˺ɻ&lt;br /&gt;-&lt;br /&gt;-		// ĽĊĺËğðÊĚĢħ&lt;br /&gt;-		o_square_stack.clear();&lt;br /&gt;-&lt;br /&gt;-		// ÉĸÊÓď&lt;br /&gt;-		this-&amp;gt;_labeling-&amp;gt;labeling(i_raster);&lt;br /&gt;-&lt;br /&gt;-		// ÉĸËДª0Èç±±ÜÅ&lt;br /&gt;-		int label_num = limage.getLabelStack().getLength();&lt;br /&gt;-		if (label_num &amp;lt; 1) {&lt;br /&gt;-			return;&lt;br /&gt;-		}&lt;br /&gt;-&lt;br /&gt;-		NyARLabelingLabelStack&amp;amp; stack = limage.getLabelStack();&lt;br /&gt;-		const NyArray&amp;lt;NyARLabelingLabel*&amp;gt;&amp;amp; labels = stack.getArray();&lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt;-		// ÉĸËðҥ«¢χÉЮر&lt;br /&gt;-		stack.sortByArea();&lt;br /&gt;-&lt;br /&gt;-		// ĦĊ¢ÉĸËðԇÝղÎµ&lt;br /&gt;-		int i;&lt;br /&gt;-		for (i = 0; i &amp;lt; label_num; i++) {&lt;br /&gt;-			// ̟͸ҎЛԠÌÉĸËĔăęÉÈéÜÅֳ΋&lt;br /&gt;-			if (labels.item[i]-&amp;gt;area &amp;lt;= AR_AREA_MAX) {&lt;br /&gt;-				break;&lt;br /&gt;-			}&lt;br /&gt;-		}&lt;br /&gt;-&lt;br /&gt;-		const int xsize = this-&amp;gt;_width;&lt;br /&gt;-		const int ysize = this-&amp;gt;_height;&lt;br /&gt;-		int* xcoord = this-&amp;gt;_xcoord;&lt;br /&gt;-		int* ycoord = this-&amp;gt;_ycoord;&lt;br /&gt;-		const int coord_max = this-&amp;gt;_max_coord;&lt;br /&gt;-		int mkvertex[5];&lt;br /&gt;-		OverlapChecker* overlap = this-&amp;gt;_overlap_checker;&lt;br /&gt;-		int coord_num;&lt;br /&gt;-		int label_area;&lt;br /&gt;-		const NyARLabelingLabel* label_pt;&lt;br /&gt;-&lt;br /&gt;-		//ФÈèĠĆĢĊÌ΅ҥДðѝӨ&lt;br /&gt;-		overlap-&amp;gt;reset(label_num);&lt;br /&gt;-&lt;br /&gt;-		for (; i &amp;lt; label_num; i++) {&lt;br /&gt;-			label_pt = labels.item[i];&lt;br /&gt;-			label_area = label_pt-&amp;gt;area;&lt;br /&gt;-			// ̟͸ҎЛĔăęæèàϬ³­ÈÁ½çЉ׹&lt;br /&gt;-			if (label_area &amp;lt; AR_AREA_MIN) {&lt;br /&gt;-				break;&lt;br /&gt;-			}&lt;br /&gt;-			// ĎÊĢĶ،ɦªʦ׊Ì٧ÉњµÄ¢êÎϜˏ&lt;br /&gt;-			if (label_pt-&amp;gt;clip_l == 1 || label_pt-&amp;gt;clip_r == xsize - 2) {// if(wclip[i*4+0] == 1 || wclip[i*4+1] ==xsize-2){&lt;br /&gt;-				continue;&lt;br /&gt;-			}&lt;br /&gt;-			if (label_pt-&amp;gt;clip_t == 1 || label_pt-&amp;gt;clip_b == ysize - 2) {// if( wclip[i*4+2] == 1 || wclip[i*4+3] ==ysize-2){&lt;br /&gt;-				continue;&lt;br /&gt;-			}&lt;br /&gt;-			// ˹É̟Я³ê½̩͠ÆÌФÈèð˭Ն&lt;br /&gt;-			if (!overlap-&amp;gt;check(*label_pt)) {&lt;br /&gt;-				// ФÈÁÄ¢éæ¤¾&lt;br /&gt;-				continue;&lt;br /&gt;-			}&lt;br /&gt;-&lt;br /&gt;-			// ؖ˳ðϦӾ&lt;br /&gt;-			coord_num = limage.getContour(i, coord_max, xcoord, ycoord);&lt;br /&gt;-			if (coord_num == coord_max) {&lt;br /&gt;-				// ؖ˳ªҥ«·¬é&lt;br /&gt;-				continue;&lt;br /&gt;-			}&lt;br /&gt;-			//Ҹԟͳ֢ÌăÓĦĎĘðϦӾ&lt;br /&gt;-			const int vertex1 = scanVertex(xcoord, ycoord, coord_num);&lt;br /&gt;-&lt;br /&gt;-			// Ҹԟͳ֢(vertex1)ðѦӪÉր×È¨µ½պرðάЬ·é&lt;br /&gt;-			normalizeCoord(xcoord, ycoord, vertex1, coord_num);&lt;br /&gt;-&lt;br /&gt;-			// ،ɦðπյ·é&lt;br /&gt;-			NyARSquare* square_ptr = o_square_stack.prePush();&lt;br /&gt;-&lt;br /&gt;-			// ҸԟЮֱðϦӾ&lt;br /&gt;-			if (!getSquareVertex(xcoord, ycoord, vertex1, coord_num, label_area, mkvertex)) {&lt;br /&gt;-				o_square_stack.pop();// ҸԟÌϦӾªЯ׈È©Á½ÌÅժ˼&lt;br /&gt;-				continue;&lt;br /&gt;-			}&lt;br /&gt;-			// ĽĊð̟Я&lt;br /&gt;-			if (!getSquareLine(mkvertex, xcoord, ycoord,*square_ptr)) {&lt;br /&gt;-				// ̩͠ªЬקµÈ©Á½&lt;br /&gt;-				o_square_stack.pop();&lt;br /&gt;-				continue;&lt;br /&gt;-			}&lt;br /&gt;-			// ̟ЯΏÌ̩͠ÌѮµ½ÉĸËðФÈèĠĆĢĎÉӇʁ·é&lt;br /&gt;-			overlap-&amp;gt;push(label_pt);&lt;br /&gt;-		}	&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt;-&lt;br /&gt;-	int NyARSquareDetector::scanVertex(const int i_xcoord[], const int i_ycoord[], int i_coord_num)&lt;br /&gt;-	{&lt;br /&gt;-		const int sx = i_xcoord[0];&lt;br /&gt;-		const int sy = i_ycoord[0];&lt;br /&gt;-		int d = 0;&lt;br /&gt;-		int w, x, y;&lt;br /&gt;-		int ret = 0;&lt;br /&gt;-		for (int i = 1; i &amp;lt; i_coord_num; i++) {&lt;br /&gt;-			x = i_xcoord[i] - sx;&lt;br /&gt;-			y = i_ycoord[i] - sy;&lt;br /&gt;-			w = x * x + y * y;&lt;br /&gt;-			if (w &amp;gt; d) {&lt;br /&gt;-				d = w;&lt;br /&gt;-				ret = i;&lt;br /&gt;-			}&lt;br /&gt;-			// ±±Å¤Ü­Љ׹а̏ԼêçêÈ¢©È&lt;br /&gt;-		}&lt;br /&gt;-		return ret;&lt;br /&gt;-	}&lt;br /&gt;-	NyARVertexCounter __getSquareVertex_wv1;&lt;br /&gt;-	NyARVertexCounter __getSquareVertex_wv2;&lt;br /&gt;-&lt;br /&gt;-	/**&lt;br /&gt;-	* static int arDetectMarker2_check_square( int area, ARMarkerInfo2 *marker_info2, double factor ) ˖ДÌңҖ˖Д OPTIMIZED STEP [450-&amp;gt;415] o_squareÉҸԟЮֱðĚĢħµÜ·&lt;br /&gt;-	* &lt;br /&gt;-	* @param i_x_coord&lt;br /&gt;-	* @param i_y_coord&lt;br /&gt;-	* @param i_vertex1_index&lt;br /&gt;-	* @param i_coord_num&lt;br /&gt;-	* @param i_area&lt;br /&gt;-	* @param o_vertex&lt;br /&gt;-	* ضҦДÍint[4]Å éΖ&lt;br /&gt;-	* @return&lt;br /&gt;-	*/&lt;br /&gt;-	bool NyARSquareDetector::getSquareVertex(const int i_x_coord[], const int i_y_coord[], int i_vertex1_index, int i_coord_num, int i_area, int o_vertex[])&lt;br /&gt;-	{&lt;br /&gt;-		NyARVertexCounter&amp;amp; wv1 = this-&amp;gt;__getSquareVertex_wv1;&lt;br /&gt;-		NyARVertexCounter&amp;amp; wv2 = this-&amp;gt;__getSquareVertex_wv2;&lt;br /&gt;-		const int end_of_coord = i_vertex1_index + i_coord_num - 1;&lt;br /&gt;-		const int sx = i_x_coord[i_vertex1_index];// sx = marker_info2-&amp;gt;x_coord[0];&lt;br /&gt;-		const int sy = i_y_coord[i_vertex1_index];// sy = marker_info2-&amp;gt;y_coord[0];&lt;br /&gt;-		int dmax = 0;&lt;br /&gt;-		int v1 = i_vertex1_index;&lt;br /&gt;-		for (int i = 1 + i_vertex1_index; i &amp;lt; end_of_coord; i++) {// for(i=1;i&amp;lt;marker_info2-&amp;gt;coord_num-1;i++)&lt;br /&gt;-			// {&lt;br /&gt;-			const int d = (i_x_coord[i] - sx) * (i_x_coord[i] - sx) + (i_y_coord[i] - sy) * (i_y_coord[i] - sy);&lt;br /&gt;-			if (d &amp;gt; dmax) {&lt;br /&gt;-				dmax = d;&lt;br /&gt;-				v1 = i;&lt;br /&gt;-			}&lt;br /&gt;-		}&lt;br /&gt;-		const double thresh = (i_area / 0.75) * 0.01 * VERTEX_FACTOR;&lt;br /&gt;-&lt;br /&gt;-		o_vertex[0] = i_vertex1_index;&lt;br /&gt;-&lt;br /&gt;-		if (!wv1.getVertex(i_x_coord, i_y_coord, i_vertex1_index, v1, thresh)) { // if(get_vertex(marker_info2-&amp;gt;x_coord,marker_info2-&amp;gt;y_coord,0,v1,thresh,wv1,&amp;amp;wvnum1)&amp;lt;&lt;br /&gt;-			// 0 ) {&lt;br /&gt;-			return false;&lt;br /&gt;-		}&lt;br /&gt;-		if (!wv2.getVertex(i_x_coord, i_y_coord, v1, end_of_coord, thresh)) {// if(get_vertex(marker_info2-&amp;gt;x_coord,marker_info2-&amp;gt;y_coord,v1,marker_info2-&amp;gt;coord_num-1,thresh,wv2,&amp;amp;wvnum2)&lt;br /&gt;-			// &amp;lt; 0) {&lt;br /&gt;-			return false;&lt;br /&gt;-		}&lt;br /&gt;-&lt;br /&gt;-		int v2;&lt;br /&gt;-		if (wv1.number_of_vertex == 1 &amp;amp;&amp;amp; wv2.number_of_vertex == 1) {// if(wvnum1 == 1 &amp;amp;&amp;amp; wvnum2== 1) {&lt;br /&gt;-			o_vertex[1] = wv1.vertex[0];&lt;br /&gt;-			o_vertex[2] = v1;&lt;br /&gt;-			o_vertex[3] = wv2.vertex[0];&lt;br /&gt;-		} else if (wv1.number_of_vertex &amp;gt; 1 &amp;amp;&amp;amp; wv2.number_of_vertex == 0) {// }else if( wvnum1 &amp;gt; 1 &amp;amp;&amp;amp; wvnum2== 0) {&lt;br /&gt;-			//ҸԟɊӵð̎ԟ©çҎ˰ԟÌ˔Ì1/2É éÆ؜ҺµÄ̟ε·é&lt;br /&gt;-			v2 = (v1-i_vertex1_index)/2+i_vertex1_index;&lt;br /&gt;-			if (!wv1.getVertex(i_x_coord, i_y_coord, i_vertex1_index, v2, thresh)) {&lt;br /&gt;-				return false;&lt;br /&gt;-			}&lt;br /&gt;-			if (!wv2.getVertex(i_x_coord, i_y_coord, v2, v1, thresh)) {&lt;br /&gt;-				return false;&lt;br /&gt;-			}&lt;br /&gt;-			if (wv1.number_of_vertex == 1 &amp;amp;&amp;amp; wv2.number_of_vertex == 1) {&lt;br /&gt;-				o_vertex[1] = wv1.vertex[0];&lt;br /&gt;-				o_vertex[2] = wv2.vertex[0];&lt;br /&gt;-				o_vertex[3] = v1;&lt;br /&gt;-			} else {&lt;br /&gt;-				return false;&lt;br /&gt;-			}&lt;br /&gt;-		} else if (wv1.number_of_vertex == 0 &amp;amp;&amp;amp; wv2.number_of_vertex &amp;gt; 1) {&lt;br /&gt;-			//v2 = (v1-i_vertex1_index+ end_of_coord-i_vertex1_index) / 2+i_vertex1_index;&lt;br /&gt;-			v2 = (v1+ end_of_coord)/2;&lt;br /&gt;-&lt;br /&gt;-			if (!wv1.getVertex(i_x_coord, i_y_coord, v1, v2, thresh)) {&lt;br /&gt;-				return false;&lt;br /&gt;-			}&lt;br /&gt;-			if (!wv2.getVertex(i_x_coord, i_y_coord, v2, end_of_coord, thresh)) {&lt;br /&gt;-				return false;&lt;br /&gt;-			}&lt;br /&gt;-			if (wv1.number_of_vertex == 1 &amp;amp;&amp;amp; wv2.number_of_vertex == 1) {&lt;br /&gt;-				o_vertex[1] = v1;&lt;br /&gt;-				o_vertex[2] = wv1.vertex[0];&lt;br /&gt;-				o_vertex[3] = wv2.vertex[0];&lt;br /&gt;-			} else {&lt;br /&gt;-				return false;&lt;br /&gt;-			}&lt;br /&gt;-		} else {&lt;br /&gt;-			return false;&lt;br /&gt;-		}&lt;br /&gt;-		o_vertex[4] = end_of_coord;&lt;br /&gt;-		return true;&lt;br /&gt;-	}&lt;br /&gt;-&lt;br /&gt;-	bool NyARSquareDetector::getSquareLine(const int i_mkvertex[], const int i_xcoord[],const int i_ycoord[], NyARSquare&amp;amp; o_square)&lt;br /&gt;-	{&lt;br /&gt;-		NyARDoubleMatrix22&amp;amp; evec=this-&amp;gt;__getSquareLine_evec;&lt;br /&gt;-		TNyARDoublePoint2d mean;&lt;br /&gt;-		TNyARDoublePoint2d ev;&lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt;-		for (int i = 0; i &amp;lt; 4; i++) {&lt;br /&gt;-			const double w1 = (double) (i_mkvertex[i + 1] - i_mkvertex[i] + 1) * 0.05 + 0.5;&lt;br /&gt;-			const int st = (int) (i_mkvertex[i] + w1);&lt;br /&gt;-			const int ed = (int) (i_mkvertex[i + 1] - w1);&lt;br /&gt;-			const int n = ed - st + 1;&lt;br /&gt;-			if (n &amp;lt; 2) {&lt;br /&gt;-				// nª2ɈɺÅmatrix.PCAðͶϚ·é±ÆÍÅ«È¢ÌÅćÉ&lt;br /&gt;-				return false;&lt;br /&gt;-			}&lt;br /&gt;-			//պرάЬ&lt;br /&gt;-			this-&amp;gt;_dist_factor-&amp;gt;observ2IdealBatch(i_xcoord, i_ycoord, st, n,this-&amp;gt;_xpos,this-&amp;gt;_ypos);&lt;br /&gt;-&lt;br /&gt;-			//ϥЬժժэ·é&lt;br /&gt;-			this-&amp;gt;_pca-&amp;gt;pca(this-&amp;gt;_xpos,this-&amp;gt;_ypos,n,evec, ev,mean);&lt;br /&gt;-			TNyARLinear&amp;amp; l_line_i = o_square.line[i];&lt;br /&gt;-			l_line_i.run = evec.m01;// line[i][0] = evec-&amp;gt;m[1];&lt;br /&gt;-			l_line_i.rise = -evec.m00;// line[i][1] = -evec-&amp;gt;m[0];&lt;br /&gt;-			l_line_i.intercept = -(l_line_i.run * mean.x + l_line_i.rise * mean.y);// line[i][2] = -(line[i][0]*mean-&amp;gt;v[0] + line[i][1]*mean-&amp;gt;v[1]);&lt;br /&gt;-		}&lt;br /&gt;-&lt;br /&gt;-		TNyARDoublePoint2d* l_sqvertex = o_square.sqvertex;&lt;br /&gt;-		TNyARIntPoint2d* l_imvertex = o_square.imvertex;&lt;br /&gt;-		for (int i = 0; i &amp;lt; 4; i++) {&lt;br /&gt;-			const TNyARLinear&amp;amp; l_line_i = o_square.line[i];&lt;br /&gt;-			const TNyARLinear&amp;amp; l_line_2 = o_square.line[(i + 3) % 4];&lt;br /&gt;-			const double w1 = l_line_2.run * l_line_i.rise - l_line_i.run * l_line_2.rise;&lt;br /&gt;-			if (w1 == 0.0) {&lt;br /&gt;-				return false;&lt;br /&gt;-			}&lt;br /&gt;-			l_sqvertex[i].x = (l_line_2.rise * l_line_i.intercept - l_line_i.rise * l_line_2.intercept) / w1;&lt;br /&gt;-			l_sqvertex[i].y = (l_line_i.run * l_line_2.intercept - l_line_2.run * l_line_i.intercept) / w1;&lt;br /&gt;-			// ҸԟăÓĦĎĘ©çҸԟ΀֗ðӾÄ֛Ѷ&lt;br /&gt;-			l_imvertex[i].x = i_xcoord[i_mkvertex[i]];&lt;br /&gt;-			l_imvertex[i].y = i_ycoord[i_mkvertex[i]];&lt;br /&gt;-		}&lt;br /&gt;-		return true;&lt;br /&gt;-	}&lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt;-}&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARLabeling.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARLabeling.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARLabeling.cpp	(revision 335)&lt;br /&gt;@@ -1,28 +0,0 @@&lt;br /&gt;-/* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;-#include &amp;quot;INyARLabeling.h&amp;quot;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARLabelingImage.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARLabelingImage.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARLabelingImage.cpp	(revision 335)&lt;br /&gt;@@ -1,29 +0,0 @@&lt;br /&gt;-/* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;-#include &amp;quot;INyARLabelingImage.h&amp;quot;&lt;br /&gt;-&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARFitVecCalculator.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARFitVecCalculator.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARFitVecCalculator.cpp	(revision 335)&lt;br /&gt;@@ -1,152 +0,0 @@&lt;br /&gt;-/* &lt;br /&gt;-* PROJECT: NyARToolkitCPP&lt;br /&gt;-* --------------------------------------------------------------------------------&lt;br /&gt;-*&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;-*&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;-* &lt;br /&gt;-* This program is distributed in the hope that it will be useful,&lt;br /&gt;-* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;-* GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;-* You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;-* &lt;br /&gt;-* For further information please contact.&lt;br /&gt;-*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;-* &lt;br /&gt;-*/&lt;br /&gt;-#include &amp;quot;NyARFitVecCalculator.h&amp;quot;&lt;br /&gt;-#include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt;-#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;-&lt;br /&gt;-namespace NyARToolkitCPP&lt;br /&gt;-{&lt;br /&gt;-	NyARFitVecCalculator::NyARFitVecCalculator(const NyARPerspectiveProjectionMatrix* i_projection_mat_ref,const NyARCameraDistortionFactor* i_distortion_ref)&lt;br /&gt;-	{&lt;br /&gt;-		this-&amp;gt;_mat_a=new NyARMat(8,3);&lt;br /&gt;-		this-&amp;gt;_mat_b=new NyARMat(3,8);&lt;br /&gt;-		this-&amp;gt;_mat_d=new NyARMat(3,3);&lt;br /&gt;-&lt;br /&gt;-		this-&amp;gt;_mat_e = new NyARMat(3, 1);&lt;br /&gt;-		this-&amp;gt;_mat_f = new NyARMat(3, 1);&lt;br /&gt;-		this-&amp;gt;__calculateTransferVec_mat_c = new NyARMat(8, 1);//NUMBER_OF_VERTEX * 2, 1&lt;br /&gt;-&lt;br /&gt;-		// ֏ʷĽħÊĎĘdÆbÌπյ(arGetTransMatSubÌɪՔ)&lt;br /&gt;-		double* a_array = this-&amp;gt;_mat_a-&amp;gt;getArray();&lt;br /&gt;-		double* b_array = this-&amp;gt;_mat_b-&amp;gt;getArray();&lt;br /&gt;-&lt;br /&gt;-		//֏ʷذγرÌcparaͅӨӬÌՔժðѦÉω˺ɻµÄµÜ¤&lt;br /&gt;-		for (int i = 0; i &amp;lt; 4; i++){&lt;br /&gt;-			const int x2 = i * 2;&lt;br /&gt;-			a_array[x2*3+0] = b_array[0*8+x2] = i_projection_mat_ref-&amp;gt;m00;// mat_a-&amp;gt;m[j*6+0]=mat_b-&amp;gt;m[num*0+j*2] =cpara[0][0];&lt;br /&gt;-			a_array[x2*3+1] = b_array[1*8+x2] = i_projection_mat_ref-&amp;gt;m01;// mat_a-&amp;gt;m[j*6+1]=mat_b-&amp;gt;m[num*2+j*2]=cpara[0][1];&lt;br /&gt;-			a_array[(x2 + 1)*3+0] = b_array[0*8+x2 + 1] = 0.0;// mat_a-&amp;gt;m[j*6+3] =mat_b-&amp;gt;m[num*0+j*2+1]= 0.0;&lt;br /&gt;-			a_array[(x2 + 1)*3+1] = b_array[1*8+x2 + 1] = i_projection_mat_ref-&amp;gt;m11;// mat_a-&amp;gt;m[j*6+4] =mat_b-&amp;gt;m[num*2+j*2+1]= cpara[1][1];&lt;br /&gt;-			//a_array[x2 + 1][2] = b_array[2][x2 + 1] = cpara[1 * 4 + 2] - o_marker_vertex_2d[i].y;// mat_a-&amp;gt;m[j*6+5]=mat_b-&amp;gt;m[num*4+j*2+1]=cpara[1][2]-pos2d[j][1];&lt;br /&gt;-		}&lt;br /&gt;-		this-&amp;gt;_projection_mat=i_projection_mat_ref;&lt;br /&gt;-		this-&amp;gt;_distortionfactor=i_distortion_ref;&lt;br /&gt;-		this-&amp;gt;_offset_square=NULL;&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt;-	NyARFitVecCalculator::~NyARFitVecCalculator()&lt;br /&gt;-	{&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_mat_a);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_mat_b);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_mat_d);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_mat_e);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_mat_f);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;__calculateTransferVec_mat_c);//NUMBER_OF_VERTEX * 2, 1&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt;-	void NyARFitVecCalculator::setOffsetSquare(const NyARTransOffset* i_offset)&lt;br /&gt;-	{&lt;br /&gt;-		this-&amp;gt;_offset_square=i_offset;&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt;-	const TNyARDoublePoint2d* NyARFitVecCalculator::getFitSquare()const&lt;br /&gt;-	{&lt;br /&gt;-		return this-&amp;gt;_fitsquare_vertex;&lt;br /&gt;-	}&lt;br /&gt;-	const NyARTransOffset* NyARFitVecCalculator::getOffsetVertex()const&lt;br /&gt;-	{&lt;br /&gt;-		return this-&amp;gt;_offset_square;&lt;br /&gt;-	}&lt;br /&gt;-&lt;br /&gt;-	void NyARFitVecCalculator::setFittedSquare(const TNyARDoublePoint2d* i_square_vertex[])&lt;br /&gt;-	{&lt;br /&gt;-		TNyARDoublePoint2d* vertex=this-&amp;gt;_fitsquare_vertex;&lt;br /&gt;-		this-&amp;gt;_distortionfactor-&amp;gt;ideal2ObservBatch(i_square_vertex, vertex,4);&lt;br /&gt;-		//		} else {&lt;br /&gt;-		//			for (i = 0; i &amp;lt; NUMBER_OF_VERTEX; i++) {&lt;br /&gt;-		//				o_marker_vertex_2d[i].x = i_square_vertex[i].x;&lt;br /&gt;-		//				o_marker_vertex_2d[i].y = i_square_vertex[i].y;&lt;br /&gt;-		//			}&lt;br /&gt;-		//		}		&lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt;-		const double cpara02=this-&amp;gt;_projection_mat-&amp;gt;m02;&lt;br /&gt;-		const double cpara12=this-&amp;gt;_projection_mat-&amp;gt;m12;		&lt;br /&gt;-		NyARMat&amp;amp; mat_d=*this-&amp;gt;_mat_d;&lt;br /&gt;-		NyARMat&amp;amp; mat_a=*this-&amp;gt;_mat_a;&lt;br /&gt;-		NyARMat&amp;amp; mat_b=*this-&amp;gt;_mat_b;&lt;br /&gt;-		double* a_array = mat_a.getArray();&lt;br /&gt;-		double* b_array = mat_b.getArray();&lt;br /&gt;-		for (int i = 0; i &amp;lt; 4; i++) {&lt;br /&gt;-			const int x2 = i * 2;	&lt;br /&gt;-			a_array[x2*3+2] = b_array[2*8+x2] = cpara02 - vertex[i].x;// mat_a-&amp;gt;m[j*6+2]=mat_b-&amp;gt;m[num*4+j*2]=cpara[0][2]-pos2d[j][0];&lt;br /&gt;-			a_array[(x2 + 1)*3+2] = b_array[2*8+x2 + 1] = cpara12 - vertex[i].y;// mat_a-&amp;gt;m[j*6+5]=mat_b-&amp;gt;m[num*4+j*2+1]=cpara[1][2]-pos2d[j][1];&lt;br /&gt;-		}&lt;br /&gt;-		// mat_d&lt;br /&gt;-		mat_d.matrixMul(mat_b, mat_a);&lt;br /&gt;-		mat_d.matrixSelfInv();		&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt;-&lt;br /&gt;-	void NyARFitVecCalculator::calculateTransfer(const NyARRotMatrix&amp;amp; i_rotation,TNyARDoublePoint3d&amp;amp; o_transfer)const&lt;br /&gt;-	{&lt;br /&gt;-		NyAR_ASSERT(this-&amp;gt;_offset_square!=NULL);&lt;br /&gt;-		TNyARDoublePoint3d point3d[4];&lt;br /&gt;-		const double cpara00=this-&amp;gt;_projection_mat-&amp;gt;m00;&lt;br /&gt;-		const double cpara01=this-&amp;gt;_projection_mat-&amp;gt;m01;&lt;br /&gt;-		const double cpara02=this-&amp;gt;_projection_mat-&amp;gt;m02;&lt;br /&gt;-		const double cpara11=this-&amp;gt;_projection_mat-&amp;gt;m11;&lt;br /&gt;-		const double cpara12=this-&amp;gt;_projection_mat-&amp;gt;m12;&lt;br /&gt;-		const TNyARDoublePoint3d* vertex3d=this-&amp;gt;_offset_square-&amp;gt;vertex;		&lt;br /&gt;-		const TNyARDoublePoint2d* vertex2d=this-&amp;gt;_fitsquare_vertex;&lt;br /&gt;-		NyARMat&amp;amp; mat_c = *this-&amp;gt;__calculateTransferVec_mat_c;// ΟψםÅӬðàç¤ÌÅω˺ɻÌ֋ضÍֳ¢&lt;br /&gt;-&lt;br /&gt;-		double* f_array = this-&amp;gt;_mat_f-&amp;gt;getArray();&lt;br /&gt;-		double* c_array = mat_c.getArray();&lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt;-		//©3D΀֗ªðɪʇпˁ&lt;br /&gt;-		i_rotation.getPoint3dBatch(vertex3d,point3d,4);&lt;br /&gt;-		for (int i = 0; i &amp;lt; 4; i++) {&lt;br /&gt;-			const int x2 = i+i;&lt;br /&gt;-			const TNyARDoublePoint3d&amp;amp; point3d_ptr=point3d[i];&lt;br /&gt;-			//			i_rotation.getPoint3d(vertex3d[i],point3d);&lt;br /&gt;-			//ӧ΋֏ʷ&lt;br /&gt;-			c_array[x2*1+0] = point3d_ptr.z * vertex2d[i].x - cpara00 * point3d_ptr.x - cpara01 * point3d_ptr.y - cpara02 * point3d_ptr.z;// mat_c-&amp;gt;m[j*2+0] = wz*pos2d[j][0]-cpara[0][0]*wx-cpara[0][1]*wy-cpara[0][2]*wz;&lt;br /&gt;-			c_array[(x2 + 1)*1+0] = point3d_ptr.z * vertex2d[i].y - cpara11 * point3d_ptr.y - cpara12 * point3d_ptr.z;// mat_c-&amp;gt;m[j*2+1]= wz*pos2d[j][1]-cpara[1][1]*wy-cpara[1][2]*wz;&lt;br /&gt;-		}&lt;br /&gt;-		this-&amp;gt;_mat_e-&amp;gt;matrixMul(*this-&amp;gt;_mat_b, mat_c);&lt;br /&gt;-		this-&amp;gt;_mat_f-&amp;gt;matrixMul(*this-&amp;gt;_mat_d, *this-&amp;gt;_mat_e);&lt;br /&gt;-&lt;br /&gt;-		// double[] trans=wk_arGetTransMatSub_trans;//double trans[3];&lt;br /&gt;-		o_transfer.x= f_array[0*1+0];// trans[0] = mat_f-&amp;gt;m[0];&lt;br /&gt;-		o_transfer.y= f_array[1*1+0];&lt;br /&gt;-		o_transfer.z= f_array[2*1+0];// trans[2] = mat_f-&amp;gt;m[2];&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt;-}&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotMatrix_NyARToolKit.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotMatrix_NyARToolKit.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotMatrix_NyARToolKit.cpp	(revision 335)&lt;br /&gt;@@ -1,71 +0,0 @@&lt;br /&gt;-/* &lt;br /&gt;-* PROJECT: NyARToolkitCPP&lt;br /&gt;-* --------------------------------------------------------------------------------&lt;br /&gt;-*&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;-*&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;-* &lt;br /&gt;-* This program is distributed in the hope that it will be useful,&lt;br /&gt;-* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;-* GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;-* You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;-* &lt;br /&gt;-* For further information please contact.&lt;br /&gt;-*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;-* &lt;br /&gt;-*/&lt;br /&gt;-&lt;br /&gt;-#include &amp;quot;NyARRotMatrix_NyARToolKit.h&amp;quot;&lt;br /&gt;-#include &amp;lt;math.h&amp;gt;&lt;br /&gt;-namespace NyARToolkitCPP&lt;br /&gt;-{&lt;br /&gt;-	NyARRotMatrix_NyARToolKit::NyARRotMatrix_NyARToolKit(const NyARPerspectiveProjectionMatrix* i_matrix):NyARRotMatrix_ARToolKit(i_matrix)&lt;br /&gt;-	{&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt;-	/*	˖ДͷµҖ¦&lt;br /&gt;-	*/&lt;br /&gt;-	void NyARRotMatrix_NyARToolKit::setAngle(double i_x,double i_y,double i_z)&lt;br /&gt;-	{&lt;br /&gt;-		const double sina = sin(i_x);&lt;br /&gt;-		const double cosa = cos(i_x);&lt;br /&gt;-		const double sinb = sin(i_y);&lt;br /&gt;-		const double cosb = cos(i_y);&lt;br /&gt;-		const double sinc = sin(i_z);&lt;br /&gt;-		const double cosc = cos(i_z);&lt;br /&gt;-		// Optimize&lt;br /&gt;-		const double CACA = cosa * cosa;&lt;br /&gt;-		const double SASA = sina * sina;&lt;br /&gt;-		const double SACA = sina * cosa;&lt;br /&gt;-		const double SASB = sina * sinb;&lt;br /&gt;-		const double CASB = cosa * sinb;&lt;br /&gt;-		const double SACACB = SACA * cosb;&lt;br /&gt;-&lt;br /&gt;-		this-&amp;gt;m00 = CACA * cosb * cosc + SASA * cosc + SACACB * sinc - SACA * sinc;&lt;br /&gt;-		this-&amp;gt;m01 = -CACA * cosb * sinc - SASA * sinc + SACACB * cosc - SACA * cosc;&lt;br /&gt;-		this-&amp;gt;m02 = CASB;&lt;br /&gt;-		this-&amp;gt;m10 = SACACB * cosc - SACA * cosc + SASA * cosb * sinc + CACA * sinc;&lt;br /&gt;-		this-&amp;gt;m11 = -SACACB * sinc + SACA * sinc + SASA * cosb * cosc + CACA * cosc;&lt;br /&gt;-		this-&amp;gt;m12 = SASB;&lt;br /&gt;-		this-&amp;gt;m20 = -CASB * cosc - SASB * sinc;&lt;br /&gt;-		this-&amp;gt;m21 = CASB * sinc - SASB * cosc;&lt;br /&gt;-		this-&amp;gt;m22 = cosb;&lt;br /&gt;-		//angleð̴ͶϚ¹¸ÉҼњңԼ&lt;br /&gt;-		this-&amp;gt;_angle.x=i_x;&lt;br /&gt;-		this-&amp;gt;_angle.y=i_y;&lt;br /&gt;-		this-&amp;gt;_angle.z=i_z;&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt;-&lt;br /&gt;-}&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARRotTransOptimize.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARRotTransOptimize.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARRotTransOptimize.cpp	(revision 335)&lt;br /&gt;@@ -1,29 +1,27 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;INyARRotTransOptimize.h&amp;quot;&lt;br /&gt; &lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDoubleMatrix44.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDoubleMatrix44.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDoubleMatrix44.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARDoubleMatrix44.h&amp;quot;&lt;br /&gt; &lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt;@@ -80,5 +78,90 @@&lt;br /&gt; 		o_value[15]=this-&amp;gt;m33;&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt;+	bool NyARDoubleMatrix44::inverse(const NyARDoubleMatrix44&amp;amp; i_src)&lt;br /&gt;+	{&lt;br /&gt;+		double a11,a12,a13,a14,a21,a22,a23,a24,a31,a32,a33,a34,a41,a42,a43,a44;&lt;br /&gt;+		double b11,b12,b13,b14,b21,b22,b23,b24,b31,b32,b33,b34,b41,b42,b43,b44;	&lt;br /&gt;+		double t1,t2,t3,t4,t5,t6;&lt;br /&gt;+		a11=i_src.m00;a12=i_src.m01;a13=i_src.m02;a14=i_src.m03;&lt;br /&gt;+		a21=i_src.m10;a22=i_src.m11;a23=i_src.m12;a24=i_src.m13;&lt;br /&gt;+		a31=i_src.m20;a32=i_src.m21;a33=i_src.m22;a34=i_src.m23;&lt;br /&gt;+		a41=i_src.m30;a42=i_src.m31;a43=i_src.m32;a44=i_src.m33;&lt;br /&gt;+		&lt;br /&gt;+		t1=a33*a44-a34*a43;&lt;br /&gt;+		t2=a34*a42-a32*a44;&lt;br /&gt;+		t3=a32*a43-a33*a42;&lt;br /&gt;+		t4=a34*a41-a31*a44;&lt;br /&gt;+		t5=a31*a43-a33*a41;&lt;br /&gt;+		t6=a31*a42-a32*a41;&lt;br /&gt;+		&lt;br /&gt;+		b11=a22*t1+a23*t2+a24*t3;&lt;br /&gt;+		b21=-(a23*t4+a24*t5+a21*t1);&lt;br /&gt;+		b31=a24*t6-a21*t2+a22*t4;&lt;br /&gt;+		b41=-(a21*t3-a22*t5+a23*t6);&lt;br /&gt;+		&lt;br /&gt;+		t1=a43*a14-a44*a13;&lt;br /&gt;+		t2=a44*a12-a42*a14;&lt;br /&gt;+		t3=a42*a13-a43*a12;&lt;br /&gt;+		t4=a44*a11-a41*a14;&lt;br /&gt;+		t5=a41*a13-a43*a11;&lt;br /&gt;+		t6=a41*a12-a42*a11;&lt;br /&gt; &lt;br /&gt;+		b12=-(a32*t1+a33*t2+a34*t3);&lt;br /&gt;+		b22=a33*t4+a34*t5+a31*t1;&lt;br /&gt;+		b32=-(a34*t6-a31*t2+a32*t4);&lt;br /&gt;+		b42=a31*t3-a32*t5+a33*t6;&lt;br /&gt;+		&lt;br /&gt;+		t1=a13*a24-a14*a23;&lt;br /&gt;+		t2=a14*a22-a12*a24;&lt;br /&gt;+		t3=a12*a23-a13*a22;&lt;br /&gt;+		t4=a14*a21-a11*a24;&lt;br /&gt;+		t5=a11*a23-a13*a21;&lt;br /&gt;+		t6=a11*a22-a12*a21;&lt;br /&gt;+&lt;br /&gt;+		b13=a42*t1+a43*t2+a44*t3;&lt;br /&gt;+		b23=-(a43*t4+a44*t5+a41*t1);&lt;br /&gt;+		b33=a44*t6-a41*t2+a42*t4;&lt;br /&gt;+		b43=-(a41*t3-a42*t5+a43*t6);&lt;br /&gt;+&lt;br /&gt;+		t1=a23*a34-a24*a33;&lt;br /&gt;+		t2=a24*a32-a22*a34;&lt;br /&gt;+		t3=a22*a33-a23*a32;&lt;br /&gt;+		t4=a24*a31-a21*a34;		&lt;br /&gt;+		t5=a21*a33-a23*a31;&lt;br /&gt;+		t6=a21*a32-a22*a31;&lt;br /&gt;+&lt;br /&gt;+		b14=-(a12*t1+a13*t2+a14*t3);&lt;br /&gt;+		b24=a13*t4+a14*t5+a11*t1;&lt;br /&gt;+		b34=-(a14*t6-a11*t2+a12*t4);&lt;br /&gt;+		b44=a11*t3-a12*t5+a13*t6;&lt;br /&gt;+		&lt;br /&gt;+		double det_1=(a11*b11+a21*b12+a31*b13+a41*b14);&lt;br /&gt;+		if(det_1==0){&lt;br /&gt;+			return false;&lt;br /&gt;+		}&lt;br /&gt;+		det_1=1/det_1;&lt;br /&gt;+&lt;br /&gt;+		this-&amp;gt;m00=b11*det_1;&lt;br /&gt;+		this-&amp;gt;m01=b12*det_1;&lt;br /&gt;+		this-&amp;gt;m02=b13*det_1;&lt;br /&gt;+		this-&amp;gt;m03=b14*det_1;&lt;br /&gt;+		&lt;br /&gt;+		this-&amp;gt;m10=b21*det_1;&lt;br /&gt;+		this-&amp;gt;m11=b22*det_1;&lt;br /&gt;+		this-&amp;gt;m12=b23*det_1;&lt;br /&gt;+		this-&amp;gt;m13=b24*det_1;&lt;br /&gt;+		&lt;br /&gt;+		this-&amp;gt;m20=b31*det_1;&lt;br /&gt;+		this-&amp;gt;m21=b32*det_1;&lt;br /&gt;+		this-&amp;gt;m22=b33*det_1;&lt;br /&gt;+		this-&amp;gt;m23=b34*det_1;&lt;br /&gt;+		&lt;br /&gt;+		this-&amp;gt;m30=b41*det_1;&lt;br /&gt;+		this-&amp;gt;m31=b42*det_1;&lt;br /&gt;+		this-&amp;gt;m32=b43*det_1;&lt;br /&gt;+		this-&amp;gt;m33=b44*det_1;&lt;br /&gt;+		&lt;br /&gt;+		return true;&lt;br /&gt;+	}&lt;br /&gt; }&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARPerspectiveProjectionMatrix.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARPerspectiveProjectionMatrix.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARPerspectiveProjectionMatrix.cpp	(revision 335)&lt;br /&gt;@@ -2,27 +2,25 @@&lt;br /&gt; * PROJECT: NyARToolkitCPP&lt;br /&gt; * --------------------------------------------------------------------------------&lt;br /&gt; *&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt; *&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt; * &lt;br /&gt; * This program is distributed in the hope that it will be useful,&lt;br /&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt; * GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;+*&lt;br /&gt; * You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt; * &lt;br /&gt; * For further information please contact.&lt;br /&gt; *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt; #include &amp;quot;NyARPerspectiveProjectionMatrix.h&amp;quot;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRasterFilter_ARToolkitThreshold.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRasterFilter_ARToolkitThreshold.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRasterFilter_ARToolkitThreshold.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARRasterFilter_ARToolkitThreshold.h&amp;quot;&lt;br /&gt; #include &amp;quot;INyARRgbRaster.h&amp;quot;&lt;br /&gt; #include &amp;quot;NyARBinRaster.h&amp;quot;&lt;br /&gt;@@ -263,8 +261,65 @@&lt;br /&gt; 		}		&lt;br /&gt; 	};&lt;br /&gt; &lt;br /&gt;+	class doThFilterImpl_BUFFERFORMAT_WORD1D_R5G6B5_16LE :public IdoThFilterImpl&lt;br /&gt;+	{&lt;br /&gt;+		void doThFilter(const INyARBufferReader&amp;amp; i_input,const INyARBufferReader&amp;amp; i_output,const TNyARIntSize&amp;amp; i_size,int i_threshold)const&lt;br /&gt;+		{&lt;br /&gt;+			int* out_buf = (int*) i_output.getBuffer();&lt;br /&gt;+			unsigned short* in_buf = (unsigned short*) i_input.getBuffer();&lt;br /&gt;+			&lt;br /&gt;+			const int th=i_threshold*3;&lt;br /&gt;+			unsigned short w;&lt;br /&gt;+			int xy;&lt;br /&gt;+			const int pix_count   =i_size.h*i_size.w;&lt;br /&gt;+			const int pix_mod_part=pix_count-(pix_count%8);&lt;br /&gt; &lt;br /&gt;+			for(xy=pix_count-1;xy&amp;gt;=pix_mod_part;xy--){				&lt;br /&gt;+                w =in_buf[xy];&lt;br /&gt;+                w = ((w &amp;amp; 0xf800) &amp;gt;&amp;gt; 8) + ((w &amp;amp; 0x07e0) &amp;gt;&amp;gt; 3) + ((w &amp;amp; 0x001f) &amp;lt;&amp;lt; 3);&lt;br /&gt;+                out_buf[xy] = w &amp;lt;= th ? 0 : 1;&lt;br /&gt;+			}&lt;br /&gt;+			//ĞăÊÓď&lt;br /&gt;+			for (;xy&amp;gt;=0;) {&lt;br /&gt;+                w =in_buf[xy];&lt;br /&gt;+                w = ((w &amp;amp; 0xf800) &amp;gt;&amp;gt; 8) + ((w &amp;amp; 0x07e0) &amp;gt;&amp;gt; 3) + ((w &amp;amp; 0x001f) &amp;lt;&amp;lt; 3);&lt;br /&gt;+                out_buf[xy] = w &amp;lt;= th ? 0 : 1;&lt;br /&gt;+				xy--;&lt;br /&gt;+                w =in_buf[xy];&lt;br /&gt;+                w = ((w &amp;amp; 0xf800) &amp;gt;&amp;gt; 8) + ((w &amp;amp; 0x07e0) &amp;gt;&amp;gt; 3) + ((w &amp;amp; 0x001f) &amp;lt;&amp;lt; 3);&lt;br /&gt;+                out_buf[xy] = w &amp;lt;= th ? 0 : 1;&lt;br /&gt;+				xy--;&lt;br /&gt;+                w =in_buf[xy];&lt;br /&gt;+                w = ((w &amp;amp; 0xf800) &amp;gt;&amp;gt; 8) + ((w &amp;amp; 0x07e0) &amp;gt;&amp;gt; 3) + ((w &amp;amp; 0x001f) &amp;lt;&amp;lt; 3);&lt;br /&gt;+                out_buf[xy] = w &amp;lt;= th ? 0 : 1;&lt;br /&gt;+				xy--;&lt;br /&gt;+                w =in_buf[xy];&lt;br /&gt;+                w = ((w &amp;amp; 0xf800) &amp;gt;&amp;gt; 8) + ((w &amp;amp; 0x07e0) &amp;gt;&amp;gt; 3) + ((w &amp;amp; 0x001f) &amp;lt;&amp;lt; 3);&lt;br /&gt;+                out_buf[xy] = w &amp;lt;= th ? 0 : 1;&lt;br /&gt;+				xy--;&lt;br /&gt;+                w =in_buf[xy];&lt;br /&gt;+                w = ((w &amp;amp; 0xf800) &amp;gt;&amp;gt; 8) + ((w &amp;amp; 0x07e0) &amp;gt;&amp;gt; 3) + ((w &amp;amp; 0x001f) &amp;lt;&amp;lt; 3);&lt;br /&gt;+                out_buf[xy] = w &amp;lt;= th ? 0 : 1;&lt;br /&gt;+				xy--;&lt;br /&gt;+                w =in_buf[xy];&lt;br /&gt;+                w = ((w &amp;amp; 0xf800) &amp;gt;&amp;gt; 8) + ((w &amp;amp; 0x07e0) &amp;gt;&amp;gt; 3) + ((w &amp;amp; 0x001f) &amp;lt;&amp;lt; 3);&lt;br /&gt;+                out_buf[xy] = w &amp;lt;= th ? 0 : 1;&lt;br /&gt;+				xy--;&lt;br /&gt;+                w =in_buf[xy];&lt;br /&gt;+                w = ((w &amp;amp; 0xf800) &amp;gt;&amp;gt; 8) + ((w &amp;amp; 0x07e0) &amp;gt;&amp;gt; 3) + ((w &amp;amp; 0x001f) &amp;lt;&amp;lt; 3);&lt;br /&gt;+                out_buf[xy] = w &amp;lt;= th ? 0 : 1;&lt;br /&gt;+				xy--;&lt;br /&gt;+                w =in_buf[xy];&lt;br /&gt;+                w = ((w &amp;amp; 0xf800) &amp;gt;&amp;gt; 8) + ((w &amp;amp; 0x07e0) &amp;gt;&amp;gt; 3) + ((w &amp;amp; 0x001f) &amp;lt;&amp;lt; 3);&lt;br /&gt;+                out_buf[xy] = w &amp;lt;= th ? 0 : 1;&lt;br /&gt;+				xy--;&lt;br /&gt;+			}&lt;br /&gt;+		}		&lt;br /&gt;+	};&lt;br /&gt; &lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt; 	NyARRasterFilter_ARToolkitThreshold:: NyARRasterFilter_ARToolkitThreshold(int i_threshold,int i_input_raster_type)&lt;br /&gt; 	{&lt;br /&gt; 		this-&amp;gt;_threshold = i_threshold;&lt;br /&gt;@@ -282,6 +337,9 @@&lt;br /&gt; 		case INyARBufferReader::BUFFERFORMAT_INT1D_X8R8G8B8_32:&lt;br /&gt; 			this-&amp;gt;_do_threshold_impl=new doThFilterImpl_BUFFERFORMAT_INT1D_X8R8G8B8_32();&lt;br /&gt; 			break;&lt;br /&gt;+		case INyARBufferReader::BUFFERFORMAT_WORD1D_R5G6B5_16LE:&lt;br /&gt;+			this-&amp;gt;_do_threshold_impl=new doThFilterImpl_BUFFERFORMAT_WORD1D_R5G6B5_16LE();&lt;br /&gt;+			break;&lt;br /&gt; 		default:&lt;br /&gt; 			throw NyARException();&lt;br /&gt; 		}&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSingleDetectMarker.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSingleDetectMarker.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSingleDetectMarker.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARSingleDetectMarker.h&amp;quot;&lt;br /&gt; #include &amp;quot;NyARParam.h&amp;quot;&lt;br /&gt; #include &amp;quot;NyARMatchPatt_Color_WITHOUT_PCA.h&amp;quot;&lt;br /&gt;@@ -34,24 +32,55 @@&lt;br /&gt; #include &amp;quot;NyARRasterFilter_ARToolkitThreshold.h&amp;quot;&lt;br /&gt; #include &amp;quot;NyARTransMatResult.h&amp;quot;&lt;br /&gt; #include &amp;quot;NyARColorPatt_O3.h&amp;quot;&lt;br /&gt;-#include &amp;quot;NyARSquareDetector.h&amp;quot;&lt;br /&gt;+#include &amp;quot;NyARSquareDetector_ARToolKit.h&amp;quot;&lt;br /&gt;+#include &amp;quot;NyARSquareDetector_Rle.h&amp;quot;&lt;br /&gt;+#include &amp;quot;NyARColorPatt_Perspective_O2.h&amp;quot;&lt;br /&gt; #include &amp;quot;NyARSquareStack.h&amp;quot;&lt;br /&gt; #include &amp;quot;NyAR_types.h&amp;quot;&lt;br /&gt; #define AR_SQUARE_MAX 100&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt;-	NyARSingleDetectMarker::NyARSingleDetectMarker(const NyARParam* i_param,const NyARCode* i_code, double i_marker_width,int i_input_raster_type)&lt;br /&gt;+	NyARSingleDetectMarker::NyARSingleDetectMarker(const NyARParam* i_param,const NyARCode* i_code, double i_marker_width,int i_input_raster_type,int i_profile_id)&lt;br /&gt; 	{&lt;br /&gt;-		this-&amp;gt;_threshold=new NyARRasterFilter_ARToolkitThreshold(100,i_input_raster_type);&lt;br /&gt;-		this-&amp;gt;initInstance(i_param,i_code,i_marker_width,this-&amp;gt;_threshold);&lt;br /&gt;+		initInstance(i_param,i_code,i_marker_width,i_input_raster_type,i_profile_id);&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt;+&lt;br /&gt; 	NyARSingleDetectMarker::~NyARSingleDetectMarker()&lt;br /&gt; 	{&lt;br /&gt; 		NyAR_SAFE_DELETE(this-&amp;gt;_threshold);&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt;+	void NyARSingleDetectMarker::initInstance(&lt;br /&gt;+		const NyARParam* i_ref_param,&lt;br /&gt;+		const NyARCode* i_ref_code,&lt;br /&gt;+		double i_marker_width,&lt;br /&gt;+		int i_input_raster_type,&lt;br /&gt;+		int i_profile_id)&lt;br /&gt;+	{&lt;br /&gt;+		//±Ì3ăÓĘĞÓĘÍCustomѤÅˊֺ·é&lt;br /&gt;+		INyARColorPatt* patt_inst;&lt;br /&gt;+		INyARSquareDetector* sqdetect_inst;&lt;br /&gt;+		INyARTransMat* transmat_inst;&lt;br /&gt; &lt;br /&gt;+		this-&amp;gt;_threshold=new NyARRasterFilter_ARToolkitThreshold(100,i_input_raster_type);&lt;br /&gt;+		switch(i_profile_id){&lt;br /&gt;+		case PF_NYARTOOLKIT_ARTOOLKIT_FITTING:&lt;br /&gt;+		case PF_ARTOOLKIT_COMPATIBLE:&lt;br /&gt;+			//not supprted!&lt;br /&gt;+			throw NyARException();&lt;br /&gt;+			break;&lt;br /&gt;+		case PF_NYARTOOLKIT:&lt;br /&gt;+			patt_inst=new NyARColorPatt_Perspective_O2(i_ref_code-&amp;gt;getWidth(), i_ref_code-&amp;gt;getHeight(),4,25);&lt;br /&gt;+			sqdetect_inst=new NyARSquareDetector_Rle(i_ref_param-&amp;gt;getDistortionFactor(),i_ref_param-&amp;gt;getScreenSize());			&lt;br /&gt;+			transmat_inst=new NyARTransMat(i_ref_param);&lt;br /&gt;+			break;&lt;br /&gt;+		default:&lt;br /&gt;+			throw NyARException();&lt;br /&gt;+		}&lt;br /&gt;+		NyARCustomSingleDetectMarker::initInstance(patt_inst,sqdetect_inst,transmat_inst,this-&amp;gt;_threshold,i_ref_param,i_ref_code,i_marker_width);&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt; &lt;br /&gt; 	bool NyARSingleDetectMarker::detectMarkerLite(const INyARRgbRaster &amp;amp;i_raster,int i_threshold)&lt;br /&gt; 	{&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyAREquationSolver.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyAREquationSolver.cpp	(revision 0)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyAREquationSolver.cpp	(revision 335)&lt;br /&gt;@@ -0,0 +1,316 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+#include &amp;quot;NyAREquationSolver.h&amp;quot;&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+#include &amp;quot;NyARBaseClass.h&amp;quot;&lt;br /&gt;+#include &amp;quot;NyAR_types.h&amp;quot;&lt;br /&gt;+#include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt;+#include &amp;lt;cmath&amp;gt;&lt;br /&gt;+#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;+using namespace std;&lt;br /&gt;+namespace NyARToolkitCPP&lt;br /&gt;+{&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+		//o_resultÍضҦД2ɈУÅ é±Æ&lt;br /&gt;+	int NyAREquationSolver::solve2Equation(double i_a, double i_b, double i_c,double* o_result)&lt;br /&gt;+	{&lt;br /&gt;+		NyAR_ASSERT(i_a!=0);&lt;br /&gt;+		return solve2Equation(i_b/i_a,i_c/i_a,o_result,0);&lt;br /&gt;+	}&lt;br /&gt;+	&lt;br /&gt;+		//o_resultÍضҦД2ɈУÅ é±Æ&lt;br /&gt;+	int NyAREquationSolver::solve2Equation(double i_b, double i_c,double* o_result)&lt;br /&gt;+	{&lt;br /&gt;+		return solve2Equation(i_b,i_c,o_result,0);&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+		//&lt;br /&gt;+	int NyAREquationSolver::solve2Equation(double i_b, double i_c,double* o_result,int i_result_st)&lt;br /&gt;+	{&lt;br /&gt;+		double t=i_b*i_b-4*i_c;&lt;br /&gt;+		if(t&amp;lt;0){&lt;br /&gt;+			//˕Дͪ&lt;br /&gt;+			return 0;&lt;br /&gt;+		}&lt;br /&gt;+		if(t==0){&lt;br /&gt;+			//Фͪ&lt;br /&gt;+			o_result[i_result_st+0]=-i_b/(2);&lt;br /&gt;+			return 1;&lt;br /&gt;+		}&lt;br /&gt;+		//πͪÑ͂&lt;br /&gt;+		t=sqrt(t);&lt;br /&gt;+		o_result[i_result_st+0]=(-i_b+t)/(2);&lt;br /&gt;+		o_result[i_result_st+1]=(-i_b-t)/(2);&lt;br /&gt;+		return 2;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	/**&lt;br /&gt;+	 * ÒΟֻӶή a*x^3+b*x^2+c*x+d=0Ìπͪðˁßé	 &lt;br /&gt;+	 * &lt;a href=&quot;http://aoki2.si.gunma-u.ac.jp/JavaScript/src/3jisiki.html&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://aoki2.si.gunma-u.ac.jp/JavaScript/src/3jisiki.html&lt;/a&gt;&lt;br /&gt;+	 * ÌĒĨðˮÉµÄÜ·&lt;br /&gt;+	 * @param i_a&lt;br /&gt;+	 * X^3Ì͗Д&lt;br /&gt;+	 * @param i_b&lt;br /&gt;+	 * X^2Ì͗Д&lt;br /&gt;+	 * @param i_c&lt;br /&gt;+	 * X^1Ì͗Д&lt;br /&gt;+	 * @param i_d&lt;br /&gt;+	 * X^0Ì͗Д&lt;br /&gt;+	 * @param o_result&lt;br /&gt;+	 * πͪdouble[3]ðϷӨ·é±Æ&lt;br /&gt;+	 * @return&lt;br /&gt;+	 */&lt;br /&gt;+	int NyAREquationSolver::solve3Equation(double i_a, double i_b, double i_c, double i_d,double* o_result)&lt;br /&gt;+	{&lt;br /&gt;+		NyAR_ASSERT(i_a != 0);&lt;br /&gt;+		return solve3Equation(i_b/i_a,i_c/i_a,i_d/i_a,o_result);&lt;br /&gt;+	}&lt;br /&gt;+	&lt;br /&gt;+	/**&lt;br /&gt;+	 * ÒΟֻӶή x^3+b*x^2+c*x+d=0Ìπͪðˁßé&lt;br /&gt;+	 * ¾¯ðˁßé&lt;br /&gt;+	 * &lt;a href=&quot;http://aoki2.si.gunma-u.ac.jp/JavaScript/src/3jisiki.html&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://aoki2.si.gunma-u.ac.jp/JavaScript/src/3jisiki.html&lt;/a&gt;&lt;br /&gt;+	 * ÌĒĨðˮÉµÄÜ·&lt;br /&gt;+	 * @param i_b&lt;br /&gt;+	 * X^2Ì͗Д&lt;br /&gt;+	 * @param i_c&lt;br /&gt;+	 * X^1Ì͗Д&lt;br /&gt;+	 * @param i_d&lt;br /&gt;+	 * X^0Ì͗Д&lt;br /&gt;+	 * @param o_result&lt;br /&gt;+	 * πͪdouble[1]ɈУðϷӨ·é±Æ&lt;br /&gt;+	 * @return&lt;br /&gt;+	 */&lt;br /&gt;+	int NyAREquationSolver::solve3Equation(double i_b, double i_c, double i_d,double* o_result)&lt;br /&gt;+	{&lt;br /&gt;+		double tmp,b,   p, q;&lt;br /&gt;+		b = i_b/(3);&lt;br /&gt;+		p = b * b - i_c / 3;&lt;br /&gt;+		q = (b * (i_c - 2 * b * b) - i_d) / 2;&lt;br /&gt;+		if ((tmp = q * q - p * p * p) == 0) {&lt;br /&gt;+			// Фͪ&lt;br /&gt;+			q = cuberoot(q);&lt;br /&gt;+			o_result[0] = 2 * q - b;&lt;br /&gt;+			o_result[1] = -q - b;&lt;br /&gt;+			return 2;&lt;br /&gt;+		} else if (tmp &amp;gt; 0) {&lt;br /&gt;+			// πͪ1,˕ͪ2&lt;br /&gt;+			double a3 = cuberoot(q + ((q &amp;gt; 0) ? 1 : -1) * sqrt(tmp));&lt;br /&gt;+			double b3 = p / a3;&lt;br /&gt;+			o_result[0] = a3 + b3 - b;&lt;br /&gt;+			// ˕ͪ:-0.5*(a3+b3)-b,Math.abs(a3-b3)*Math.sqrt(3.0)/2&lt;br /&gt;+			return 1;&lt;br /&gt;+		} else {&lt;br /&gt;+			// πͪ3&lt;br /&gt;+			tmp = 2 * sqrt(p);&lt;br /&gt;+			double t = acos(q / (p * tmp / 2));&lt;br /&gt;+			o_result[0] = tmp * cos(t / 3) - b;&lt;br /&gt;+			o_result[1] = tmp * cos((t + 2 * NyAR_PI) / 3) - b;&lt;br /&gt;+			o_result[2] = tmp * cos((t + 4 * NyAR_PI) / 3) - b;&lt;br /&gt;+			return 3;&lt;br /&gt;+		}&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	&lt;br /&gt;+	&lt;br /&gt;+	/**&lt;br /&gt;+	 * ÓΟֻӶήÌπͪ¾¯ðˁßé&lt;br /&gt;+	 * @param i_a&lt;br /&gt;+	 * X^3Ì͗Д&lt;br /&gt;+	 * @param i_b&lt;br /&gt;+	 * X^2Ì͗Д&lt;br /&gt;+	 * @param i_c&lt;br /&gt;+	 * X^1Ì͗Д&lt;br /&gt;+	 * @param i_d&lt;br /&gt;+	 * X^0Ì͗Д&lt;br /&gt;+	 * @param o_result&lt;br /&gt;+	 * πͪdouble[3]ðϷӨ·é±Æ&lt;br /&gt;+	 * @return&lt;br /&gt;+	 */&lt;br /&gt;+	int NyAREquationSolver::solve4Equation(double i_a, double i_b, double i_c, double i_d,double i_e,double* o_result)&lt;br /&gt;+	{&lt;br /&gt;+		NyAR_ASSERT(i_a != 0);&lt;br /&gt;+		double A3,A2,A1,A0,B3;&lt;br /&gt;+		A3=i_b/i_a;&lt;br /&gt;+		A2=i_c/i_a;&lt;br /&gt;+		A1=i_d/i_a;&lt;br /&gt;+		A0=i_e/i_a;&lt;br /&gt;+		B3=A3/4;&lt;br /&gt;+		double p,q,r;&lt;br /&gt;+		double B3_2=B3*B3;&lt;br /&gt;+		p=A2-6*B3_2;//A2-6*B3*B3;&lt;br /&gt;+		q=A1+B3*(-2*A2+8*B3_2);//A1-2*A2*B3+8*B3*B3*B3;&lt;br /&gt;+		r=A0+B3*(-A1+A2*B3)-3*B3_2*B3_2;//A0-A1*B3+A2*B3*B3-3*B3*B3*B3*B3;&lt;br /&gt;+		int number_of_result=0;&lt;br /&gt;+		if(q==0){&lt;br /&gt;+			double result_0,result_1;&lt;br /&gt;+			//աԱΟή&lt;br /&gt;+			int res=solve2Equation(p,r,o_result,0);&lt;br /&gt;+			switch(res){&lt;br /&gt;+			case 0:&lt;br /&gt;+				//ғÄ˕Дʰ&lt;br /&gt;+				return 0;&lt;br /&gt;+			case 1:&lt;br /&gt;+				//Фͪ&lt;br /&gt;+				//ʰÍ0,1,2Ìɽê©&lt;br /&gt;+				result_0=o_result[0];&lt;br /&gt;+				if(result_0&amp;lt;0){&lt;br /&gt;+					//ғÄ˕Дʰ&lt;br /&gt;+					return 0;&lt;br /&gt;+				}&lt;br /&gt;+				//πͪ1͂&lt;br /&gt;+				if(result_0==0){&lt;br /&gt;+					//NC&lt;br /&gt;+					o_result[0]=0-B3;&lt;br /&gt;+					return 1;&lt;br /&gt;+				}&lt;br /&gt;+				//πͪ2͂&lt;br /&gt;+				result_0=sqrt(result_0);&lt;br /&gt;+				o_result[0]=result_0-B3;&lt;br /&gt;+				o_result[1]=-result_0-B3;&lt;br /&gt;+				return 2;&lt;br /&gt;+			case 2:&lt;br /&gt;+				//πͪÑ͂¾©çt==t2==0Í è¦È¢(case1)&lt;br /&gt;+				//ʰÍ0,2,4Ìɽê©&lt;br /&gt;+				result_0=o_result[0];&lt;br /&gt;+				result_1=o_result[1];&lt;br /&gt;+				if(result_0&amp;gt;0){&lt;br /&gt;+					//NC&lt;br /&gt;+					result_0=sqrt(result_0);&lt;br /&gt;+					o_result[0]= result_0-B3;&lt;br /&gt;+					o_result[1]=-result_0-B3;&lt;br /&gt;+					number_of_result+=2;&lt;br /&gt;+				}&lt;br /&gt;+				if(result_1&amp;gt;0)&lt;br /&gt;+				{&lt;br /&gt;+					//NC&lt;br /&gt;+					result_1=sqrt(result_1);&lt;br /&gt;+					o_result[number_of_result+0]= result_1-B3;&lt;br /&gt;+					o_result[number_of_result+1]=-result_1-B3;&lt;br /&gt;+					number_of_result+=2;&lt;br /&gt;+				}&lt;br /&gt;+				return number_of_result;&lt;br /&gt;+			default:&lt;br /&gt;+				throw NyARException();&lt;br /&gt;+			}&lt;br /&gt;+		}else{&lt;br /&gt;+			//»êɈˏ&lt;br /&gt;+			//΅ԋɻļăÓħ:&lt;br /&gt;+			//u^3  + (2*p)*u^2  +((- 4*r)+(p^2))*u -q^2= 0&lt;br /&gt;+			double u=solve3Equation_1((2*p),(- 4*r)+(p*p),-q*q);&lt;br /&gt;+			if(u&amp;lt;0){&lt;br /&gt;+				//ғÄ˕Дʰ&lt;br /&gt;+				return 0;&lt;br /&gt;+			}&lt;br /&gt;+			double ru=sqrt(u);&lt;br /&gt;+			//2ΟֻӶήðʰ¢ÄyðͶϚ(΅ԋɻļăÓħ)&lt;br /&gt;+			int result_1st,result_2nd;&lt;br /&gt;+			result_1st=solve2Equation(-ru,(p+u)/2+ru*q/(2*u),o_result,0);&lt;br /&gt;+			//պرϧ¢ʱµÌ½ßÉ֏ДÉҞհ&lt;br /&gt;+			switch(result_1st){&lt;br /&gt;+			case 0:&lt;br /&gt;+				break;&lt;br /&gt;+			case 1:&lt;br /&gt;+				o_result[0]=o_result[0]-B3;&lt;br /&gt;+				break;&lt;br /&gt;+			case 2:&lt;br /&gt;+				o_result[0]=o_result[0]-B3;&lt;br /&gt;+				o_result[1]=o_result[1]-B3;&lt;br /&gt;+				break;&lt;br /&gt;+			default:&lt;br /&gt;+				throw NyARException();&lt;br /&gt;+			}&lt;br /&gt;+			result_2nd=solve2Equation(ru,(p+u)/2-ru*q/(2*u),o_result,result_1st);&lt;br /&gt;+			//0,1ՔךÉ˩՛&lt;br /&gt;+			switch(result_2nd){&lt;br /&gt;+			case 0:&lt;br /&gt;+				break;&lt;br /&gt;+			case 1:&lt;br /&gt;+				o_result[result_1st+0]=o_result[result_1st+0]-B3;&lt;br /&gt;+				break;&lt;br /&gt;+			case 2:&lt;br /&gt;+				o_result[result_1st+0]=o_result[result_1st+0]-B3;&lt;br /&gt;+				o_result[result_1st+1]=o_result[result_1st+1]-B3;&lt;br /&gt;+				break;&lt;br /&gt;+			default:&lt;br /&gt;+				throw NyARException();&lt;br /&gt;+			}&lt;br /&gt;+			return result_1st+result_2nd;&lt;br /&gt;+		}&lt;br /&gt;+	}&lt;br /&gt;+	/**&lt;br /&gt;+	 * 3ЦͪðˁßçêÈ¢ĖĘĥÀÅÒЦͪðˁßÜ·&lt;br /&gt;+	 * &lt;a href=&quot;http://aoki2.si.gunma-u.ac.jp/JavaScript/src/3jisiki.html&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://aoki2.si.gunma-u.ac.jp/JavaScript/src/3jisiki.html&lt;/a&gt;&lt;br /&gt;+	 * @param i_in&lt;br /&gt;+	 * @return&lt;br /&gt;+	 */&lt;br /&gt;+	double NyAREquationSolver::cuberoot(double i_in)&lt;br /&gt;+	{&lt;br /&gt;+		double res = pow(abs(i_in), 1.0 / 3.0);&lt;br /&gt;+		return (i_in &amp;gt;= 0) ? res : -res;&lt;br /&gt;+	}&lt;br /&gt;+	/**&lt;br /&gt;+	 * 3ΟֻӶήÌπͪðÐ͂¾¯ˁßé&lt;br /&gt;+	 * 4ΚֻӶήÅϧ¤&lt;br /&gt;+	 * @param i_b&lt;br /&gt;+	 * @param i_c&lt;br /&gt;+	 * @param i_d&lt;br /&gt;+	 * @param o_result&lt;br /&gt;+	 * @return&lt;br /&gt;+	 */&lt;br /&gt;+	double NyAREquationSolver::solve3Equation_1(double i_b, double i_c, double i_d)&lt;br /&gt;+	{&lt;br /&gt;+		double tmp,b,   p, q;&lt;br /&gt;+		b = i_b/(3);&lt;br /&gt;+		p = b * b - i_c / 3;&lt;br /&gt;+		q = (b * (i_c - 2 * b * b) - i_d) / 2;&lt;br /&gt;+		if ((tmp = q * q - p * p * p) == 0) {&lt;br /&gt;+			// Фͪ&lt;br /&gt;+			q = cuberoot(q);&lt;br /&gt;+			return 2 * q - b;&lt;br /&gt;+		} else if (tmp &amp;gt; 0) {&lt;br /&gt;+			// πͪ1,˕ͪ2&lt;br /&gt;+			double a3 = cuberoot(q + ((q &amp;gt; 0) ? 1 : -1) * sqrt(tmp));&lt;br /&gt;+			double b3 = p / a3;&lt;br /&gt;+			return a3 + b3 - b;&lt;br /&gt;+		} else {&lt;br /&gt;+			// πͪ3&lt;br /&gt;+			tmp = 2 * sqrt(p);&lt;br /&gt;+			double t = acos(q / (p * tmp / 2));&lt;br /&gt;+			return tmp * cos(t / 3) - b;&lt;br /&gt;+		}&lt;br /&gt;+	}		&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+}&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARColorPatt_Perspective_O2.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARColorPatt_Perspective_O2.cpp	(revision 0)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARColorPatt_Perspective_O2.cpp	(revision 335)&lt;br /&gt;@@ -0,0 +1,738 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+&lt;br /&gt;+#include &amp;quot;NyARColorPatt_Perspective_O2.h&amp;quot;&lt;br /&gt;+&lt;br /&gt;+#include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt;+&lt;br /&gt;+namespace NyARToolkitCPP&lt;br /&gt;+{&lt;br /&gt;+&lt;br /&gt;+	class IpickFromRaster_Impl:public NyARBaseClass&lt;br /&gt;+	{&lt;br /&gt;+	public:&lt;br /&gt;+		virtual void pickFromRaster(const double* i_cpara,const INyARRgbRaster&amp;amp; image,int* o_patt)=0;&lt;br /&gt;+	};&lt;br /&gt;+&lt;br /&gt;+	/**&lt;br /&gt;+	* ՄذĳĢĎāĢĶ˖Д&lt;br /&gt;+	*&lt;br /&gt;+	*/&lt;br /&gt;+	class pickFromRaster_N :public IpickFromRaster_Impl&lt;br /&gt;+	{&lt;br /&gt;+	protected:&lt;br /&gt;+		int _resolution;&lt;br /&gt;+		const TNyARIntSize* _size_ref;&lt;br /&gt;+		const TNyARIntPoint2d* _lt_ref;&lt;br /&gt;+	public:&lt;br /&gt;+		pickFromRaster_N(const TNyARIntPoint2d* i_lt,int i_resolution,const TNyARIntSize* i_source_size)&lt;br /&gt;+		{&lt;br /&gt;+			this-&amp;gt;_lt_ref=i_lt;&lt;br /&gt;+			this-&amp;gt;_resolution=i_resolution;&lt;br /&gt;+			this-&amp;gt;_size_ref=i_source_size;&lt;br /&gt;+&lt;br /&gt;+			this-&amp;gt;_rgb_temp=new int[i_resolution*i_resolution*3];&lt;br /&gt;+			this-&amp;gt;_rgb_px=new int[i_resolution*i_resolution];&lt;br /&gt;+			this-&amp;gt;_rgb_py=new int[i_resolution*i_resolution];&lt;br /&gt;+&lt;br /&gt;+			this-&amp;gt;_cp1cy_cp2=new double[i_resolution];&lt;br /&gt;+			this-&amp;gt;_cp4cy_cp5=new double[i_resolution];&lt;br /&gt;+			this-&amp;gt;_cp7cy_1=new double[i_resolution];&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+		~pickFromRaster_N()&lt;br /&gt;+		{&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_rgb_temp);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_rgb_px);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_rgb_py);&lt;br /&gt;+&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_cp1cy_cp2);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_cp4cy_cp5);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_cp7cy_1);&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+&lt;br /&gt;+	private:&lt;br /&gt;+		int* _rgb_temp;&lt;br /&gt;+		int* _rgb_px;&lt;br /&gt;+		int* _rgb_py;&lt;br /&gt;+		double* _cp1cy_cp2;&lt;br /&gt;+		double* _cp4cy_cp5;&lt;br /&gt;+		double* _cp7cy_1;&lt;br /&gt;+&lt;br /&gt;+	public:&lt;br /&gt;+		void pickFromRaster(const double* i_cpara,const INyARRgbRaster&amp;amp; image,int* o_patt)&lt;br /&gt;+		{&lt;br /&gt;+			int i2x,i2y;//ĶÉăÀ֏Д&lt;br /&gt;+			int x,y;&lt;br /&gt;+			int w;&lt;br /&gt;+			int r,g,b;&lt;br /&gt;+&lt;br /&gt;+			const int resolution=this-&amp;gt;_resolution;&lt;br /&gt;+			const int res_pix=resolution*resolution;&lt;br /&gt;+			const int img_x = image.getWidth();&lt;br /&gt;+			const int img_y = image.getHeight();&lt;br /&gt;+&lt;br /&gt;+			int* rgb_tmp = this-&amp;gt;_rgb_temp;&lt;br /&gt;+			int* rgb_px=this-&amp;gt;_rgb_px;&lt;br /&gt;+			int* rgb_py=this-&amp;gt;_rgb_py;	&lt;br /&gt;+&lt;br /&gt;+			double* cp1cy_cp2=this-&amp;gt;_cp1cy_cp2;&lt;br /&gt;+			double* cp4cy_cp5=this-&amp;gt;_cp4cy_cp5;&lt;br /&gt;+			double* cp7cy_1=this-&amp;gt;_cp7cy_1;		&lt;br /&gt;+&lt;br /&gt;+			const double cp0=i_cpara[0];&lt;br /&gt;+			const double cp3=i_cpara[3];&lt;br /&gt;+			const double cp6=i_cpara[6];&lt;br /&gt;+			const double cp1=i_cpara[1];&lt;br /&gt;+			const double cp2=i_cpara[2];&lt;br /&gt;+			const double cp4=i_cpara[4];&lt;br /&gt;+			const double cp5=i_cpara[5];&lt;br /&gt;+			const double cp7=i_cpara[7];&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+			const int pick_y=this-&amp;gt;_lt_ref-&amp;gt;y;&lt;br /&gt;+			const int pick_x=this-&amp;gt;_lt_ref-&amp;gt;x;&lt;br /&gt;+			//ĳĎĚËÊğðϦӾ&lt;br /&gt;+			const INyARRgbPixelReader&amp;amp; reader=image.getRgbPixelReader();&lt;br /&gt;+			int p=0;&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+			for(int iy=0;iy&amp;lt;this-&amp;gt;_size_ref-&amp;gt;h*resolution;iy+=resolution){&lt;br /&gt;+				w=pick_y+iy;&lt;br /&gt;+				cp1cy_cp2[0]=cp1*w+cp2;&lt;br /&gt;+				cp4cy_cp5[0]=cp4*w+cp5;&lt;br /&gt;+				cp7cy_1[0]=cp7*w+1.0;			&lt;br /&gt;+				for(i2y=1;i2y&amp;lt;resolution;i2y++){&lt;br /&gt;+					cp1cy_cp2[i2y]=cp1cy_cp2[i2y-1]+cp1;&lt;br /&gt;+					cp4cy_cp5[i2y]=cp4cy_cp5[i2y-1]+cp4;&lt;br /&gt;+					cp7cy_1[i2y]=cp7cy_1[i2y-1]+cp7;&lt;br /&gt;+				}&lt;br /&gt;+				//ʰќԸժÌԟðϦé&lt;br /&gt;+&lt;br /&gt;+				for(int ix=0;ix&amp;lt;this-&amp;gt;_size_ref-&amp;gt;w*resolution;ix+=resolution){&lt;br /&gt;+					int n=0;&lt;br /&gt;+					w=pick_x+ix;&lt;br /&gt;+					for(i2y=resolution-1;i2y&amp;gt;=0;i2y--){&lt;br /&gt;+						double cp0cx=cp0*w+cp1cy_cp2[i2y];&lt;br /&gt;+						double cp6cx=cp6*w+cp7cy_1[i2y];&lt;br /&gt;+						double cp3cx=cp3*w+cp4cy_cp5[i2y];&lt;br /&gt;+&lt;br /&gt;+						const double m=1/(cp6cx);&lt;br /&gt;+						const double d=-cp6/(cp6cx*(cp6cx+cp6));&lt;br /&gt;+&lt;br /&gt;+						double m2=cp0cx*m;&lt;br /&gt;+						double m3=cp3cx*m;&lt;br /&gt;+						double d2=cp0cx*d+cp0*(m+d);&lt;br /&gt;+						double d3=cp3cx*d+cp3*(m+d);&lt;br /&gt;+						for(i2x=resolution-1;i2x&amp;gt;=0;i2x--){&lt;br /&gt;+							//1ĳĎĚËðάЬ&lt;br /&gt;+							x=rgb_px[n]=(int)(m2);&lt;br /&gt;+							y=rgb_py[n]=(int)(m3);&lt;br /&gt;+							if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+								if(x&amp;lt;0){rgb_px[n]=0;}else if(x&amp;gt;=img_x){rgb_px[n]=img_x-1;}&lt;br /&gt;+								if(y&amp;lt;0){rgb_py[n]=0;}else if(y&amp;gt;=img_y){rgb_py[n]=img_y-1;}			&lt;br /&gt;+							}&lt;br /&gt;+							n++;&lt;br /&gt;+							m2+=d2;&lt;br /&gt;+							m3+=d3;&lt;br /&gt;+						}&lt;br /&gt;+					}&lt;br /&gt;+					reader.getPixelSet(rgb_px, rgb_py,res_pix, rgb_tmp);&lt;br /&gt;+					r=g=b=0;&lt;br /&gt;+					for(int i=res_pix*3-1;i&amp;gt;0;){&lt;br /&gt;+						b+=rgb_tmp[i--];&lt;br /&gt;+						g+=rgb_tmp[i--];&lt;br /&gt;+						r+=rgb_tmp[i--];&lt;br /&gt;+					}&lt;br /&gt;+					r/=res_pix;&lt;br /&gt;+					g/=res_pix;&lt;br /&gt;+					b/=res_pix;&lt;br /&gt;+					o_patt[p]=((r&amp;amp;0xff)&amp;lt;&amp;lt;16)|((g&amp;amp;0xff)&amp;lt;&amp;lt;8)|((b&amp;amp;0xff));&lt;br /&gt;+					p++;&lt;br /&gt;+				}&lt;br /&gt;+			}&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+	};&lt;br /&gt;+	/**&lt;br /&gt;+	* ĠĆĢĎĦėĢħ:4127936236942444153655776299710081208144715171590159116971715177917901890204024192573274828522936312731813388371037714083&lt;br /&gt;+	*&lt;br /&gt;+	*/&lt;br /&gt;+	class pickFromRaster_1 : public IpickFromRaster_Impl&lt;br /&gt;+	{&lt;br /&gt;+	protected:&lt;br /&gt;+		const TNyARIntSize* _size_ref;&lt;br /&gt;+		const TNyARIntPoint2d* _lt_ref;&lt;br /&gt;+	public:&lt;br /&gt;+		pickFromRaster_1(const TNyARIntPoint2d* i_lt,const TNyARIntSize* i_source_size)&lt;br /&gt;+		{&lt;br /&gt;+			this-&amp;gt;_lt_ref=i_lt;&lt;br /&gt;+			this-&amp;gt;_size_ref=i_source_size;&lt;br /&gt;+&lt;br /&gt;+			this-&amp;gt;_rgb_temp=new int[i_source_size-&amp;gt;w*3];&lt;br /&gt;+			this-&amp;gt;_rgb_px=new int[i_source_size-&amp;gt;w];&lt;br /&gt;+			this-&amp;gt;_rgb_py=new int[i_source_size-&amp;gt;w];&lt;br /&gt;+&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+		~pickFromRaster_1()&lt;br /&gt;+		{&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_rgb_temp);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_rgb_px);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_rgb_py);&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+	private:&lt;br /&gt;+		int* _rgb_temp;&lt;br /&gt;+		int* _rgb_px;&lt;br /&gt;+		int* _rgb_py;&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+	public:&lt;br /&gt;+		void pickFromRaster(const double* i_cpara,const INyARRgbRaster&amp;amp; image,int* o_patt)&lt;br /&gt;+		{&lt;br /&gt;+			double d0,m0;&lt;br /&gt;+			int x,y;&lt;br /&gt;+&lt;br /&gt;+			const int img_x = image.getWidth();&lt;br /&gt;+			const int img_y = image.getHeight();&lt;br /&gt;+			const int patt_w=this-&amp;gt;_size_ref-&amp;gt;w;&lt;br /&gt;+&lt;br /&gt;+			int* rgb_tmp = this-&amp;gt;_rgb_temp;&lt;br /&gt;+			int* rgb_px=this-&amp;gt;_rgb_px;&lt;br /&gt;+			int* rgb_py=this-&amp;gt;_rgb_py;	&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+			const double cp0=i_cpara[0];&lt;br /&gt;+			const double cp3=i_cpara[3];&lt;br /&gt;+			const double cp6=i_cpara[6];&lt;br /&gt;+			const double cp1=i_cpara[1];&lt;br /&gt;+			const double cp4=i_cpara[4];&lt;br /&gt;+			const double cp7=i_cpara[7];&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+			const int pick_y=this-&amp;gt;_lt_ref-&amp;gt;y;&lt;br /&gt;+			const int pick_x=this-&amp;gt;_lt_ref-&amp;gt;x;&lt;br /&gt;+			//ĳĎĚËÊğðϦӾ&lt;br /&gt;+			const INyARRgbPixelReader&amp;amp; reader=image.getRgbPixelReader();&lt;br /&gt;+			int p=0;&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+			double cp0cx0,cp3cx0;&lt;br /&gt;+			double cp1cy_cp20=cp1*pick_y+i_cpara[2]+cp0*pick_x;&lt;br /&gt;+			double cp4cy_cp50=cp4*pick_y+i_cpara[5]+cp3*pick_x;&lt;br /&gt;+			double cp7cy_10=cp7*pick_y+1.0+cp6*pick_x;&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+			for(int iy=this-&amp;gt;_size_ref-&amp;gt;h-1;iy&amp;gt;=0;iy--){&lt;br /&gt;+				m0=1/(cp7cy_10);&lt;br /&gt;+				d0=-cp6/(cp7cy_10*(cp7cy_10+cp6));			&lt;br /&gt;+&lt;br /&gt;+				cp0cx0=cp1cy_cp20;&lt;br /&gt;+				cp3cx0=cp4cy_cp50;&lt;br /&gt;+&lt;br /&gt;+				//ĳĢĎāĢĶĖĐÓĘ&lt;br /&gt;+&lt;br /&gt;+				//0ՔךÌĳĎĚË(̟͸ҎЛ)ðĳĢĎāĢĶ&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+				for(int ix=patt_w-1;ix&amp;gt;=0;ix--){&lt;br /&gt;+					//1ĳĎĚËðάЬ&lt;br /&gt;+					x=rgb_px[ix]=(int)(cp0cx0*m0);&lt;br /&gt;+					y=rgb_py[ix]=(int)(cp3cx0*m0);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[ix]=0;}else if(x&amp;gt;=img_x){rgb_px[ix]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[ix]=0;}else if(y&amp;gt;=img_y){rgb_py[ix]=img_y-1;}			&lt;br /&gt;+					}&lt;br /&gt;+					cp0cx0+=cp0;&lt;br /&gt;+					cp3cx0+=cp3;&lt;br /&gt;+					m0+=d0;&lt;br /&gt;+				}&lt;br /&gt;+&lt;br /&gt;+				cp1cy_cp20+=cp1;&lt;br /&gt;+				cp4cy_cp50+=cp4;&lt;br /&gt;+				cp7cy_10+=cp7;&lt;br /&gt;+&lt;br /&gt;+				reader.getPixelSet(rgb_px, rgb_py,patt_w, rgb_tmp);&lt;br /&gt;+				for(int ix=patt_w-1;ix&amp;gt;=0;ix--){&lt;br /&gt;+					const int idx=ix*3;&lt;br /&gt;+					o_patt[p]=(rgb_tmp[idx]&amp;lt;&amp;lt;16)|(rgb_tmp[idx+1]&amp;lt;&amp;lt;8)|((rgb_tmp[idx+2]&amp;amp;0xff));&lt;br /&gt;+					p++;&lt;br /&gt;+				}&lt;br /&gt;+			}&lt;br /&gt;+&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+	};&lt;br /&gt;+&lt;br /&gt;+	/**&lt;br /&gt;+	* 2x2&lt;br /&gt;+	* ĠĆĢĎĦėĢħ:207585881161241401501892422483163713744114324414474655086016467027227327958629279571017&lt;br /&gt;+	*&lt;br /&gt;+	*/&lt;br /&gt;+	class pickFromRaster_2x :public  IpickFromRaster_Impl&lt;br /&gt;+	{&lt;br /&gt;+	protected:&lt;br /&gt;+		const TNyARIntSize* _size_ref;&lt;br /&gt;+		const TNyARIntPoint2d* _lt_ref;&lt;br /&gt;+	public:&lt;br /&gt;+		pickFromRaster_2x(const TNyARIntPoint2d* i_lt,const TNyARIntSize* i_source_size)&lt;br /&gt;+		{&lt;br /&gt;+			this-&amp;gt;_lt_ref=i_lt;&lt;br /&gt;+			this-&amp;gt;_size_ref=i_source_size;&lt;br /&gt;+&lt;br /&gt;+			this-&amp;gt;_rgb_temp=new int[i_source_size-&amp;gt;w*4*3];&lt;br /&gt;+			this-&amp;gt;_rgb_px=new int[i_source_size-&amp;gt;w*4];&lt;br /&gt;+			this-&amp;gt;_rgb_py=new int[i_source_size-&amp;gt;w*4];&lt;br /&gt;+&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+		~pickFromRaster_2x()&lt;br /&gt;+		{&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_rgb_temp);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_rgb_px);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_rgb_py);&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+	private:&lt;br /&gt;+		int* _rgb_temp;&lt;br /&gt;+		int* _rgb_px;&lt;br /&gt;+		int* _rgb_py;&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+	public:&lt;br /&gt;+		void pickFromRaster(const double* i_cpara,const INyARRgbRaster&amp;amp; image,int* o_patt)&lt;br /&gt;+		{&lt;br /&gt;+			double d0,m0,d1,m1;&lt;br /&gt;+			int x,y;&lt;br /&gt;+&lt;br /&gt;+			const int img_x = image.getWidth();&lt;br /&gt;+			const int img_y = image.getHeight();&lt;br /&gt;+			const int patt_w=this-&amp;gt;_size_ref-&amp;gt;w;&lt;br /&gt;+&lt;br /&gt;+			int* rgb_tmp = this-&amp;gt;_rgb_temp;&lt;br /&gt;+			int* rgb_px=this-&amp;gt;_rgb_px;&lt;br /&gt;+			int* rgb_py=this-&amp;gt;_rgb_py;	&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+			const double cp0=i_cpara[0];&lt;br /&gt;+			const double cp3=i_cpara[3];&lt;br /&gt;+			const double cp6=i_cpara[6];&lt;br /&gt;+			const double cp1=i_cpara[1];&lt;br /&gt;+			const double cp4=i_cpara[4];&lt;br /&gt;+			const double cp7=i_cpara[7];&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+			const int pick_y=this-&amp;gt;_lt_ref-&amp;gt;y;&lt;br /&gt;+			const int pick_x=this-&amp;gt;_lt_ref-&amp;gt;x;&lt;br /&gt;+			//ĳĎĚËÊğðϦӾ&lt;br /&gt;+			const INyARRgbPixelReader&amp;amp; reader=image.getRgbPixelReader();&lt;br /&gt;+			int p=0;&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+			double cp0cx0,cp3cx0;&lt;br /&gt;+			double cp1cy_cp20=cp1*pick_y+i_cpara[2]+cp0*pick_x;&lt;br /&gt;+			double cp4cy_cp50=cp4*pick_y+i_cpara[5]+cp3*pick_x;&lt;br /&gt;+			double cp7cy_10=cp7*pick_y+1.0+cp6*pick_x;&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+			double cp0cx1,cp3cx1;&lt;br /&gt;+			double cp1cy_cp21=cp1cy_cp20+cp1;&lt;br /&gt;+			double cp4cy_cp51=cp4cy_cp50+cp4;&lt;br /&gt;+			double cp7cy_11=cp7cy_10+cp7;&lt;br /&gt;+&lt;br /&gt;+			double cw0=cp1+cp1;&lt;br /&gt;+			double cw7=cp7+cp7;&lt;br /&gt;+			double cw4=cp4+cp4;&lt;br /&gt;+&lt;br /&gt;+			for(int iy=this-&amp;gt;_size_ref-&amp;gt;h-1;iy&amp;gt;=0;iy--){			&lt;br /&gt;+				cp0cx0=cp1cy_cp20;&lt;br /&gt;+				cp3cx0=cp4cy_cp50;&lt;br /&gt;+				cp0cx1=cp1cy_cp21;&lt;br /&gt;+				cp3cx1=cp4cy_cp51;&lt;br /&gt;+&lt;br /&gt;+				m0=1/(cp7cy_10);&lt;br /&gt;+				d0=-cp6/(cp7cy_10*(cp7cy_10+cp6));			&lt;br /&gt;+				m1=1/(cp7cy_11);&lt;br /&gt;+				d1=-cp6/(cp7cy_11*(cp7cy_11+cp6));			&lt;br /&gt;+&lt;br /&gt;+				int n=patt_w*2*2-1;&lt;br /&gt;+&lt;br /&gt;+				for(int ix=patt_w*2-1;ix&amp;gt;=0;ix--){&lt;br /&gt;+					//[n,0]&lt;br /&gt;+					x=rgb_px[n]=(int)(cp0cx0*m0);&lt;br /&gt;+					y=rgb_py[n]=(int)(cp3cx0*m0);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[n]=0;}else if(x&amp;gt;=img_x){rgb_px[n]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[n]=0;}else if(y&amp;gt;=img_y){rgb_py[n]=img_y-1;}			&lt;br /&gt;+					}&lt;br /&gt;+					cp0cx0+=cp0;&lt;br /&gt;+					cp3cx0+=cp3;&lt;br /&gt;+					m0+=d0;&lt;br /&gt;+					n--;&lt;br /&gt;+					//[n,1]&lt;br /&gt;+					x=rgb_px[n]=(int)(cp0cx1*m1);&lt;br /&gt;+					y=rgb_py[n]=(int)(cp3cx1*m1);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[n]=0;}else if(x&amp;gt;=img_x){rgb_px[n]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[n]=0;}else if(y&amp;gt;=img_y){rgb_py[n]=img_y-1;}			&lt;br /&gt;+					}&lt;br /&gt;+					cp0cx1+=cp0;&lt;br /&gt;+					cp3cx1+=cp3;&lt;br /&gt;+					m1+=d1;&lt;br /&gt;+					n--;			&lt;br /&gt;+				}&lt;br /&gt;+				cp7cy_10+=cw7;&lt;br /&gt;+				cp7cy_11+=cw7;&lt;br /&gt;+&lt;br /&gt;+				cp1cy_cp20+=cw0;&lt;br /&gt;+				cp4cy_cp50+=cw4;&lt;br /&gt;+				cp1cy_cp21+=cw0;&lt;br /&gt;+				cp4cy_cp51+=cw4;&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+				reader.getPixelSet(rgb_px, rgb_py,patt_w*4, rgb_tmp);&lt;br /&gt;+				for(int ix=patt_w-1;ix&amp;gt;=0;ix--){&lt;br /&gt;+					const int idx=ix*12;//3*2*2&lt;br /&gt;+					const int r=(rgb_tmp[idx+0]+rgb_tmp[idx+3]+rgb_tmp[idx+6]+rgb_tmp[idx+ 9])/4;&lt;br /&gt;+					const int g=(rgb_tmp[idx+1]+rgb_tmp[idx+4]+rgb_tmp[idx+7]+rgb_tmp[idx+10])/4;&lt;br /&gt;+					const int b=(rgb_tmp[idx+2]+rgb_tmp[idx+5]+rgb_tmp[idx+8]+rgb_tmp[idx+11])/4;&lt;br /&gt;+					o_patt[p]=(r&amp;lt;&amp;lt;16)|(g&amp;lt;&amp;lt;8)|((b&amp;amp;0xff));&lt;br /&gt;+					p++;&lt;br /&gt;+				}&lt;br /&gt;+			}&lt;br /&gt;+&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+	};&lt;br /&gt;+&lt;br /&gt;+	/**&lt;br /&gt;+	* 4x4&lt;br /&gt;+	*&lt;br /&gt;+	*/&lt;br /&gt;+	class pickFromRaster_4x :public IpickFromRaster_Impl&lt;br /&gt;+	{&lt;br /&gt;+	protected:&lt;br /&gt;+		const TNyARIntSize* _size_ref;&lt;br /&gt;+		const TNyARIntPoint2d* _lt_ref;&lt;br /&gt;+	public:&lt;br /&gt;+		pickFromRaster_4x(const TNyARIntPoint2d* i_lt,const TNyARIntSize* i_source_size)&lt;br /&gt;+		{&lt;br /&gt;+			this-&amp;gt;_lt_ref=i_lt;&lt;br /&gt;+			this-&amp;gt;_size_ref=i_source_size;&lt;br /&gt;+&lt;br /&gt;+			this-&amp;gt;_rgb_temp=new int[4*4*3];&lt;br /&gt;+			this-&amp;gt;_rgb_px=new int[4*4];&lt;br /&gt;+			this-&amp;gt;_rgb_py=new int[4*4];&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+		~pickFromRaster_4x()&lt;br /&gt;+		{&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_rgb_temp);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_rgb_px);&lt;br /&gt;+			NyAR_SAFE_DELETE(this-&amp;gt;_rgb_py);&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+&lt;br /&gt;+	private:&lt;br /&gt;+		int* _rgb_temp;&lt;br /&gt;+		int* _rgb_px;&lt;br /&gt;+		int* _rgb_py;&lt;br /&gt;+&lt;br /&gt;+	public:&lt;br /&gt;+		void pickFromRaster(const double* i_cpara,const INyARRgbRaster&amp;amp; image,int* o_patt)&lt;br /&gt;+		{&lt;br /&gt;+			int x,y;&lt;br /&gt;+			double d,m;&lt;br /&gt;+			double cp6cx,cp0cx,cp3cx;&lt;br /&gt;+			int* rgb_px=this-&amp;gt;_rgb_px;&lt;br /&gt;+			int* rgb_py=this-&amp;gt;_rgb_py;&lt;br /&gt;+&lt;br /&gt;+			int r,g,b;		&lt;br /&gt;+			//ɓ̟׀ÌİÉÁĞðͶϚ&lt;br /&gt;+&lt;br /&gt;+			const int img_x = image.getWidth();&lt;br /&gt;+			const int img_y = image.getHeight();&lt;br /&gt;+			int* rgb_tmp = this-&amp;gt;_rgb_temp;&lt;br /&gt;+			const double cp0=i_cpara[0];&lt;br /&gt;+			const double cp3=i_cpara[3];&lt;br /&gt;+			const double cp6=i_cpara[6];&lt;br /&gt;+			const double cp1=i_cpara[1];&lt;br /&gt;+			const double cp2=i_cpara[2];&lt;br /&gt;+			const double cp4=i_cpara[4];&lt;br /&gt;+			const double cp5=i_cpara[5];&lt;br /&gt;+			const double cp7=i_cpara[7];&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+			int pick_lt_x=this-&amp;gt;_lt_ref-&amp;gt;x;&lt;br /&gt;+			//ĳĎĚËÊğðϦӾ&lt;br /&gt;+			const INyARRgbPixelReader&amp;amp; reader=image.getRgbPixelReader();&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+			int p=0;&lt;br /&gt;+			int py=this-&amp;gt;_lt_ref-&amp;gt;y;&lt;br /&gt;+			for(int iy=this-&amp;gt;_size_ref-&amp;gt;h-1;iy&amp;gt;=0;iy--,py+=4){&lt;br /&gt;+				const double cp1cy_cp2_0=cp1*py+cp2;&lt;br /&gt;+				const double cp4cy_cp5_0=cp4*py+cp5;&lt;br /&gt;+				const double cp7cy_1_0  =cp7*py+1.0;&lt;br /&gt;+&lt;br /&gt;+				const double cp1cy_cp2_1=cp1cy_cp2_0+cp1;&lt;br /&gt;+				const double cp1cy_cp2_2=cp1cy_cp2_1+cp1;&lt;br /&gt;+				const double cp1cy_cp2_3=cp1cy_cp2_2+cp1;&lt;br /&gt;+&lt;br /&gt;+				const double cp4cy_cp5_1=cp4cy_cp5_0+cp4;&lt;br /&gt;+				const double cp4cy_cp5_2=cp4cy_cp5_1+cp4;&lt;br /&gt;+				const double cp4cy_cp5_3=cp4cy_cp5_2+cp4;&lt;br /&gt;+&lt;br /&gt;+				int px=pick_lt_x;&lt;br /&gt;+				//ʰќԸժÌԟðϦé&lt;br /&gt;+				for(int ix=this-&amp;gt;_size_ref-&amp;gt;w-1;ix&amp;gt;=0;ix--,px+=4){&lt;br /&gt;+&lt;br /&gt;+					cp6cx=cp6*px;&lt;br /&gt;+					cp0cx=cp0*px;				&lt;br /&gt;+					cp3cx=cp3*px;&lt;br /&gt;+&lt;br /&gt;+					cp6cx+=cp7cy_1_0;&lt;br /&gt;+					m=1/cp6cx;&lt;br /&gt;+					d=-cp7/((cp6cx+cp7)*cp6cx);			&lt;br /&gt;+&lt;br /&gt;+					//1ĳĎĚËðάЬ[0,0]&lt;br /&gt;+					x=rgb_px[0]=(int)((cp0cx+cp1cy_cp2_0)*m);&lt;br /&gt;+					y=rgb_py[0]=(int)((cp3cx+cp4cy_cp5_0)*m);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[0]=0;}else if(x&amp;gt;=img_x){rgb_px[0]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[0]=0;}else if(y&amp;gt;=img_y){rgb_py[0]=img_y-1;}			&lt;br /&gt;+					}&lt;br /&gt;+&lt;br /&gt;+					//1ĳĎĚËðάЬ[0,1]&lt;br /&gt;+					m+=d;				&lt;br /&gt;+					x=rgb_px[4]=(int)((cp0cx+cp1cy_cp2_1)*m);&lt;br /&gt;+					y=rgb_py[4]=(int)((cp3cx+cp4cy_cp5_1)*m);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[4]=0;}else if(x&amp;gt;=img_x){rgb_px[4]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[4]=0;}else if(y&amp;gt;=img_y){rgb_py[4]=img_y-1;}			&lt;br /&gt;+					}				&lt;br /&gt;+					//1ĳĎĚËðάЬ[0,2]&lt;br /&gt;+					m+=d;&lt;br /&gt;+					x=rgb_px[8]=(int)((cp0cx+cp1cy_cp2_2)*m);&lt;br /&gt;+					y=rgb_py[8]=(int)((cp3cx+cp4cy_cp5_2)*m);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[8]=0;}else if(x&amp;gt;=img_x){rgb_px[8]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[8]=0;}else if(y&amp;gt;=img_y){rgb_py[8]=img_y-1;}			&lt;br /&gt;+					}&lt;br /&gt;+&lt;br /&gt;+					//1ĳĎĚËðάЬ[0,3]&lt;br /&gt;+					m+=d;&lt;br /&gt;+					x=rgb_px[12]=(int)((cp0cx+cp1cy_cp2_3)*m);&lt;br /&gt;+					y=rgb_py[12]=(int)((cp3cx+cp4cy_cp5_3)*m);				&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[12]=0;}else if(x&amp;gt;=img_x){rgb_px[12]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[12]=0;}else if(y&amp;gt;=img_y){rgb_py[12]=img_y-1;}			&lt;br /&gt;+					}&lt;br /&gt;+&lt;br /&gt;+					cp6cx+=cp6;&lt;br /&gt;+					cp0cx+=cp0;&lt;br /&gt;+					cp3cx+=cp3;&lt;br /&gt;+&lt;br /&gt;+					m=1/cp6cx;&lt;br /&gt;+					d=-cp7/((cp6cx+cp7)*cp6cx);				&lt;br /&gt;+&lt;br /&gt;+					//1ĳĎĚËðάЬ[1,0]&lt;br /&gt;+					x=rgb_px[1]=(int)((cp0cx+cp1cy_cp2_0)*m);&lt;br /&gt;+					y=rgb_py[1]=(int)((cp3cx+cp4cy_cp5_0)*m);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[1]=0;}else if(x&amp;gt;=img_x){rgb_px[1]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[1]=0;}else if(y&amp;gt;=img_y){rgb_py[1]=img_y-1;}&lt;br /&gt;+					}&lt;br /&gt;+					//1ĳĎĚËðάЬ[1,1]&lt;br /&gt;+					m+=d;&lt;br /&gt;+					x=rgb_px[5]=(int)((cp0cx+cp1cy_cp2_1)*m);&lt;br /&gt;+					y=rgb_py[5]=(int)((cp3cx+cp4cy_cp5_1)*m);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[5]=0;}else if(x&amp;gt;=img_x){rgb_px[5]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[5]=0;}else if(y&amp;gt;=img_y){rgb_py[5]=img_y-1;}&lt;br /&gt;+					}&lt;br /&gt;+					//1ĳĎĚËðάЬ[1,2]&lt;br /&gt;+					m+=d;&lt;br /&gt;+					x=rgb_px[9]=(int)((cp0cx+cp1cy_cp2_2)*m);&lt;br /&gt;+					y=rgb_py[9]=(int)((cp3cx+cp4cy_cp5_2)*m);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[9]=0;}else if(x&amp;gt;=img_x){rgb_px[9]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[9]=0;}else if(y&amp;gt;=img_y){rgb_py[9]=img_y-1;}&lt;br /&gt;+					}&lt;br /&gt;+					//1ĳĎĚËðάЬ[1,3]&lt;br /&gt;+					m+=d;&lt;br /&gt;+					x=rgb_px[13]=(int)((cp0cx+cp1cy_cp2_3)*m);&lt;br /&gt;+					y=rgb_py[13]=(int)((cp3cx+cp4cy_cp5_3)*m);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[13]=0;}else if(x&amp;gt;=img_x){rgb_px[13]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[13]=0;}else if(y&amp;gt;=img_y){rgb_py[13]=img_y-1;}&lt;br /&gt;+					}&lt;br /&gt;+&lt;br /&gt;+					cp6cx+=cp6;&lt;br /&gt;+					cp0cx+=cp0;&lt;br /&gt;+					cp3cx+=cp3;&lt;br /&gt;+&lt;br /&gt;+					m=1/cp6cx;&lt;br /&gt;+					d=-cp7/((cp6cx+cp7)*cp6cx);&lt;br /&gt;+&lt;br /&gt;+					//1ĳĎĚËðάЬ[2,0]&lt;br /&gt;+					x=rgb_px[2]=(int)((cp0cx+cp1cy_cp2_0)*m);&lt;br /&gt;+					y=rgb_py[2]=(int)((cp3cx+cp4cy_cp5_0)*m);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[2]=0;}else if(x&amp;gt;=img_x){rgb_px[2]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[2]=0;}else if(y&amp;gt;=img_y){rgb_py[2]=img_y-1;}&lt;br /&gt;+					}				&lt;br /&gt;+					//1ĳĎĚËðάЬ[2,1]&lt;br /&gt;+					m+=d;&lt;br /&gt;+					x=rgb_px[6]=(int)((cp0cx+cp1cy_cp2_1)*m);&lt;br /&gt;+					y=rgb_py[6]=(int)((cp3cx+cp4cy_cp5_1)*m);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[6]=0;}else if(x&amp;gt;=img_x){rgb_px[6]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[6]=0;}else if(y&amp;gt;=img_y){rgb_py[6]=img_y-1;}&lt;br /&gt;+					}&lt;br /&gt;+					//1ĳĎĚËðάЬ[2,2]&lt;br /&gt;+					m+=d;&lt;br /&gt;+					x=rgb_px[10]=(int)((cp0cx+cp1cy_cp2_2)*m);&lt;br /&gt;+					y=rgb_py[10]=(int)((cp3cx+cp4cy_cp5_2)*m);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[10]=0;}else if(x&amp;gt;=img_x){rgb_px[10]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[10]=0;}else if(y&amp;gt;=img_y){rgb_py[10]=img_y-1;}&lt;br /&gt;+					}&lt;br /&gt;+					//1ĳĎĚËðάЬ[2,3](±±ͶϚ¸êµÜ·)&lt;br /&gt;+					m+=d;&lt;br /&gt;+					x=rgb_px[14]=(int)((cp0cx+cp1cy_cp2_3)*m);&lt;br /&gt;+					y=rgb_py[14]=(int)((cp3cx+cp4cy_cp5_3)*m);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[14]=0;}else if(x&amp;gt;=img_x){rgb_px[14]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[14]=0;}else if(y&amp;gt;=img_y){rgb_py[14]=img_y-1;}&lt;br /&gt;+					}&lt;br /&gt;+					cp6cx+=cp6;&lt;br /&gt;+					cp0cx+=cp0;&lt;br /&gt;+					cp3cx+=cp3;&lt;br /&gt;+&lt;br /&gt;+					m=1/cp6cx;&lt;br /&gt;+					d=-cp7/((cp6cx+cp7)*cp6cx);&lt;br /&gt;+&lt;br /&gt;+					//1ĳĎĚËðάЬ[3,0]&lt;br /&gt;+					x=rgb_px[3]=(int)((cp0cx+cp1cy_cp2_0)*m);&lt;br /&gt;+					y=rgb_py[3]=(int)((cp3cx+cp4cy_cp5_0)*m);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[3]=0;}else if(x&amp;gt;=img_x){rgb_px[3]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[3]=0;}else if(y&amp;gt;=img_y){rgb_py[3]=img_y-1;}&lt;br /&gt;+					}&lt;br /&gt;+					//1ĳĎĚËðάЬ[3,1]&lt;br /&gt;+					m+=d;&lt;br /&gt;+					x=rgb_px[7]=(int)((cp0cx+cp1cy_cp2_1)*m);&lt;br /&gt;+					y=rgb_py[7]=(int)((cp3cx+cp4cy_cp5_1)*m);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[7]=0;}else if(x&amp;gt;=img_x){rgb_px[7]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[7]=0;}else if(y&amp;gt;=img_y){rgb_py[7]=img_y-1;}&lt;br /&gt;+					}&lt;br /&gt;+					//1ĳĎĚËðάЬ[3,2]&lt;br /&gt;+					m+=d;&lt;br /&gt;+					x=rgb_px[11]=(int)((cp0cx+cp1cy_cp2_2)*m);&lt;br /&gt;+					y=rgb_py[11]=(int)((cp3cx+cp4cy_cp5_2)*m);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[11]=0;}else if(x&amp;gt;=img_x){rgb_px[11]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[11]=0;}else if(y&amp;gt;=img_y){rgb_py[11]=img_y-1;}&lt;br /&gt;+					}&lt;br /&gt;+					//1ĳĎĚËðάЬ[3,3]&lt;br /&gt;+					m+=d;&lt;br /&gt;+					x=rgb_px[15]=(int)((cp0cx+cp1cy_cp2_3)*m);&lt;br /&gt;+					y=rgb_py[15]=(int)((cp3cx+cp4cy_cp5_3)*m);&lt;br /&gt;+					if(x&amp;lt;0||x&amp;gt;=img_x||y&amp;lt;0||y&amp;gt;=img_y){&lt;br /&gt;+						if(x&amp;lt;0){rgb_px[15]=0;}else if(x&amp;gt;=img_x){rgb_px[15]=img_x-1;}&lt;br /&gt;+						if(y&amp;lt;0){rgb_py[15]=0;}else if(y&amp;gt;=img_y){rgb_py[15]=img_y-1;}&lt;br /&gt;+					}&lt;br /&gt;+&lt;br /&gt;+					reader.getPixelSet(rgb_px, rgb_py,4*4, rgb_tmp);&lt;br /&gt;+&lt;br /&gt;+					r=(rgb_tmp[ 0]+rgb_tmp[ 3]+rgb_tmp[ 6]+rgb_tmp[ 9]+rgb_tmp[12]+rgb_tmp[15]+rgb_tmp[18]+rgb_tmp[21]+rgb_tmp[24]+rgb_tmp[27]+rgb_tmp[30]+rgb_tmp[33]+rgb_tmp[36]+rgb_tmp[39]+rgb_tmp[42]+rgb_tmp[45])/16;&lt;br /&gt;+					g=(rgb_tmp[ 1]+rgb_tmp[ 4]+rgb_tmp[ 7]+rgb_tmp[10]+rgb_tmp[13]+rgb_tmp[16]+rgb_tmp[19]+rgb_tmp[22]+rgb_tmp[25]+rgb_tmp[28]+rgb_tmp[31]+rgb_tmp[34]+rgb_tmp[37]+rgb_tmp[40]+rgb_tmp[43]+rgb_tmp[46])/16;&lt;br /&gt;+					b=(rgb_tmp[ 2]+rgb_tmp[ 5]+rgb_tmp[ 8]+rgb_tmp[11]+rgb_tmp[14]+rgb_tmp[17]+rgb_tmp[20]+rgb_tmp[23]+rgb_tmp[26]+rgb_tmp[29]+rgb_tmp[32]+rgb_tmp[35]+rgb_tmp[38]+rgb_tmp[41]+rgb_tmp[44]+rgb_tmp[47])/16;&lt;br /&gt;+					o_patt[p]=((r&amp;amp;0xff)&amp;lt;&amp;lt;16)|((g&amp;amp;0xff)&amp;lt;&amp;lt;8)|((b&amp;amp;0xff));&lt;br /&gt;+					p++;&lt;br /&gt;+&lt;br /&gt;+				}&lt;br /&gt;+			}&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+	};&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+	/**&lt;br /&gt;+	* ɓ̟׀ðϧÁ½İĘĹĎĥĂĵ֢гð©¯ÄÉĘĞУÌϬ˰͠©ç&lt;br /&gt;+	* ՃɓʰќԸÌ̩͠İĞÓðάЬµÜ·&lt;br /&gt;+	*&lt;br /&gt;+	*/&lt;br /&gt;+	NyARColorPatt_Perspective_O2::NyARColorPatt_Perspective_O2(int i_width, int i_height,int i_resolution,int i_edge_percentage):NyARColorPatt_Perspective(i_width,i_height,i_resolution,i_edge_percentage)&lt;br /&gt;+	{&lt;br /&gt;+		switch(i_resolution){&lt;br /&gt;+		case 1:&lt;br /&gt;+			this-&amp;gt;_pickup=new pickFromRaster_1(&amp;amp;this-&amp;gt;_pickup_lt,&amp;amp;this-&amp;gt;_size);&lt;br /&gt;+			break;&lt;br /&gt;+		case 2:&lt;br /&gt;+			this-&amp;gt;_pickup=new pickFromRaster_2x(&amp;amp;this-&amp;gt;_pickup_lt,&amp;amp;this-&amp;gt;_size);&lt;br /&gt;+			break;&lt;br /&gt;+		case 4:&lt;br /&gt;+			this-&amp;gt;_pickup=new pickFromRaster_4x(&amp;amp;this-&amp;gt;_pickup_lt,&amp;amp;this-&amp;gt;_size);&lt;br /&gt;+			break;&lt;br /&gt;+		default:&lt;br /&gt;+			this-&amp;gt;_pickup=new pickFromRaster_N(&amp;amp;this-&amp;gt;_pickup_lt,i_resolution,&amp;amp;this-&amp;gt;_size);&lt;br /&gt;+		}		&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	NyARColorPatt_Perspective_O2::~NyARColorPatt_Perspective_O2()&lt;br /&gt;+	{&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_pickup);&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	bool NyARColorPatt_Perspective_O2::pickFromRaster(const INyARRgbRaster&amp;amp; image,const NyARSquare&amp;amp; i_square)&lt;br /&gt;+	{&lt;br /&gt;+		//ɓ̟׀ÌİÉÁĞðͶϚ&lt;br /&gt;+		double cpara[8];&lt;br /&gt;+		if (!this-&amp;gt;_perspective_gen-&amp;gt;getParam(i_square.imvertex, cpara)) {&lt;br /&gt;+			return false;&lt;br /&gt;+		} 		&lt;br /&gt;+		this-&amp;gt;_pickup-&amp;gt;pickFromRaster(cpara, image, this-&amp;gt;_patdata);&lt;br /&gt;+		return true;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+}&lt;br /&gt;+&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARPerspectiveParamGenerator_O1.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARPerspectiveParamGenerator_O1.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARPerspectiveParamGenerator_O1.cpp	(revision 335)&lt;br /&gt;@@ -2,27 +2,25 @@&lt;br /&gt; * PROJECT: NyARToolkitCPP&lt;br /&gt; * --------------------------------------------------------------------------------&lt;br /&gt; *&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt; *&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt; * &lt;br /&gt; * This program is distributed in the hope that it will be useful,&lt;br /&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt; * GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;+*&lt;br /&gt; * You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt; * &lt;br /&gt; * For further information please contact.&lt;br /&gt; *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt; #include &amp;quot;NyARPerspectiveParamGenerator_O1.h&amp;quot;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARLabelInfoStack.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARLabelInfoStack.cpp	(revision 0)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARLabelInfoStack.cpp	(revision 335)&lt;br /&gt;@@ -0,0 +1,29 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+#include &amp;quot;NyARLabelInfoStack.h&amp;quot;&lt;br /&gt;+namespace NyARToolkitCPP&lt;br /&gt;+{&lt;br /&gt;+}&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARMatchPattDeviationColorData.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARMatchPattDeviationColorData.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARMatchPattDeviationColorData.cpp	(revision 335)&lt;br /&gt;@@ -2,27 +2,25 @@&lt;br /&gt; * PROJECT: NyARToolkitCPP&lt;br /&gt; * --------------------------------------------------------------------------------&lt;br /&gt; *&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt; *&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt; * &lt;br /&gt; * This program is distributed in the hope that it will be useful,&lt;br /&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt; * GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;+*&lt;br /&gt; * You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt; * &lt;br /&gt; * For further information please contact.&lt;br /&gt; *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt; &lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARPerspectiveParamGenerator.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARPerspectiveParamGenerator.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARPerspectiveParamGenerator.cpp	(revision 335)&lt;br /&gt;@@ -1,40 +1,38 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARPerspectiveParamGenerator.h&amp;quot;&lt;br /&gt; &lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;-/**&lt;br /&gt;- * ɓ̟׀ðذ¢½PerspectiveİÉÁĞðͶϚ·éĎÉĘÅ·&lt;br /&gt;- *&lt;br /&gt;- */&lt;br /&gt;+	/**&lt;br /&gt;+	* ɓ̟׀ðذ¢½PerspectiveİÉÁĞðͶϚ·éĎÉĘÅ·&lt;br /&gt;+	*&lt;br /&gt;+	*/&lt;br /&gt; 	NyARPerspectiveParamGenerator::NyARPerspectiveParamGenerator(int i_local_x,int i_local_y,int i_width, int i_height)&lt;br /&gt; 	{&lt;br /&gt; 		this-&amp;gt;_height=i_height;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARTransportVectorSolver.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARTransportVectorSolver.cpp	(revision 0)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARTransportVectorSolver.cpp	(revision 335)&lt;br /&gt;@@ -0,0 +1,29 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+#include &amp;quot;INyARTransportVectorSolver.h&amp;quot;&lt;br /&gt;+namespace NyARToolkitCPP&lt;br /&gt;+{&lt;br /&gt;+}&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRgbRaster_RGB.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRgbRaster_RGB.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRgbRaster_RGB.cpp	(revision 335)&lt;br /&gt;@@ -1,49 +1,36 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2009 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+&lt;br /&gt; #include &amp;quot;NyARRgbRaster_RGB.h&amp;quot;&lt;br /&gt; #include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt;-	NyARRgbRaster_RGB* NyARRgbRaster_RGB::wrap(const NyAR_BYTE_t* i_buffer, int i_width, int i_height)&lt;br /&gt;+	NyARRgbRaster_RGB::NyARRgbRaster_RGB(const NyAR_BYTE_t* i_ref_buffer,int i_width, int i_height):NyARRgbRaster_BasicClass(i_width,i_height)&lt;br /&gt; 	{&lt;br /&gt;-		return new NyARRgbRaster_RGB(i_buffer, i_width, i_height);&lt;br /&gt;-	}&lt;br /&gt;-&lt;br /&gt;-	NyARRgbRaster_RGB::NyARRgbRaster_RGB(const NyAR_BYTE_t* i_buffer, int i_width, int i_height):NyARRgbRaster_BasicClass(i_width,i_height)&lt;br /&gt;-	{&lt;br /&gt;-		this-&amp;gt;_ref_buf = i_buffer;&lt;br /&gt;-		this-&amp;gt;_rgb_reader = new NyARRgbPixelReader_RGB24(&amp;amp;this-&amp;gt;_size,i_buffer);&lt;br /&gt;-		this-&amp;gt;_buffer_reader=new NyARBufferReader(i_buffer,INyARBufferReader::BUFFERFORMAT_BYTE1D_R8G8B8_24);&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt;-	NyARRgbRaster_RGB::NyARRgbRaster_RGB(int i_width, int i_height):NyARRgbRaster_BasicClass(i_width,i_height)&lt;br /&gt;-	{&lt;br /&gt;-		this-&amp;gt;_ref_buf =NULL;&lt;br /&gt;+		this-&amp;gt;_ref_buf =i_ref_buffer;&lt;br /&gt; 		this-&amp;gt;_rgb_reader = new NyARRgbPixelReader_RGB24(&amp;amp;this-&amp;gt;_size,NULL);&lt;br /&gt; 		this-&amp;gt;_buffer_reader=new NyARBufferReader(NULL,INyARBufferReader::BUFFERFORMAT_BYTE1D_R8G8B8_24);&lt;br /&gt; 		return;&lt;br /&gt;@@ -64,12 +51,5 @@&lt;br /&gt; 	{&lt;br /&gt; 		return *(this-&amp;gt;_buffer_reader);&lt;br /&gt; 	}&lt;br /&gt;-	void NyARRgbRaster_RGB::setBuffer(const NyAR_BYTE_t* i_buffer)&lt;br /&gt;-	{&lt;br /&gt;-		NyAR_ASSERT(i_buffer!=NULL);&lt;br /&gt;-		this-&amp;gt;_ref_buf=i_buffer;&lt;br /&gt;-		this-&amp;gt;_buffer_reader-&amp;gt;setBuffer(i_buffer);&lt;br /&gt;-	}&lt;br /&gt;-&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSquareStack.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSquareStack.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSquareStack.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARSquareStack.h&amp;quot;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRaster_BasicClass.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRaster_BasicClass.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRaster_BasicClass.cpp	(revision 335)&lt;br /&gt;@@ -1,3 +1,28 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt; #include &amp;quot;NyARRaster_BasicClass.h&amp;quot;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARMatchPatt_Color_WITHOUT_PCA.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARMatchPatt_Color_WITHOUT_PCA.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARMatchPatt_Color_WITHOUT_PCA.cpp	(revision 335)&lt;br /&gt;@@ -2,27 +2,25 @@&lt;br /&gt; * PROJECT: NyARToolkitCPP&lt;br /&gt; * --------------------------------------------------------------------------------&lt;br /&gt; *&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt; *&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt; * &lt;br /&gt; * This program is distributed in the hope that it will be useful,&lt;br /&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt; * GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;+*&lt;br /&gt; * You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt; * &lt;br /&gt; * For further information please contact.&lt;br /&gt; *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt; #include &amp;quot;NyARMatchPatt_Color_WITHOUT_PCA.h&amp;quot;&lt;br /&gt;@@ -114,4 +112,4 @@&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;-}&lt;br /&gt;\ No newline at end of file&lt;br /&gt;+}&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARBinRaster.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARBinRaster.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARBinRaster.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,29 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+&lt;br /&gt; #include &amp;quot;NyARBinRaster.h&amp;quot;&lt;br /&gt; #include &amp;quot;NyARBufferReader.h&amp;quot;&lt;br /&gt; #include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARMatchPatt.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARMatchPatt.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARMatchPatt.cpp	(revision 335)&lt;br /&gt;@@ -1,29 +1,27 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;INyARMatchPatt.h&amp;quot;&lt;br /&gt; &lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARParam.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARParam.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARParam.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARParam.h&amp;quot;&lt;br /&gt; #include &amp;quot;../utils/NyStdLib.h&amp;quot;&lt;br /&gt; #include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSquare.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSquare.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSquare.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARSquare.h&amp;quot;&lt;br /&gt; &lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARSquareDetector.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARSquareDetector.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARSquareDetector.cpp	(revision 335)&lt;br /&gt;@@ -1,28 +1,26 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;INyARSquareDetector.h&amp;quot;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARLabeling_ARToolKit.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARLabeling_ARToolKit.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARLabeling_ARToolKit.cpp	(revision 335)&lt;br /&gt;@@ -1,3 +1,28 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARLabeling_ARToolKit.h&amp;quot;&lt;br /&gt; #include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt; #include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;@@ -31,7 +56,7 @@&lt;br /&gt; 			return;&lt;br /&gt; 		}&lt;br /&gt; &lt;br /&gt;-		 void reserv(int i_index)&lt;br /&gt;+		void reserv(int i_index)&lt;br /&gt; 		{&lt;br /&gt; 			// āÍĐħΏÝÈçѦÊĞÓ&lt;br /&gt; 			if (this-&amp;gt;_allocate_size &amp;gt; i_index) {&lt;br /&gt;@@ -67,34 +92,7 @@&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt; &lt;br /&gt;-	void NyARLabeling_ARToolKit::attachDestination(INyARLabelingImage* i_destination_image)&lt;br /&gt;-	{&lt;br /&gt;-		// ĔăęĠĆĢĎ&lt;br /&gt;-		const TNyARIntSize&amp;amp; size = i_destination_image-&amp;gt;getSize();&lt;br /&gt;-		this-&amp;gt;_out_image = i_destination_image;&lt;br /&gt; &lt;br /&gt;-		// NyLabelingImageÌăÁėω˺ɻ(٧ϑ«)&lt;br /&gt;-		int* img = (int*) i_destination_image-&amp;gt;getBufferReader().getBuffer();&lt;br /&gt;-		int bottom_ptr = (size.h - 1) * size.w;&lt;br /&gt;-		for (int i = 0; i &amp;lt; size.w; i++) {&lt;br /&gt;-			img[i] = 0;&lt;br /&gt;-			img[bottom_ptr + i] = 0;&lt;br /&gt;-		}&lt;br /&gt;-		for (int i = 0; i &amp;lt; size.h; i++) {&lt;br /&gt;-			img[i * size.w] = 0;&lt;br /&gt;-			img[(i + 1) * size.w - 1] = 0;&lt;br /&gt;-		}&lt;br /&gt;-&lt;br /&gt;-		// Ĕăę(ϑІӬ)ð֛Ѷ&lt;br /&gt;-//		this-&amp;gt;_dest_size = size;&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt;-&lt;br /&gt;-	 const INyARLabelingImage* NyARLabeling_ARToolKit::getAttachedDestination()const&lt;br /&gt;-	{&lt;br /&gt;-		return this-&amp;gt;_out_image;&lt;br /&gt;-	}&lt;br /&gt;-&lt;br /&gt; 	/**&lt;br /&gt; 	* static ARInt16 *labeling2( ARUint8 *image, int thresh,int *label_num, int **area, double **pos, int **clip,int **label_ref, int LorR ) ˖ДÌңҖ֩&lt;br /&gt; 	* ÉĘĞimageðÉĸÊÓďµÄ̋ʊð֛ѶµÜ· Optimize:STEP[1514-&amp;gt;1493]&lt;br /&gt;@@ -102,7 +100,7 @@&lt;br /&gt; 	* @param i_raster&lt;br /&gt; 	* @throws NyARException&lt;br /&gt; 	*/&lt;br /&gt;-	void NyARLabeling_ARToolKit::labeling(const NyARBinRaster&amp;amp; i_raster)&lt;br /&gt;+	int NyARLabeling_ARToolKit::labeling(const NyARBinRaster&amp;amp; i_raster,NyARLabelingImage&amp;amp; o_destination_image)const&lt;br /&gt; 	{&lt;br /&gt; 		int label_img_ptr1, label_pixel;&lt;br /&gt; 		int i, j;&lt;br /&gt;@@ -110,18 +108,18 @@&lt;br /&gt; &lt;br /&gt; 		// ĔăęĠĆĢĎ&lt;br /&gt; 		const TNyARIntSize&amp;amp; in_size = i_raster.getSize();&lt;br /&gt;-		NyAR_ASSERT(this-&amp;gt;_out_image-&amp;gt;getSize().isEqualSize(in_size));&lt;br /&gt;+		NyAR_ASSERT(o_destination_image.getSize().isEqualSize(in_size));&lt;br /&gt; &lt;br /&gt; 		const int lxsize = in_size.w;// lxsize = arUtil_c.arImXsize;&lt;br /&gt; 		const int lysize = in_size.h;// lysize = arUtil_c.arImYsize;&lt;br /&gt;-		int *label_img = (int*) this-&amp;gt;_out_image-&amp;gt;getBufferReader().getBuffer();&lt;br /&gt;+		int *label_img = (int*)o_destination_image.getBufferReader().getBuffer();&lt;br /&gt; &lt;br /&gt; 		// ٧άЬÍăÓĘĞÓĘðάÁ½ҼͣÉâÁÄµÜ¤&lt;br /&gt; &lt;br /&gt; 		// ÉĸÊÓďЮֱÌÊĚĢħ©ÉĸÊÓďăÓĦĢĎĘðϧذª&lt;br /&gt;-		this-&amp;gt;_out_image-&amp;gt;reset(true);&lt;br /&gt;+		o_destination_image.reset(true);&lt;br /&gt; &lt;br /&gt;-		int *label_idxtbl = this-&amp;gt;_out_image-&amp;gt;getIndexArray()-&amp;gt;item;&lt;br /&gt;+		int *label_idxtbl = o_destination_image.getIndexArray()-&amp;gt;item;&lt;br /&gt; 		const int *raster_buf = (const int*) i_raster.getBufferReader().getBuffer();&lt;br /&gt; &lt;br /&gt; 		int *work2_pt;&lt;br /&gt;@@ -261,11 +259,11 @@&lt;br /&gt; 		wlabel_num -= 1;// *label_num = *wlabel_num = j - 1;&lt;br /&gt; 		if (wlabel_num == 0) {// if( *label_num == 0 ) {&lt;br /&gt; 			// ԭ̩Д0&lt;br /&gt;-			this-&amp;gt;_out_image-&amp;gt;getLabelStack().clear();&lt;br /&gt;-			return;&lt;br /&gt;+			o_destination_image.getLabelStack().clear();&lt;br /&gt;+			return 0;&lt;br /&gt; 		}&lt;br /&gt; 		// ÉĸËЮֱÌ֛Ѷә&lt;br /&gt;-		NyARLabelingLabelStack&amp;amp; label_list = this-&amp;gt;_out_image-&amp;gt;getLabelStack();&lt;br /&gt;+		NyARLabelingLabelStack&amp;amp; label_list = o_destination_image.getLabelStack();&lt;br /&gt; &lt;br /&gt; 		// ÉĸËįĢĴĀð؜ױ&lt;br /&gt; 		label_list.reserv(wlabel_num);&lt;br /&gt;@@ -308,6 +306,6 @@&lt;br /&gt; 			label_pt-&amp;gt;pos_x /= label_pt-&amp;gt;area;&lt;br /&gt; 			label_pt-&amp;gt;pos_y /= label_pt-&amp;gt;area;&lt;br /&gt; 		}&lt;br /&gt;-		return;&lt;br /&gt;+		return wlabel_num;&lt;br /&gt; 	}&lt;br /&gt; }&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARCameraDistortionFactor.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARCameraDistortionFactor.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARCameraDistortionFactor.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARCameraDistortionFactor.h&amp;quot;&lt;br /&gt; #include &amp;lt;cmath&amp;gt;&lt;br /&gt; &lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARCustomSingleDetectMarker.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARCustomSingleDetectMarker.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARCustomSingleDetectMarker.cpp	(revision 335)&lt;br /&gt;@@ -2,27 +2,25 @@&lt;br /&gt; * PROJECT: NyARToolkitCPP&lt;br /&gt; * --------------------------------------------------------------------------------&lt;br /&gt; *&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt; *&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt; * &lt;br /&gt; * This program is distributed in the hope that it will be useful,&lt;br /&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt; * GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;+*&lt;br /&gt; * You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt; * &lt;br /&gt; * For further information please contact.&lt;br /&gt; *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt; #include &amp;quot;NyARCustomSingleDetectMarker.h&amp;quot;&lt;br /&gt;@@ -33,11 +31,6 @@&lt;br /&gt; {&lt;br /&gt; #define AR_SQUARE_MAX 100&lt;br /&gt; &lt;br /&gt;-	NyARCustomSingleDetectMarker::NyARCustomSingleDetectMarker(const NyARParam* i_param,const NyARCode* i_code, double i_marker_width,const INyARRasterFilter_RgbToBin* i_filter)&lt;br /&gt;-	{&lt;br /&gt;-		initInstance(i_param,i_code,i_marker_width,i_filter);&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt; 	NyARCustomSingleDetectMarker::NyARCustomSingleDetectMarker()&lt;br /&gt; 	{&lt;br /&gt; 		//ΩժÅinitInstanceðπγµÄɺ³¢&lt;br /&gt;@@ -46,32 +39,36 @@&lt;br /&gt; 	NyARCustomSingleDetectMarker::~NyARCustomSingleDetectMarker()&lt;br /&gt; 	{&lt;br /&gt; 		NyAR_SAFE_DELETE(this-&amp;gt;_square_list);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_square_detect);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_bin_raster);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_match_patt);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_deviation_data);&lt;br /&gt; 		NyAR_SAFE_DELETE(this-&amp;gt;_transmat);&lt;br /&gt;+		//У©çàçÁ½Ì&lt;br /&gt; 		NyAR_SAFE_DELETE(this-&amp;gt;_patt);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_deviation_data);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_match_patt);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_bin_raster);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_square_detect);&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt;-	void NyARCustomSingleDetectMarker::initInstance(const NyARParam* i_param,const NyARCode* i_code, double i_marker_width,const INyARRasterFilter_RgbToBin* i_filter)&lt;br /&gt;+	void NyARCustomSingleDetectMarker::initInstance(&lt;br /&gt;+		INyARColorPatt* i_patt_inst,&lt;br /&gt;+		INyARSquareDetector* i_sqdetect_inst,&lt;br /&gt;+		INyARTransMat* i_transmat_inst,&lt;br /&gt;+		const INyARRasterFilter_RgbToBin* i_filter,&lt;br /&gt;+		const NyARParam* i_ref_param,&lt;br /&gt;+		const NyARCode* i_ref_code,&lt;br /&gt;+		double i_marker_width)&lt;br /&gt; 	{&lt;br /&gt;-		const TNyARIntSize&amp;amp; scr_size=i_param-&amp;gt;getScreenSize();		&lt;br /&gt;+		const TNyARIntSize&amp;amp; scr_size=i_ref_param-&amp;gt;getScreenSize();		&lt;br /&gt; 		// ʰэĉĵėĆĎħðάé&lt;br /&gt;-		this-&amp;gt;_square_list=new NyARSquareStack(AR_SQUARE_MAX);&lt;br /&gt;-		this-&amp;gt;_square_detect = new NyARSquareDetector(i_param-&amp;gt;getDistortionFactor(),scr_size);&lt;br /&gt;-		this-&amp;gt;_transmat = new NyARTransMat(i_param);&lt;br /&gt;-		//İĞÓĳĢĎāĢĶðάЬ&lt;br /&gt;-		this-&amp;gt;_patt = new NyARColorPatt_O3(i_code-&amp;gt;getWidth(), i_code-&amp;gt;getHeight());&lt;br /&gt;-		//ϦӾİĞÓÌͷժĦĞ˭ðάЬ&lt;br /&gt;-		this-&amp;gt;_deviation_data=new NyARMatchPattDeviationColorData(i_code-&amp;gt;getWidth(),i_code-&amp;gt;getHeight());&lt;br /&gt;-		//i_codeذÌ֝ɿ˭ðάЬ&lt;br /&gt;-		this-&amp;gt;_match_patt = new NyARMatchPatt_Color_WITHOUT_PCA(i_code);		&lt;br /&gt;-		this-&amp;gt;_bin_raster=new NyARBinRaster(scr_size.w,scr_size.h);&lt;br /&gt;-		//ÑӬʦќįĢĴĀðάé&lt;br /&gt;+		this-&amp;gt;_square_detect=i_sqdetect_inst;&lt;br /&gt;+		this-&amp;gt;_transmat=i_transmat_inst;&lt;br /&gt; 		this-&amp;gt;_tobin_filter=i_filter;&lt;br /&gt;-		this-&amp;gt;_is_continue = false;&lt;br /&gt; 		this-&amp;gt;_marker_width = i_marker_width;&lt;br /&gt;+		this-&amp;gt;_patt = i_patt_inst;&lt;br /&gt;+		this-&amp;gt;_deviation_data=new NyARMatchPattDeviationColorData(i_ref_code-&amp;gt;getWidth(),i_ref_code-&amp;gt;getHeight());&lt;br /&gt;+		this-&amp;gt;_match_patt = new NyARMatchPatt_Color_WITHOUT_PCA(i_ref_code);		&lt;br /&gt;+		this-&amp;gt;_bin_raster=new NyARBinRaster(scr_size.w,scr_size.h);&lt;br /&gt;+		this-&amp;gt;_square_list=new NyARSquareStack(AR_SQUARE_MAX);&lt;br /&gt;+		this-&amp;gt;_is_continue = false;&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt; &lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARRgbPixelReader.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARRgbPixelReader.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARRgbPixelReader.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;INyARRgbPixelReader.h&amp;quot;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/TNyARMatchPattResult.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/TNyARMatchPattResult.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/TNyARMatchPattResult.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; &lt;br /&gt; #include &amp;quot;TNyARMatchPattResult.h&amp;quot;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSystemofLinearEquationProcessor.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSystemofLinearEquationProcessor.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSystemofLinearEquationProcessor.cpp	(revision 335)&lt;br /&gt;@@ -1,31 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;-&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt; &lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARTransportVectorSolver.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARTransportVectorSolver.cpp	(revision 0)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARTransportVectorSolver.cpp	(revision 335)&lt;br /&gt;@@ -0,0 +1,130 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+#include &amp;quot;NyARTransportVectorSolver.h&amp;quot;&lt;br /&gt;+#include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt;+namespace NyARToolkitCPP&lt;br /&gt;+{&lt;br /&gt;+	NyARTransportVectorSolver::NyARTransportVectorSolver(const NyARPerspectiveProjectionMatrix* i_projection_mat_ref,int i_max_vertex)&lt;br /&gt;+	{&lt;br /&gt;+		this-&amp;gt;_projection_mat=i_projection_mat_ref;&lt;br /&gt;+		this-&amp;gt;_cx=new double[i_max_vertex];&lt;br /&gt;+		this-&amp;gt;_cy=new double[i_max_vertex];	&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	NyARTransportVectorSolver::~NyARTransportVectorSolver()&lt;br /&gt;+	{&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_cx);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_cy);&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	void NyARTransportVectorSolver::set2dVertex(const TNyARDoublePoint2d* i_ref_vertex_2d,int i_number_of_vertex)&lt;br /&gt;+	{&lt;br /&gt;+		//3x2nÆ2n*3Ìγر©ç΅ϬԱЦ׀ͶϚ·é½ßÉ3x3ĽħÊĎĘðάé		&lt;br /&gt;+		//[A]*[A]T&lt;br /&gt;+		//γر[A]Ì3رךÌČÃĢĖÅ&lt;br /&gt;+		double* cx=this-&amp;gt;_cx;&lt;br /&gt;+		double* cy=this-&amp;gt;_cy;&lt;br /&gt;+&lt;br /&gt;+		double m22;&lt;br /&gt;+		double p00=this-&amp;gt;_projection_mat-&amp;gt;m00;&lt;br /&gt;+		double p01=this-&amp;gt;_projection_mat-&amp;gt;m01;&lt;br /&gt;+		double p11=this-&amp;gt;_projection_mat-&amp;gt;m11;&lt;br /&gt;+		double p12=this-&amp;gt;_projection_mat-&amp;gt;m12;&lt;br /&gt;+		double p02=this-&amp;gt;_projection_mat-&amp;gt;m02;&lt;br /&gt;+		double w1,w2,w3,w4;&lt;br /&gt;+		this-&amp;gt;_a00=i_number_of_vertex*p00*p00;&lt;br /&gt;+		this-&amp;gt;_a01_10=i_number_of_vertex*p00*p01;&lt;br /&gt;+		this-&amp;gt;_a11=i_number_of_vertex*(p01*p01+p11*p11);&lt;br /&gt;+&lt;br /&gt;+		//[A]T*[A]ÌͶϚ&lt;br /&gt;+		m22=0;&lt;br /&gt;+		w1=w2=0;&lt;br /&gt;+		for(int i=0;i&amp;lt;i_number_of_vertex;i++){&lt;br /&gt;+			//΀֗ð֛ѶµÄ¨­&lt;br /&gt;+			w3=p02-(cx[i]=i_ref_vertex_2d[i].x);&lt;br /&gt;+			w4=p12-(cy[i]=i_ref_vertex_2d[i].y);&lt;br /&gt;+			w1+=w3;&lt;br /&gt;+			w2+=w4;&lt;br /&gt;+			m22+=w3*w3+w4*w4;&lt;br /&gt;+		}&lt;br /&gt;+		this-&amp;gt;_a02_20=w1*p00;&lt;br /&gt;+		this-&amp;gt;_a12_21=p01*w1+p11*w2;&lt;br /&gt;+		this-&amp;gt;_a22=m22;&lt;br /&gt;+&lt;br /&gt;+		this-&amp;gt;_nmber_of_vertex=i_number_of_vertex;&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	void NyARTransportVectorSolver::solveTransportVector(const TNyARDoublePoint3d i_vertex3d[],TNyARDoublePoint3d&amp;amp; o_transfer)const&lt;br /&gt;+	{&lt;br /&gt;+		int number_of_vertex=this-&amp;gt;_nmber_of_vertex;&lt;br /&gt;+		double p00=this-&amp;gt;_projection_mat-&amp;gt;m00;&lt;br /&gt;+		double p01=this-&amp;gt;_projection_mat-&amp;gt;m01;&lt;br /&gt;+		double p02=this-&amp;gt;_projection_mat-&amp;gt;m02;&lt;br /&gt;+		double p11=this-&amp;gt;_projection_mat-&amp;gt;m11;&lt;br /&gt;+		double p12=this-&amp;gt;_projection_mat-&amp;gt;m12;&lt;br /&gt;+		//γر[A]Ì3رךÌČÃĢĖÅ&lt;br /&gt;+		double* cx=this-&amp;gt;_cx;&lt;br /&gt;+		double* cy=this-&amp;gt;_cy;			&lt;br /&gt;+&lt;br /&gt;+		//ʱԝγرð̳΀֗ÌҸԟ͑Éԋɞ&lt;br /&gt;+		//[A]T*[b]ðͶϚ&lt;br /&gt;+		double b1=0,b2=0,b3=0;&lt;br /&gt;+		for(int i=0;i&amp;lt;number_of_vertex;i++)&lt;br /&gt;+		{&lt;br /&gt;+			double w1=i_vertex3d[i].z*cx[i]-p00*i_vertex3d[i].x-p01*i_vertex3d[i].y-p02*i_vertex3d[i].z;&lt;br /&gt;+			double w2=i_vertex3d[i].z*cy[i]-p11*i_vertex3d[i].y-p12*i_vertex3d[i].z;&lt;br /&gt;+			b1+=w1;&lt;br /&gt;+			b2+=w2;&lt;br /&gt;+			b3+=cx[i]*w1+cy[i]*w2;&lt;br /&gt;+		}&lt;br /&gt;+		//[A]T*[b]ðͶϚ&lt;br /&gt;+		b3=p02*b1+p12*b2-b3;//χՔ֏¦½çğÁæ&lt;br /&gt;+		b2=p01*b1+p11*b2;&lt;br /&gt;+		b1=p00*b1;&lt;br /&gt;+		//([A]T*[A])*[T]=[A]T*[b]ðֻӶήÅʰ­&lt;br /&gt;+		//a01Æa10ð0ÆɼӨµÄà؇¢ñ¶áÈ¢©È&lt;br /&gt;+		double a00=this-&amp;gt;_a00;&lt;br /&gt;+		double a01=this-&amp;gt;_a01_10;&lt;br /&gt;+		double a02=this-&amp;gt;_a02_20;&lt;br /&gt;+		double a11=this-&amp;gt;_a11;&lt;br /&gt;+		double a12=this-&amp;gt;_a12_21;&lt;br /&gt;+		double a22=this-&amp;gt;_a22;&lt;br /&gt;+		&lt;br /&gt;+		double t1=a22*b2-a12*b3;&lt;br /&gt;+		double t2=a12*b2-a11*b3;&lt;br /&gt;+		double t3=a01*b3-a02*b2;&lt;br /&gt;+		double t4=a12*a12-a11*a22;&lt;br /&gt;+		double t5=a02*a12-a01*a22;&lt;br /&gt;+		double t6=a02*a11-a01*a12;&lt;br /&gt;+		double det=a00*t4-a01*t5 + a02*t6;&lt;br /&gt;+		o_transfer.x= (a01*t1 - a02*t2 +b1*t4)/det;&lt;br /&gt;+		o_transfer.y=-(a00*t1 + a02*t3 +b1*t5)/det;&lt;br /&gt;+		o_transfer.z= (a00*t2 + a01*t3 +b1*t6)/det;&lt;br /&gt;+		&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+}&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARLabeling_Rle.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARLabeling_Rle.cpp	(revision 0)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARLabeling_Rle.cpp	(revision 335)&lt;br /&gt;@@ -0,0 +1,357 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+#include &amp;quot;NyARLabeling_Rle.h&amp;quot;&lt;br /&gt;+#include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+#define AR_AREA_MAX 100000// #define AR_AREA_MAX 100000&lt;br /&gt;+#define AR_AREA_MIN 70// #define AR_AREA_MIN 70&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+namespace NyARToolkitCPP&lt;br /&gt;+{&lt;br /&gt;+	typedef struct TRleInfo_t&lt;br /&gt;+	{&lt;br /&gt;+		//ͰϳÁÓį&lt;br /&gt;+		int entry_x; // ĴÉďÁÓħÉĸËÌɊӵ&lt;br /&gt;+		int area;&lt;br /&gt;+		int clip_r;&lt;br /&gt;+		int clip_l;&lt;br /&gt;+		int clip_b;&lt;br /&gt;+		int clip_t;&lt;br /&gt;+		NyAR_INT64_t pos_x;&lt;br /&gt;+		NyAR_INT64_t pos_y;		&lt;br /&gt;+	}TRleInfo;&lt;br /&gt;+&lt;br /&gt;+	class RleInfoStack : public NyObjectStack&amp;lt;TRleInfo&amp;gt;&lt;br /&gt;+	{&lt;br /&gt;+	public:&lt;br /&gt;+&lt;br /&gt;+	public:&lt;br /&gt;+		RleInfoStack(int i_length):NyObjectStack&amp;lt;TRleInfo&amp;gt;(i_length)&lt;br /&gt;+		{&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+	};&lt;br /&gt;+	/**&lt;br /&gt;+	* [strage class]&lt;br /&gt;+	*/&lt;br /&gt;+&lt;br /&gt;+	struct TRleElement_t&lt;br /&gt;+	{&lt;br /&gt;+		int l;&lt;br /&gt;+		int r;&lt;br /&gt;+		int fid;&lt;br /&gt;+	};&lt;br /&gt;+&lt;br /&gt;+	NyARLabeling_Rle::NyARLabeling_Rle(int i_width,int i_height)&lt;br /&gt;+	{&lt;br /&gt;+		this-&amp;gt;_rlestack=new RleInfoStack(i_width*i_height*2048/(320*240)+32);&lt;br /&gt;+		this-&amp;gt;_rle1 = new TRleElement[i_width/2+1];&lt;br /&gt;+		this-&amp;gt;_rle2 = new TRleElement[i_width/2+1];&lt;br /&gt;+		setAreaRange(AR_AREA_MAX,AR_AREA_MIN);&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	NyARLabeling_Rle::~NyARLabeling_Rle()&lt;br /&gt;+	{&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_rlestack);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_rle1);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_rle2);&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+	void NyARLabeling_Rle::setAreaRange(int i_max,int i_min)&lt;br /&gt;+	{&lt;br /&gt;+		this-&amp;gt;_max_area=i_max;&lt;br /&gt;+		this-&amp;gt;_min_area=i_min;&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+	int NyARLabeling_Rle::toRel(int* i_bin_buf, int i_st, int i_len, TRleElement* i_out)&lt;br /&gt;+	{&lt;br /&gt;+		int current = 0;&lt;br /&gt;+		int r = -1;&lt;br /&gt;+		// γ˭ӨˊϮ&lt;br /&gt;+		int x = i_st;&lt;br /&gt;+		const int right_edge = i_st + i_len - 1;&lt;br /&gt;+		while (x &amp;lt; right_edge) {&lt;br /&gt;+			// Ƀԟ(0)ĘČÃÓ&lt;br /&gt;+			if (i_bin_buf[x] != 0) {&lt;br /&gt;+				x++;&lt;br /&gt;+				continue;&lt;br /&gt;+			}&lt;br /&gt;+			// Ƀԟԭ̩hɃԟҷðҲ×é&lt;br /&gt;+			r = (x - i_st);&lt;br /&gt;+			i_out[current].l = r;&lt;br /&gt;+			r++;// Ƀԟ+1&lt;br /&gt;+			x++;&lt;br /&gt;+			while (x &amp;lt; right_edge) {&lt;br /&gt;+				if (i_bin_buf[x] != 0) {&lt;br /&gt;+					// ־ԟ(1)hɃԟ(0)պرЉ׹&amp;gt;ԯٞ&lt;br /&gt;+					i_out[current].r = r;&lt;br /&gt;+					current++;&lt;br /&gt;+					x++;// ΟԟÌ˭Ն&lt;br /&gt;+					r = -1;// ʅӛÌɊӵð0É&lt;br /&gt;+					break;&lt;br /&gt;+				} else {&lt;br /&gt;+					// Ƀԟ(0)ҷӇʁ&lt;br /&gt;+					r++;&lt;br /&gt;+					x++;&lt;br /&gt;+				}&lt;br /&gt;+			}&lt;br /&gt;+		}&lt;br /&gt;+		// ΅ͣÌ1ԟ¾¯ԻӨֻ׀ªϭµɡ¤Ì&lt;br /&gt;+		if (i_bin_buf[x] != 0) {&lt;br /&gt;+			// ־ԟhrĊąÓħ҆ÈçɃԟպرЉ׹&amp;gt;ԯٞ&lt;br /&gt;+			if (r &amp;gt;= 0) {&lt;br /&gt;+				i_out[current].r = r;&lt;br /&gt;+				current++;&lt;br /&gt;+			}&lt;br /&gt;+		} else {&lt;br /&gt;+			// ɃԟhĊąÓħ҆ÅÈ¯êÎl1ÅӇʁ&lt;br /&gt;+			if (r &amp;gt;= 0) {&lt;br /&gt;+				i_out[current].r = (r + 1);&lt;br /&gt;+			} else {&lt;br /&gt;+				// ΅ͣÌ1ԟÌЪ͇&lt;br /&gt;+				i_out[current].l = (i_len - 1);&lt;br /&gt;+				i_out[current].r = (i_len);&lt;br /&gt;+			}&lt;br /&gt;+			current++;&lt;br /&gt;+		}&lt;br /&gt;+		// γ˭Ө&lt;br /&gt;+		return current;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	void NyARLabeling_Rle::addFragment(TRleElement&amp;amp; i_rel_img, int i_nof, int i_row_index,RleInfoStack&amp;amp; o_stack)&lt;br /&gt;+	{&lt;br /&gt;+		int l=i_rel_img.l;&lt;br /&gt;+		const int len=i_rel_img.r - l;&lt;br /&gt;+		i_rel_img.fid = i_nof;// RELֈÌͅ،ID&lt;br /&gt;+		TRleInfo* v = o_stack.prePush();&lt;br /&gt;+		v-&amp;gt;entry_x = l;&lt;br /&gt;+		v-&amp;gt;area =len;&lt;br /&gt;+		v-&amp;gt;clip_l=l;&lt;br /&gt;+		v-&amp;gt;clip_r=i_rel_img.r-1;&lt;br /&gt;+		v-&amp;gt;clip_t=i_row_index;&lt;br /&gt;+		v-&amp;gt;clip_b=i_row_index;&lt;br /&gt;+		v-&amp;gt;pos_x=(len*(2*l+(len-1)))/2;&lt;br /&gt;+		v-&amp;gt;pos_y=i_row_index*len;&lt;br /&gt;+&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	//&lt;br /&gt;+	int NyARLabeling_Rle::labeling(const NyARBinRaster&amp;amp; i_bin_raster, int i_top, int i_bottom,RleLabelFragmentInfoStack&amp;amp; o_stack)&lt;br /&gt;+	{&lt;br /&gt;+		// ÊĚĢħψם&lt;br /&gt;+		RleInfoStack&amp;amp; rlestack=*this-&amp;gt;_rlestack;&lt;br /&gt;+		rlestack.clear();&lt;br /&gt;+&lt;br /&gt;+		//&lt;br /&gt;+		TRleElement* rle_prev = this-&amp;gt;_rle1;&lt;br /&gt;+		TRleElement* rle_current = this-&amp;gt;_rle2;&lt;br /&gt;+		int len_prev = 0;&lt;br /&gt;+		int len_current = 0;&lt;br /&gt;+		const int width = i_bin_raster.getWidth();&lt;br /&gt;+		int* in_buf = (int*) i_bin_raster.getBufferReader().getBuffer();&lt;br /&gt;+&lt;br /&gt;+		int id_max = 0;&lt;br /&gt;+		int label_count=0;&lt;br /&gt;+		// ωөԯٞ&lt;br /&gt;+&lt;br /&gt;+		len_prev = toRel(in_buf, i_top, width, rle_prev);&lt;br /&gt;+		for (int i = 0; i &amp;lt; len_prev; i++) {&lt;br /&gt;+			// ĴÉďÁÓħID=ĴÉďÁÓħω˺ӬPOS=YӬRELăÓĦĎĘ=γ&lt;br /&gt;+			addFragment(rle_prev[i], id_max, i_top, rlestack);&lt;br /&gt;+			id_max++;&lt;br /&gt;+			// nofÌ΅ҥӬĠĆĢĎ&lt;br /&gt;+			label_count++;&lt;br /&gt;+		}&lt;br /&gt;+		TRleInfo** const f_array = rlestack.getArray().item;&lt;br /&gt;+		// Οө͇̋&lt;br /&gt;+		for (int y = i_top + 1; y &amp;lt; i_bottom; y++) {&lt;br /&gt;+			// ĊÌÓħγÌԇ͞&lt;br /&gt;+			len_current = toRel(in_buf, y * width, width, rle_current);&lt;br /&gt;+			int index_prev = 0;&lt;br /&gt;+&lt;br /&gt;+			for (int i = 0; i &amp;lt; len_current; i++) {&lt;br /&gt;+				// index_prev,len_prevÌɊӵðҲЮ·é&lt;br /&gt;+				int id = -1;&lt;br /&gt;+				// ĠĆĢĎ·×«prevª êÎ˭Ն&lt;br /&gt;+				while (index_prev &amp;lt; len_prev) {&lt;br /&gt;+					if (rle_current[i].l - rle_prev[index_prev].r &amp;gt; 0) {// 0Èç8ֻɊÉĸÊÓď&lt;br /&gt;+						// prevªcurÌͶֻÉ éhΟÌĴÉďÁÓħðӔε&lt;br /&gt;+						index_prev++;&lt;br /&gt;+						continue;&lt;br /&gt;+					} else if (rle_prev[index_prev].l - rle_current[i].r &amp;gt; 0) {// 0Èç8ֻɊÉĸÊÓďÉÈé&lt;br /&gt;+						// prevªcurʅֻÉ éhԆקĴÉďÁÓħ&lt;br /&gt;+						addFragment(rle_current[i], id_max, y,rlestack);&lt;br /&gt;+						id_max++;&lt;br /&gt;+						label_count++;&lt;br /&gt;+						// ΟÌindexðµç×é&lt;br /&gt;+						goto SCAN_CUR;&lt;br /&gt;+					}&lt;br /&gt;+					id=rle_prev[index_prev].fid;//ËħĴÉďÁÓħid&lt;br /&gt;+					TRleInfo&amp;amp; id_ptr = *f_array[id];&lt;br /&gt;+					//͇̋ҎЛ(ωʱ)-&amp;gt;prevÌIDðĒĳµÄËħĴÉďÁÓħÌЮֱðΘі&lt;br /&gt;+					rle_current[i].fid = id;//ĴÉďÁÓħIDð֛Ѷ&lt;br /&gt;+					//&lt;br /&gt;+					const int l= rle_current[i].l;&lt;br /&gt;+					const int r= rle_current[i].r;&lt;br /&gt;+					const int len=r-l;&lt;br /&gt;+					//͇̋ѦĴÉďÁÓħÌЮֱðΘі·é&lt;br /&gt;+					id_ptr.area += len;&lt;br /&gt;+					//tÆentry_xÍ͇̋ѦÌðϧ¤ÌÅΘіµÈ¢&lt;br /&gt;+					id_ptr.clip_l=l&amp;lt;id_ptr.clip_l?l:id_ptr.clip_l;&lt;br /&gt;+					id_ptr.clip_r=r&amp;gt;id_ptr.clip_r?r-1:id_ptr.clip_r;&lt;br /&gt;+					id_ptr.clip_b=y;&lt;br /&gt;+					id_ptr.pos_x+=(len*(2*l+(len-1)))/2;&lt;br /&gt;+					id_ptr.pos_y+=y*len;&lt;br /&gt;+					//ѽФ͇̋Ì˭Ն©Ñ͂ךɈξª&lt;br /&gt;+					index_prev++;&lt;br /&gt;+					while (index_prev &amp;lt; len_prev) {&lt;br /&gt;+						if (rle_current[i].l - rle_prev[index_prev].r &amp;gt; 0) {// 0Èç8ֻɊÉĸÊÓď&lt;br /&gt;+							// prevªcurÌͶֻÉ éhprevÍcurÉف̋µÄ¢È¢&lt;br /&gt;+							goto SCAN_PREV;&lt;br /&gt;+						} else if (rle_prev[index_prev].l - rle_current[i].r &amp;gt; 0) {// 0Èç8ֻɊÉĸÊÓďÉÈé&lt;br /&gt;+							// prevªcurÌʅֻÉ éhprevÍcurÉف̋µÄ¢È¢&lt;br /&gt;+							index_prev--;&lt;br /&gt;+							goto SCAN_CUR;&lt;br /&gt;+						}&lt;br /&gt;+						// prevÆcurÍف̋µÄ¢éhËħĴÉďÁÓħÌӝ͇&lt;br /&gt;+&lt;br /&gt;+						//͇̋·éËħĴÉďÁÓħðϦӾ&lt;br /&gt;+						const int prev_id =rle_prev[index_prev].fid;&lt;br /&gt;+						TRleInfo&amp;amp; prev_ptr = *f_array[prev_id];&lt;br /&gt;+						if (id != prev_id){&lt;br /&gt;+							label_count--;&lt;br /&gt;+							//prevÆcurrentÌĴÉďÁÓħidðϑ«ʷ¦é&lt;br /&gt;+							for(int i2=index_prev;i2&amp;lt;len_prev;i2++){&lt;br /&gt;+								//prevÍ̻ΝÌid©ç΅ͣÜÅ&lt;br /&gt;+								if(rle_prev[i2].fid==prev_id){&lt;br /&gt;+									rle_prev[i2].fid=id;&lt;br /&gt;+								}&lt;br /&gt;+							}&lt;br /&gt;+							for(int i2=0;i2&amp;lt;i;i2++){&lt;br /&gt;+								//currentÍ0©ç̻Ν-1ÜÅ&lt;br /&gt;+								if(rle_current[i2].fid==prev_id){&lt;br /&gt;+									rle_current[i2].fid=id;&lt;br /&gt;+								}&lt;br /&gt;+							}&lt;br /&gt;+&lt;br /&gt;+							//̻ΝÌËħĴÉďÁÓħÉЮֱðЗױ&lt;br /&gt;+							id_ptr.area +=prev_ptr.area;&lt;br /&gt;+							id_ptr.pos_x+=prev_ptr.pos_x;&lt;br /&gt;+							id_ptr.pos_y+=prev_ptr.pos_y;&lt;br /&gt;+							//tÆentry_xÌ̈Ө&lt;br /&gt;+							if (id_ptr.clip_t &amp;gt; prev_ptr.clip_t) {&lt;br /&gt;+								// ̻ΝÌֻªɺÉ é&lt;br /&gt;+								id_ptr.clip_t = prev_ptr.clip_t;&lt;br /&gt;+								id_ptr.entry_x = prev_ptr.entry_x;&lt;br /&gt;+							}else if (id_ptr.clip_t &amp;lt; prev_ptr.clip_t) {&lt;br /&gt;+								// ̻ΝÌֻªУÉ éprevÉĴĂĨįĢĎ&lt;br /&gt;+							} else {&lt;br /&gt;+								// ЅսֻͼÅϬ³¢ֻªćÓħÊļăÓħ&lt;br /&gt;+								if (id_ptr.entry_x &amp;gt; prev_ptr.entry_x) {&lt;br /&gt;+									id_ptr.entry_x = prev_ptr.entry_x;&lt;br /&gt;+								}else{&lt;br /&gt;+								}&lt;br /&gt;+							}&lt;br /&gt;+							//lÌ̈Ө&lt;br /&gt;+							if (id_ptr.clip_l &amp;gt; prev_ptr.clip_l) {&lt;br /&gt;+								id_ptr.clip_l=prev_ptr.clip_l;&lt;br /&gt;+							}else{&lt;br /&gt;+							}&lt;br /&gt;+							//rÌ̈Ө&lt;br /&gt;+							if (id_ptr.clip_r &amp;lt; prev_ptr.clip_r) {&lt;br /&gt;+								id_ptr.clip_r=prev_ptr.clip_r;&lt;br /&gt;+							}else{&lt;br /&gt;+							}&lt;br /&gt;+							//bÌ̈Ө&lt;br /&gt;+&lt;br /&gt;+							//͇̋ΏÌËħĴÉďÁÓħðֳ͸ɻ·é&lt;br /&gt;+							prev_ptr.area=0;&lt;br /&gt;+						}&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+						index_prev++;&lt;br /&gt;+					}&lt;br /&gt;+					index_prev--;&lt;br /&gt;+					break;&lt;br /&gt;+					SCAN_PREV:;&lt;br /&gt;+				}&lt;br /&gt;+				// curÉidªʄèӖÄçê½©ð˭Ն&lt;br /&gt;+				// ʅӛԆקĴÉďÁÓħðӇʁ&lt;br /&gt;+				if (id &amp;lt; 0){&lt;br /&gt;+					addFragment(rle_current[i], id_max, y,rlestack);&lt;br /&gt;+					id_max++;&lt;br /&gt;+					label_count++;&lt;br /&gt;+				}&lt;br /&gt;+			SCAN_CUR:;&lt;br /&gt;+			}&lt;br /&gt;+			// prevÆrelÌͰʷ&lt;br /&gt;+			TRleElement* tmp = rle_prev;&lt;br /&gt;+			rle_prev = rle_current;&lt;br /&gt;+			len_prev = len_current;&lt;br /&gt;+			rle_current = tmp;&lt;br /&gt;+		}&lt;br /&gt;+		//ҎЛÌÉĸË¾¯ԝϊ&lt;br /&gt;+		o_stack.reserv(label_count);&lt;br /&gt;+		RleLabelFragmentInfo** o_dest_array=o_stack.getArray().item;&lt;br /&gt;+		const int max=this-&amp;gt;_max_area;&lt;br /&gt;+		const int min=this-&amp;gt;_min_area;&lt;br /&gt;+		int active_labels=0;&lt;br /&gt;+		for(int i=id_max-1;i&amp;gt;=0;i--){&lt;br /&gt;+			const int area=f_array[i]-&amp;gt;area;&lt;br /&gt;+			if(area&amp;lt;min || area&amp;gt;max){//ҎЛˏÌćÊā0ÌàminÅÍ¶­&lt;br /&gt;+				continue;&lt;br /&gt;+			}&lt;br /&gt;+			//&lt;br /&gt;+			const TRleInfo src_info=*f_array[i];&lt;br /&gt;+			RleLabelFragmentInfo&amp;amp; dest_info=*o_dest_array[active_labels];&lt;br /&gt;+			dest_info.area=area;&lt;br /&gt;+			dest_info.clip_b=src_info.clip_b;&lt;br /&gt;+			dest_info.clip_r=src_info.clip_r;&lt;br /&gt;+			dest_info.clip_t=src_info.clip_t;&lt;br /&gt;+			dest_info.clip_l=src_info.clip_l;&lt;br /&gt;+			dest_info.entry_x=src_info.entry_x;&lt;br /&gt;+			dest_info.pos_x=(double)(src_info.pos_x/src_info.area);&lt;br /&gt;+			dest_info.pos_y=(double)(src_info.pos_y/src_info.area);&lt;br /&gt;+			active_labels++;&lt;br /&gt;+		}&lt;br /&gt;+		//ÉĸËДð΄ѝӨ&lt;br /&gt;+		o_stack.pops(label_count-active_labels);&lt;br /&gt;+		//ÉĸËДð̰֔&lt;br /&gt;+		return active_labels;&lt;br /&gt;+	}	&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+}&lt;br /&gt;+&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARCameraDistortionFactor.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARCameraDistortionFactor.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARCameraDistortionFactor.cpp	(revision 335)&lt;br /&gt;@@ -1,28 +1,26 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;INyARCameraDistortionFactor.h&amp;quot;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARMat.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARMat.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARMat.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARMat.h&amp;quot;&lt;br /&gt; #include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt; #include &amp;lt;cstddef&amp;gt;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRgbRaster_BasicClass.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRgbRaster_BasicClass.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRgbRaster_BasicClass.cpp	(revision 335)&lt;br /&gt;@@ -2,29 +2,28 @@&lt;br /&gt; * PROJECT: NyARToolkitCPP&lt;br /&gt; * --------------------------------------------------------------------------------&lt;br /&gt; *&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt; *&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt; * &lt;br /&gt; * This program is distributed in the hope that it will be useful,&lt;br /&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt; * GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;+*&lt;br /&gt; * You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt; * &lt;br /&gt; * For further information please contact.&lt;br /&gt; *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt;+&lt;br /&gt; #include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt; #include &amp;quot;NyARRgbRaster_BasicClass.h&amp;quot;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotVector.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotVector.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotVector.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARRotVector.h&amp;quot;&lt;br /&gt; #include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt; #include &amp;lt;cmath&amp;gt;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARTransMat.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARTransMat.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARTransMat.cpp	(revision 335)&lt;br /&gt;@@ -1,41 +1,42 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARTransMat.h&amp;quot;&lt;br /&gt; #include &amp;quot;NyARRotTransOptimize_O2.h&amp;quot;&lt;br /&gt;-#include &amp;quot;NyARRotMatrix_ARToolKit.h&amp;quot;&lt;br /&gt;-#include &amp;quot;NyARRotMatrix_NyARToolKit.h&amp;quot;&lt;br /&gt;+#include &amp;quot;NyARTransportVectorSolver.h&amp;quot;&lt;br /&gt;+#include &amp;quot;NyARPartialDifferentiationOptimize.h&amp;quot;&lt;br /&gt; #include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt; #include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;+#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt;-#define AR_GET_TRANS_CONT_MAT_MAX_FIT_ERROR 1.0&lt;br /&gt;+#define FIT_DIFF_THRESHOLD 1.0&lt;br /&gt;+#define FIT_DIFF_THRESHOLD_CONT 1.0&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;+&lt;br /&gt; 	NyARTransMat::NyARTransMat()&lt;br /&gt; 	{&lt;br /&gt; 		this-&amp;gt;_center.x=0;&lt;br /&gt;@@ -48,19 +49,19 @@&lt;br /&gt; 	{&lt;br /&gt; 		this-&amp;gt;_center.x=0;&lt;br /&gt; 		this-&amp;gt;_center.y=0;&lt;br /&gt;-		const NyARCameraDistortionFactor&amp;amp; dist=i_param-&amp;gt;getDistortionFactor();&lt;br /&gt;-		const NyARPerspectiveProjectionMatrix&amp;amp; pmat=i_param-&amp;gt;getPerspectiveProjectionMatrix();&lt;br /&gt;-		this-&amp;gt;_calculator=new NyARFitVecCalculator(&amp;amp;pmat,&amp;amp;dist);&lt;br /&gt;-		this-&amp;gt;_mat_optimize=new NyARRotTransOptimize_O2(&amp;amp;pmat);&lt;br /&gt;+		const NyARCameraDistortionFactor* dist=&amp;amp;i_param-&amp;gt;getDistortionFactor();&lt;br /&gt;+		const NyARPerspectiveProjectionMatrix* pmat=&amp;amp;i_param-&amp;gt;getPerspectiveProjectionMatrix();&lt;br /&gt;+		this-&amp;gt;_transsolver=new NyARTransportVectorSolver(pmat,4);&lt;br /&gt; 		//͝ʷЫªФضÈΞÍNyARRotMatrix_ARToolKitðϧ¤±Æ&lt;br /&gt; 		//ם̼ÍNyARRotMatrix_NyARToolKitàNyARRotMatrix_ARToolKitàӯ¶¾¯Çϭµ¾¯Ӭª¸êé&lt;br /&gt;-		this-&amp;gt;_rotmatrix = new NyARRotMatrix_NyARToolKit(&amp;amp;pmat);&lt;br /&gt;-//		this-&amp;gt;_rotmatrix = new NyARRotMatrix_ARToolKit(pmat);&lt;br /&gt;-&lt;br /&gt;+		this-&amp;gt;_rotmatrix = new NyARRotMatrix(pmat);&lt;br /&gt;+		this-&amp;gt;_mat_optimize=new NyARPartialDifferentiationOptimize(pmat);&lt;br /&gt;+		this-&amp;gt;_ref_dist_factor=dist;&lt;br /&gt;+		this-&amp;gt;_projection_mat_ref=pmat;&lt;br /&gt; 	}&lt;br /&gt; 	NyARTransMat::~NyARTransMat()&lt;br /&gt; 	{&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;_calculator);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_transsolver);&lt;br /&gt; 		NyAR_SAFE_DELETE(this-&amp;gt;_rotmatrix);&lt;br /&gt; 		NyAR_SAFE_DELETE(this-&amp;gt;_mat_optimize);&lt;br /&gt; 		return;&lt;br /&gt;@@ -94,30 +95,32 @@&lt;br /&gt; 		const TNyARDoublePoint2d* sqvertex_ref[4];&lt;br /&gt; 		const TNyARLinear* linear_ref[4];&lt;br /&gt; 		TNyARDoublePoint3d trans;&lt;br /&gt;-&lt;br /&gt;+		&lt;br /&gt; 		//ͶϚذÉҸԟЮֱðω˺ɻ©χՔҲЮª&lt;br /&gt; 		initVertexOrder(i_square, i_direction, sqvertex_ref,linear_ref);&lt;br /&gt;+		&lt;br /&gt;+		TNyARDoublePoint2d vertex_2d[4];&lt;br /&gt;+		TNyARDoublePoint3d vertex_3d[4];&lt;br /&gt; &lt;br /&gt;-		//ˮπ̩͠ðѝӨ&lt;br /&gt;+		//սγɚӮ؊ͶϚ̀É2D΀֗ͮðĚĢħ&lt;br /&gt;+		this-&amp;gt;_ref_dist_factor-&amp;gt;ideal2ObservBatch(sqvertex_ref, vertex_2d,4);		&lt;br /&gt;+		this-&amp;gt;_transsolver-&amp;gt;set2dVertex(vertex_2d,4);&lt;br /&gt;+		&lt;br /&gt;+		//ˮπ̩͠Ì3D΀֗ͮðάЬ&lt;br /&gt; 		this-&amp;gt;_offset.setSquare(i_width,this-&amp;gt;_center);&lt;br /&gt; &lt;br /&gt;-		// rotationð̩͠Юֱ©çͶϚ&lt;br /&gt;+		//ʱԝγرðͶϚ&lt;br /&gt; 		this-&amp;gt;_rotmatrix-&amp;gt;initRotBySquare(linear_ref,sqvertex_ref);&lt;br /&gt;-&lt;br /&gt;-		//սγɚӮ؊ͶϚ̀ÉĉĴĚĢħҸԟðĚĢħ&lt;br /&gt;-		this-&amp;gt;_calculator-&amp;gt;setOffsetSquare(&amp;amp;this-&amp;gt;_offset);&lt;br /&gt;-&lt;br /&gt;-		//սγɚӮ؊ͶϚ̀ÉԋɞѦ̩͠ÌЮֱðĚĢħ&lt;br /&gt;-		this-&amp;gt;_calculator-&amp;gt;setFittedSquare(sqvertex_ref);	&lt;br /&gt;-&lt;br /&gt;-		//ʱԝγرÌսγɚӮ؊ÌͶϚ&lt;br /&gt;-		this-&amp;gt;_calculator-&amp;gt;calculateTransfer(*this-&amp;gt;_rotmatrix,trans);&lt;br /&gt;-&lt;br /&gt;-		//ͶϚ̋ʊÌ΅ԋɻ(this._rotmatrix,trans)&lt;br /&gt;-		this-&amp;gt;_mat_optimize-&amp;gt;optimize(*this-&amp;gt;_rotmatrix,trans,*this-&amp;gt;_calculator);&lt;br /&gt;-&lt;br /&gt;+		&lt;br /&gt;+		//ʱԝͣÌ3D΀֗ͮ©çսγɚӮ؊ðͶϚ&lt;br /&gt;+		this-&amp;gt;_rotmatrix-&amp;gt;getPoint3dBatch(this-&amp;gt;_offset.vertex,vertex_3d,4);&lt;br /&gt;+		this-&amp;gt;_transsolver-&amp;gt;solveTransportVector(vertex_3d,trans);&lt;br /&gt;+		&lt;br /&gt;+		//ͶϚ̋ʊÌ΅ԋɻ(սγɚӮ؊ÆʱԝγرÌ΅ԋɻ)&lt;br /&gt;+		this-&amp;gt;optimize(*this-&amp;gt;_rotmatrix, trans,*this-&amp;gt;_transsolver,this-&amp;gt;_offset.vertex, vertex_2d);&lt;br /&gt;+		&lt;br /&gt; 		// ĽħÊĎĘÌ֛Ѷ&lt;br /&gt;-		this-&amp;gt;updateMatrixValue(*this-&amp;gt;_rotmatrix,this-&amp;gt;_offset.point,trans,o_result);&lt;br /&gt;+		this-&amp;gt;updateMatrixValue(*this-&amp;gt;_rotmatrix, this-&amp;gt;_offset.point, trans,o_result);&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt; &lt;br /&gt;@@ -133,48 +136,124 @@&lt;br /&gt; 			this-&amp;gt;transMat(i_square, i_direction, i_width, io_result_conv);&lt;br /&gt; 			return;&lt;br /&gt; 		}&lt;br /&gt;+&lt;br /&gt; 		//ͶϚذÉҸԟЮֱðω˺ɻ©χՔҲЮª&lt;br /&gt; 		initVertexOrder(i_square, i_direction, sqvertex_ref,linear_ref);&lt;br /&gt; &lt;br /&gt;-&lt;br /&gt;-		//ˮπ̩͠ðѝӨ&lt;br /&gt;+		&lt;br /&gt;+		//սγɚӮ؊ͶϚ̀É2D΀֗ͮðĚĢħ&lt;br /&gt;+		TNyARDoublePoint2d vertex_2d[4];&lt;br /&gt;+		TNyARDoublePoint3d vertex_3d[4];&lt;br /&gt;+		this-&amp;gt;_ref_dist_factor-&amp;gt;ideal2ObservBatch(sqvertex_ref, vertex_2d,4);		&lt;br /&gt;+		this-&amp;gt;_transsolver-&amp;gt;set2dVertex(vertex_2d,4);&lt;br /&gt;+		&lt;br /&gt;+		//ˮπ̩͠Ì3D΀֗ͮðάЬ&lt;br /&gt; 		this-&amp;gt;_offset.setSquare(i_width,this-&amp;gt;_center);&lt;br /&gt; &lt;br /&gt;-		// rotationð̩͠ЮֱðɪÂҏÌ֏ʷγرÅω˺ɻ&lt;br /&gt;+		//ʱԝγرðͶϚ&lt;br /&gt; 		this-&amp;gt;_rotmatrix-&amp;gt;initRotByPrevResult(io_result_conv);&lt;br /&gt;+		&lt;br /&gt;+		//ʱԝͣÌ3D΀֗ͮ©çսγɚӮ؊ðͶϚ&lt;br /&gt;+		this-&amp;gt;_rotmatrix-&amp;gt;getPoint3dBatch(this-&amp;gt;_offset.vertex,vertex_3d,4);&lt;br /&gt;+		this-&amp;gt;_transsolver-&amp;gt;solveTransportVector(vertex_3d,trans);&lt;br /&gt; &lt;br /&gt;-		//սγɚӮ؊ͶϚ̀ÉĉĴĚĢħҸԟðĚĢħ&lt;br /&gt;-		this-&amp;gt;_calculator-&amp;gt;setOffsetSquare(&amp;amp;this-&amp;gt;_offset);&lt;br /&gt;-&lt;br /&gt;-		//սγɚӮ؊ͶϚ̀ÉԋɞѦ̩͠ÌЮֱðĚĢħ&lt;br /&gt;-		this-&amp;gt;_calculator-&amp;gt;setFittedSquare(sqvertex_ref);	&lt;br /&gt;-&lt;br /&gt;-		//ʱԝγرÌսγɚӮ؊ÌͶϚ&lt;br /&gt;-		this-&amp;gt;_calculator-&amp;gt;calculateTransfer(*this-&amp;gt;_rotmatrix,trans);&lt;br /&gt;-&lt;br /&gt;-		//ͶϚ̋ʊÌ΅ԋɻ(this._rotmatrix,trans)&lt;br /&gt;-		const double err=this-&amp;gt;_mat_optimize-&amp;gt;optimize(*this-&amp;gt;_rotmatrix,trans,*this-&amp;gt;_calculator);&lt;br /&gt;-&lt;br /&gt;-		//ͶϚ̋ʊð֛Ѷ&lt;br /&gt;-		this-&amp;gt;updateMatrixValue(*this-&amp;gt;_rotmatrix,this-&amp;gt;_offset.point, trans,io_result_conv);&lt;br /&gt;-&lt;br /&gt;-		// ćÉӬª˖إՍɍÅÈ¯êÎTransMatðâèҼµ&lt;br /&gt;-		if (err &amp;gt; AR_GET_TRANS_CONT_MAT_MAX_FIT_ERROR) {&lt;br /&gt;-			// rotationð̩͠ЮֱÅω˺ɻ&lt;br /&gt;+		//̻ΝÌćÉÌħðͶϚµÄ¨­&lt;br /&gt;+		double min_err=errRate(*this-&amp;gt;_rotmatrix,trans, this-&amp;gt;_offset.vertex, vertex_2d,4,vertex_3d);&lt;br /&gt;+		NyARDoubleMatrix33&amp;amp; rot=this-&amp;gt;__rot;&lt;br /&gt;+		//ćÉÌħª臒lҴ¦Ä½çāđăÓ&lt;br /&gt;+		if(min_err&amp;lt;FIT_DIFF_THRESHOLD_CONT){&lt;br /&gt;+			rot.setValue(*this-&amp;gt;_rotmatrix);&lt;br /&gt;+			//΅ԋɻµÄÝé&lt;br /&gt;+			for (int i = 0;i&amp;lt;5; i++) {&lt;br /&gt;+				//֏ʷγرÌ΅ԋɻ&lt;br /&gt;+				this-&amp;gt;_mat_optimize-&amp;gt;modifyMatrix(rot, trans, this-&amp;gt;_offset.vertex, vertex_2d, 4);&lt;br /&gt;+				double err=errRate(rot,trans,this-&amp;gt;_offset.vertex, vertex_2d,4,vertex_3d);&lt;br /&gt;+				//System.out.println(&amp;quot;E:&amp;quot;+err);&lt;br /&gt;+				if(min_err-err&amp;lt;FIT_DIFF_THRESHOLD){&lt;br /&gt;+					//System.out.println(&amp;quot;BREAK&amp;quot;);&lt;br /&gt;+					break;&lt;br /&gt;+				}&lt;br /&gt;+				this-&amp;gt;_transsolver-&amp;gt;solveTransportVector(vertex_3d, trans);&lt;br /&gt;+				this-&amp;gt;_rotmatrix-&amp;gt;setValue(rot);&lt;br /&gt;+				min_err=err;&lt;br /&gt;+			}&lt;br /&gt;+			this-&amp;gt;updateMatrixValue(*this-&amp;gt;_rotmatrix, this-&amp;gt;_offset.point, trans,io_result_conv);&lt;br /&gt;+		}else{&lt;br /&gt;+			//ʱԝγرðͶϚ&lt;br /&gt; 			this-&amp;gt;_rotmatrix-&amp;gt;initRotBySquare(linear_ref,sqvertex_ref);&lt;br /&gt;-			//ʱԝγرÌսγɚӮ؊ÌͶϚ&lt;br /&gt;-			this-&amp;gt;_calculator-&amp;gt;calculateTransfer(*this-&amp;gt;_rotmatrix,trans);&lt;br /&gt;-			//ͶϚ̋ʊÌ΅ԋɻ(this._rotmatrix,trans)&lt;br /&gt;-			const double err2=this-&amp;gt;_mat_optimize-&amp;gt;optimize(*this-&amp;gt;_rotmatrix,trans,*this-&amp;gt;_calculator);&lt;br /&gt;-			//ćÉӬªӡ©Á½çӬðͷʷ¦&lt;br /&gt;-			if (err2 &amp;lt; err) {&lt;br /&gt;-				// ؇¢ӬªϦê½çͷʷ¦&lt;br /&gt;-				this-&amp;gt;updateMatrixValue(*this-&amp;gt;_rotmatrix,this-&amp;gt;_offset.point, trans,io_result_conv);&lt;br /&gt;-			}&lt;br /&gt;+			&lt;br /&gt;+			//ʱԝͣÌ3D΀֗ͮ©çսγɚӮ؊ðͶϚ&lt;br /&gt;+			this-&amp;gt;_rotmatrix-&amp;gt;getPoint3dBatch(this-&amp;gt;_offset.vertex,vertex_3d,4);&lt;br /&gt;+			this-&amp;gt;_transsolver-&amp;gt;solveTransportVector(vertex_3d,trans);&lt;br /&gt;+			&lt;br /&gt;+			//ͶϚ̋ʊÌ΅ԋɻ(սγɚӮ؊ÆʱԝγرÌ΅ԋɻ)&lt;br /&gt;+			this-&amp;gt;optimize(*this-&amp;gt;_rotmatrix, trans,*this-&amp;gt;_transsolver,this-&amp;gt;_offset.vertex, vertex_2d);&lt;br /&gt;+			this-&amp;gt;updateMatrixValue(*this-&amp;gt;_rotmatrix, this-&amp;gt;_offset.point, trans,io_result_conv);&lt;br /&gt; 		}&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt;+	double NyARTransMat::optimize(NyARRotMatrix&amp;amp; io_rotmat,TNyARDoublePoint3d&amp;amp; io_transvec,const INyARTransportVectorSolver&amp;amp; i_solver,TNyARDoublePoint3d i_offset_3d[],TNyARDoublePoint2d i_2d_vertex[])&lt;br /&gt;+	{&lt;br /&gt;+		//System.out.println(&amp;quot;START&amp;quot;);&lt;br /&gt;+		//printf(&amp;quot;[ST]\n&amp;quot;);&lt;br /&gt;+		TNyARDoublePoint3d vertex_3d[4];&lt;br /&gt;+		//ω˺ÌćÉӬðͶϚ&lt;br /&gt;+		double min_err=errRate(io_rotmat, io_transvec, i_offset_3d, i_2d_vertex,4,vertex_3d);&lt;br /&gt;+		NyARDoubleMatrix33&amp;amp; rot=this-&amp;gt;__rot;&lt;br /&gt;+		rot.setValue(io_rotmat);&lt;br /&gt;+		for (int i = 0;i&amp;lt;5; i++) {&lt;br /&gt;+			//֏ʷγرÌ΅ԋɻ&lt;br /&gt;+			this-&amp;gt;_mat_optimize-&amp;gt;modifyMatrix(rot, io_transvec, i_offset_3d, i_2d_vertex, 4);&lt;br /&gt;+			double err=errRate(rot,io_transvec, i_offset_3d, i_2d_vertex,4,vertex_3d);&lt;br /&gt;+			//System.out.println(&amp;quot;E:&amp;quot;+err);&lt;br /&gt;+			//printf(&amp;quot;[E:]%f\n&amp;quot;,err);&lt;br /&gt;+			if(min_err-err&amp;lt;FIT_DIFF_THRESHOLD){&lt;br /&gt;+				//printf(&amp;quot;[BK]\n&amp;quot;);&lt;br /&gt;+				//System.out.println(&amp;quot;BREAK&amp;quot;);&lt;br /&gt;+				break;&lt;br /&gt;+			}&lt;br /&gt;+			i_solver.solveTransportVector(vertex_3d, io_transvec);&lt;br /&gt;+			io_rotmat.setValue(rot);&lt;br /&gt;+			min_err=err;&lt;br /&gt;+		}&lt;br /&gt;+		//System.out.println(&amp;quot;END&amp;quot;);&lt;br /&gt;+		//printf(&amp;quot;[ED]\n&amp;quot;);&lt;br /&gt;+		return min_err;&lt;br /&gt;+	}&lt;br /&gt;+	&lt;br /&gt;+	//ćÉÌħͶϚ̀&lt;br /&gt;+	double NyARTransMat::errRate(const NyARDoubleMatrix33&amp;amp; io_rot,const TNyARDoublePoint3d&amp;amp; i_trans, TNyARDoublePoint3d i_vertex3d[], TNyARDoublePoint2d i_vertex2d[],int i_number_of_vertex,TNyARDoublePoint3d o_rot_vertex[])&lt;br /&gt;+	{&lt;br /&gt;+		const NyARPerspectiveProjectionMatrix&amp;amp; cp = *this-&amp;gt;_projection_mat_ref;&lt;br /&gt;+		double cp00=cp.m00;&lt;br /&gt;+		double cp01=cp.m01;&lt;br /&gt;+		double cp02=cp.m02;&lt;br /&gt;+		double cp11=cp.m11;&lt;br /&gt;+		double cp12=cp.m12;&lt;br /&gt; &lt;br /&gt;+		double err=0;&lt;br /&gt;+		for(int i=0;i&amp;lt;i_number_of_vertex;i++){&lt;br /&gt;+			double x3d,y3d,z3d;&lt;br /&gt;+			o_rot_vertex[i].x=x3d=io_rot.m00*i_vertex3d[i].x+io_rot.m01*i_vertex3d[i].y+io_rot.m02*i_vertex3d[i].z;&lt;br /&gt;+			o_rot_vertex[i].y=y3d=io_rot.m10*i_vertex3d[i].x+io_rot.m11*i_vertex3d[i].y+io_rot.m12*i_vertex3d[i].z;&lt;br /&gt;+			o_rot_vertex[i].z=z3d=io_rot.m20*i_vertex3d[i].x+io_rot.m21*i_vertex3d[i].y+io_rot.m22*i_vertex3d[i].z;&lt;br /&gt;+			x3d+=i_trans.x;&lt;br /&gt;+			y3d+=i_trans.y;&lt;br /&gt;+			z3d+=i_trans.z;&lt;br /&gt;+			&lt;br /&gt;+			//ϋʥ֏ʷ&lt;br /&gt;+			double x2d=x3d*cp00+y3d*cp01+z3d*cp02;&lt;br /&gt;+			double y2d=y3d*cp11+z3d*cp12;&lt;br /&gt;+			double h2d=z3d;&lt;br /&gt;+			&lt;br /&gt;+			//ćÉÌħͶϚ&lt;br /&gt;+			double t1=i_vertex2d[i].x-x2d/h2d;&lt;br /&gt;+			double t2=i_vertex2d[i].y-y2d/h2d;&lt;br /&gt;+			err+=t1*t1+t2*t2;&lt;br /&gt;+			&lt;br /&gt;+		}&lt;br /&gt;+		return err/i_number_of_vertex;&lt;br /&gt;+	}&lt;br /&gt; 	void NyARTransMat::updateMatrixValue(const NyARRotMatrix&amp;amp; i_rot,const TNyARDoublePoint3d&amp;amp; i_off, const TNyARDoublePoint3d&amp;amp; i_trans,NyARTransMatResult&amp;amp; o_result)&lt;br /&gt; 	{&lt;br /&gt; 		o_result.m00=i_rot.m00;&lt;br /&gt;@@ -191,7 +270,6 @@&lt;br /&gt; 		o_result.m21 = i_rot.m21;&lt;br /&gt; 		o_result.m22 = i_rot.m22;&lt;br /&gt; 		o_result.m23 = i_rot.m20 * i_off.x + i_rot.m21 * i_off.y + i_rot.m22 * i_off.z + i_trans.z;&lt;br /&gt;-		o_result.angle.setValue(i_rot.refAngle());&lt;br /&gt; 		o_result.has_value = true;&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotMatrix.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotMatrix.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotMatrix.cpp	(revision 335)&lt;br /&gt;@@ -1,29 +1,121 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARRotMatrix.h&amp;quot;&lt;br /&gt;+#include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt;+namespace NyARToolkitCPP&lt;br /&gt;+{&lt;br /&gt;+	NyARRotMatrix::NyARRotMatrix(const NyARPerspectiveProjectionMatrix* i_matrix)&lt;br /&gt;+	{&lt;br /&gt;+		this-&amp;gt;__initRot_vec1=new NyARRotVector(i_matrix);&lt;br /&gt;+		this-&amp;gt;__initRot_vec2=new NyARRotVector(i_matrix);&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	NyARRotMatrix::~NyARRotMatrix()&lt;br /&gt;+	{&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;__initRot_vec1);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;__initRot_vec2);&lt;br /&gt;+	}&lt;br /&gt;+	void NyARRotMatrix::initRotByPrevResult(const NyARTransMatResult&amp;amp; i_prev_result)&lt;br /&gt;+	{&lt;br /&gt;+		this-&amp;gt;m00=i_prev_result.m00;&lt;br /&gt;+		this-&amp;gt;m01=i_prev_result.m01;&lt;br /&gt;+		this-&amp;gt;m02=i_prev_result.m02;&lt;br /&gt; &lt;br /&gt;+		this-&amp;gt;m10=i_prev_result.m10;&lt;br /&gt;+		this-&amp;gt;m11=i_prev_result.m11;&lt;br /&gt;+		this-&amp;gt;m12=i_prev_result.m12;&lt;br /&gt;+&lt;br /&gt;+		this-&amp;gt;m20=i_prev_result.m20;&lt;br /&gt;+		this-&amp;gt;m21=i_prev_result.m21;&lt;br /&gt;+		this-&amp;gt;m22=i_prev_result.m22;&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	void NyARRotMatrix::initRotBySquare(const TNyARLinear* i_linear[],const TNyARDoublePoint2d* i_sqvertex[])&lt;br /&gt;+	{&lt;br /&gt;+		NyARRotVector&amp;amp; vec1=*this-&amp;gt;__initRot_vec1;&lt;br /&gt;+		NyARRotVector&amp;amp; vec2=*this-&amp;gt;__initRot_vec2;&lt;br /&gt;+&lt;br /&gt;+		//ͼ©¢͇Á½֓©çÑ׻ÌĸĎħËðͶϚ&lt;br /&gt;+&lt;br /&gt;+		//βÐ&lt;br /&gt;+		vec1.exteriorProductFromLinear(*i_linear[0], *i_linear[2]);&lt;br /&gt;+		vec1.checkVectorByVertex(*i_sqvertex[0], *i_sqvertex[1]);&lt;br /&gt;+&lt;br /&gt;+		//βÑ&lt;br /&gt;+		vec2.exteriorProductFromLinear(*i_linear[1], *i_linear[3]);&lt;br /&gt;+		vec2.checkVectorByVertex(*i_sqvertex[3], *i_sqvertex[0]);&lt;br /&gt;+&lt;br /&gt;+		//ʱԝÌ΅ԋɻ&lt;br /&gt;+		NyARRotVector::checkRotation(vec1,vec2);&lt;br /&gt;+&lt;br /&gt;+		this-&amp;gt;m00 =vec1.v1;&lt;br /&gt;+		this-&amp;gt;m10 =vec1.v2;&lt;br /&gt;+		this-&amp;gt;m20 =vec1.v3;&lt;br /&gt;+		this-&amp;gt;m01 =vec2.v1;&lt;br /&gt;+		this-&amp;gt;m11 =vec2.v2;&lt;br /&gt;+		this-&amp;gt;m21 =vec2.v3;&lt;br /&gt;+&lt;br /&gt;+		//΅ͣÌβðͶϚ&lt;br /&gt;+		double w02 = vec1.v2 * vec2.v3 - vec1.v3 * vec2.v2;&lt;br /&gt;+		double w12 = vec1.v3 * vec2.v1 - vec1.v1 * vec2.v3;&lt;br /&gt;+		double w22 = vec1.v1 * vec2.v2 - vec1.v2 * vec2.v1;&lt;br /&gt;+		double w = sqrt(w02 * w02 + w12 * w12 + w22 * w22);&lt;br /&gt;+		this-&amp;gt;m02 = w02/w;&lt;br /&gt;+		this-&amp;gt;m12 = w12/w;&lt;br /&gt;+		this-&amp;gt;m22 = w22/w;&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	void NyARRotMatrix::getPoint3d(const TNyARDoublePoint3d&amp;amp; i_in_point,TNyARDoublePoint3d&amp;amp; i_out_point)const&lt;br /&gt;+	{&lt;br /&gt;+		double x=i_in_point.x;&lt;br /&gt;+		double y=i_in_point.y;&lt;br /&gt;+		double z=i_in_point.z;&lt;br /&gt;+		i_out_point.x=this-&amp;gt;m00 * x + this-&amp;gt;m01 * y + this-&amp;gt;m02 * z;&lt;br /&gt;+		i_out_point.y=this-&amp;gt;m10 * x + this-&amp;gt;m11 * y + this-&amp;gt;m12 * z;&lt;br /&gt;+		i_out_point.z=this-&amp;gt;m20 * x + this-&amp;gt;m21 * y + this-&amp;gt;m22 * z;&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	/**&lt;br /&gt;+	* աДÌҸԟðɪʇµÄ֏ʷ·é&lt;br /&gt;+	* @param i_in_point&lt;br /&gt;+	* @param i_out_point&lt;br /&gt;+	* @param i_number_of_vertex&lt;br /&gt;+	*/&lt;br /&gt;+	void NyARRotMatrix::getPoint3dBatch(const TNyARDoublePoint3d i_in_point[],TNyARDoublePoint3d i_out_point[],int i_number_of_vertex)const&lt;br /&gt;+	{&lt;br /&gt;+		for(int i=i_number_of_vertex-1;i&amp;gt;=0;i--){&lt;br /&gt;+			TNyARDoublePoint3d&amp;amp; out_ptr=i_out_point[i];&lt;br /&gt;+			const TNyARDoublePoint3d&amp;amp; in_ptr=i_in_point[i];&lt;br /&gt;+			double x=in_ptr.x;&lt;br /&gt;+			double y=in_ptr.y;&lt;br /&gt;+			double z=in_ptr.z;&lt;br /&gt;+			out_ptr.x=this-&amp;gt;m00 * x + this-&amp;gt;m01 * y + this-&amp;gt;m02 * z;&lt;br /&gt;+			out_ptr.y=this-&amp;gt;m10 * x + this-&amp;gt;m11 * y + this-&amp;gt;m12 * z;&lt;br /&gt;+			out_ptr.z=this-&amp;gt;m20 * x + this-&amp;gt;m21 * y + this-&amp;gt;m22 * z;&lt;br /&gt;+		}&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+}&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARLabelInfo.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARLabelInfo.cpp	(revision 0)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARLabelInfo.cpp	(revision 335)&lt;br /&gt;@@ -0,0 +1,29 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+#include &amp;quot;NyARLabelInfo.h&amp;quot;&lt;br /&gt;+namespace NyARToolkitCPP&lt;br /&gt;+{&lt;br /&gt;+}&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSquareDetector_Rle.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSquareDetector_Rle.cpp	(revision 0)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARSquareDetector_Rle.cpp	(revision 335)&lt;br /&gt;@@ -0,0 +1,143 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+#include &amp;quot;NyARSquareDetector_Rle.h&amp;quot;&lt;br /&gt;+#include &amp;quot;NyARLabelingImage.h&amp;quot;&lt;br /&gt;+&lt;br /&gt;+#include &amp;quot;INyARPca2d.h&amp;quot;&lt;br /&gt;+#include &amp;quot;NyARLabelingLabelStack.h&amp;quot;&lt;br /&gt;+#include &amp;quot;../utils/NyArray.h&amp;quot;&lt;br /&gt;+#include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt;+#include &amp;lt;cstring&amp;gt;&lt;br /&gt;+#include &amp;lt;cstdio&amp;gt;&lt;br /&gt;+namespace NyARToolkitCPP&lt;br /&gt;+{&lt;br /&gt;+&lt;br /&gt;+#define VERTEX_FACTOR 1.0// Ѽ̟ЯÌĴĀĎĞ&lt;br /&gt;+#define AR_AREA_MAX 100000// #define AR_AREA_MAX 100000&lt;br /&gt;+#define AR_AREA_MIN 70// #define AR_AREA_MIN 70&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+	NyARSquareDetector_Rle::NyARSquareDetector_Rle(const NyARCameraDistortionFactor&amp;amp; i_dist_factor_ref,const TNyARIntSize&amp;amp; i_size)&lt;br /&gt;+	{&lt;br /&gt;+		this-&amp;gt;_width = i_size.w;&lt;br /&gt;+		this-&amp;gt;_height = i_size.h;&lt;br /&gt;+		this-&amp;gt;_labeling = new NyARLabeling_Rle(this-&amp;gt;_width,this-&amp;gt;_height);&lt;br /&gt;+		this-&amp;gt;_labeling-&amp;gt;setAreaRange(AR_AREA_MAX, AR_AREA_MIN);&lt;br /&gt;+		this-&amp;gt;_sqconvertor=new SquareContourDetector(i_size,i_dist_factor_ref);&lt;br /&gt;+		this-&amp;gt;_stack=new RleLabelFragmentInfoStack(i_size.w*i_size.h*2048/(320*240)+32);//̟Яʂ՜È΅ҥÉĸËД&lt;br /&gt;+		this-&amp;gt;_overlap_checker = new LabelOverlapChecker&amp;lt;RleLabelFragmentInfo&amp;gt;(32);&lt;br /&gt;+&lt;br /&gt;+		// ؖ˳Ì΅ҥҷÍʦ׊Éʦè¤é΅ҥÌҷֻ͠Ĕăę&lt;br /&gt;+		int number_of_coord = (this-&amp;gt;_width + this-&amp;gt;_height) * 2;&lt;br /&gt;+		// ؖ˳įĢĴĀÍҸԟ֏ʷð·éÌÅؖ˳įĢĴĀÌÑջϦé&lt;br /&gt;+		this-&amp;gt;_max_coord = number_of_coord;&lt;br /&gt;+		this-&amp;gt;_xcoord = new int[number_of_coord * 2];&lt;br /&gt;+		this-&amp;gt;_ycoord = new int[number_of_coord * 2];&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	NyARSquareDetector_Rle::~NyARSquareDetector_Rle()&lt;br /&gt;+	{&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_overlap_checker);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_labeling);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_sqconvertor);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_stack);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_xcoord);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_ycoord);&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	void NyARSquareDetector_Rle::detectMarker(const NyARBinRaster&amp;amp; i_raster, NyARSquareStack&amp;amp; o_square_stack)&lt;br /&gt;+	{&lt;br /&gt;+		RleLabelFragmentInfoStack&amp;amp; flagment=*this-&amp;gt;_stack;&lt;br /&gt;+		LabelOverlapChecker&amp;lt;RleLabelFragmentInfo&amp;gt;* overlap = this-&amp;gt;_overlap_checker;&lt;br /&gt;+&lt;br /&gt;+		// ĽĊĺËğðÊĚĢħ&lt;br /&gt;+		o_square_stack.clear();&lt;br /&gt;+&lt;br /&gt;+		// ÉĸËДª0Èç±±ÜÅ&lt;br /&gt;+		const int label_num=this-&amp;gt;_labeling-&amp;gt;labeling(i_raster, 0, i_raster.getHeight(), flagment);&lt;br /&gt;+		if (label_num &amp;lt; 1) {&lt;br /&gt;+			return;&lt;br /&gt;+		}&lt;br /&gt;+		//ÉĸËðĜħµÄ¨­&lt;br /&gt;+		flagment.sortByArea();&lt;br /&gt;+		//ÉĸËÊĘħðϦӾ&lt;br /&gt;+		RleLabelFragmentInfo** labels=flagment.getArray().item;&lt;br /&gt;+&lt;br /&gt;+		const int xsize = this-&amp;gt;_width;&lt;br /&gt;+		const int ysize = this-&amp;gt;_height;&lt;br /&gt;+		int* xcoord = this-&amp;gt;_xcoord;&lt;br /&gt;+		int* ycoord = this-&amp;gt;_ycoord;&lt;br /&gt;+		const int coord_max = this-&amp;gt;_max_coord;&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+		//ФÈèĠĆĢĊÌ΅ҥДðѝӨ&lt;br /&gt;+		overlap-&amp;gt;setMaxLabels(label_num);&lt;br /&gt;+&lt;br /&gt;+		for (int i=0; i &amp;lt; label_num; i++) {&lt;br /&gt;+			const RleLabelFragmentInfo&amp;amp; label_pt=*labels[i];&lt;br /&gt;+			const int label_area = label_pt.area;&lt;br /&gt;+		&lt;br /&gt;+			// ĎÊĢĶ،ɦªʦ׊Ì٧ÉњµÄ¢êÎϜˏ&lt;br /&gt;+			if (label_pt.clip_l == 0 || label_pt.clip_r == xsize-1){&lt;br /&gt;+				continue;&lt;br /&gt;+			}&lt;br /&gt;+			if (label_pt.clip_t == 0 || label_pt.clip_b == ysize-1){&lt;br /&gt;+				continue;&lt;br /&gt;+			}&lt;br /&gt;+			// ˹É̟Я³ê½̩͠ÆÌФÈèð˭Ն&lt;br /&gt;+			if (!overlap-&amp;gt;check(label_pt)) {&lt;br /&gt;+				// ФÈÁÄ¢éæ¤¾&lt;br /&gt;+				continue;&lt;br /&gt;+			}&lt;br /&gt;+			&lt;br /&gt;+			// ؖ˳ðϦӾ&lt;br /&gt;+			const int coord_num = _cpickup-&amp;gt;getContour(i_raster,label_pt.entry_x,label_pt.clip_t, coord_max, xcoord, ycoord);&lt;br /&gt;+			if (coord_num == coord_max) {&lt;br /&gt;+				// ؖ˳ªҥ«·¬é&lt;br /&gt;+				continue;&lt;br /&gt;+			}&lt;br /&gt;+			//ؖ˳ժэذÉг̋ɻ·é&lt;br /&gt;+			const int vertex1 = SquareContourDetector::normalizeCoord(xcoord, ycoord, coord_num);&lt;br /&gt;+&lt;br /&gt;+			//±±©çѦªؖ˳ժэ&lt;br /&gt;+			NyARSquare* square_ptr = o_square_stack.prePush();&lt;br /&gt;+			if(!this-&amp;gt;_sqconvertor-&amp;gt;coordToSquare(xcoord,ycoord,vertex1,coord_num,label_area,*square_ptr)){&lt;br /&gt;+				o_square_stack.pop();// ҸԟÌϦӾªЯ׈È©Á½ÌÅժ˼&lt;br /&gt;+				continue;				&lt;br /&gt;+			}&lt;br /&gt;+			// ̟ЯΏÌ̩͠ÌѮµ½ÉĸËðФÈèĠĆĢĎÉӇʁ·é&lt;br /&gt;+			overlap-&amp;gt;push(&amp;amp;label_pt);&lt;br /&gt;+		}&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+}&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotTransOptimize_O2.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotTransOptimize_O2.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotTransOptimize_O2.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARRotTransOptimize_O2.h&amp;quot;&lt;br /&gt; #include &amp;lt;cmath&amp;gt;&lt;br /&gt; #define AR_GET_TRANS_MAT_MAX_LOOP_COUNT 5&lt;br /&gt;@@ -38,28 +36,8 @@&lt;br /&gt; 		this-&amp;gt;_projection_mat_ref=i_projection_mat_ref;&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt;-	double NyARRotTransOptimize_O2::optimize(NyARRotMatrix&amp;amp; io_rotmat,TNyARDoublePoint3d&amp;amp; io_transvec,const NyARFitVecCalculator&amp;amp; i_calculator)const&lt;br /&gt;+	double NyARRotTransOptimize_O2::modifyMatrix(NyARRotMatrix_ARToolKit&amp;amp; io_rot,TNyARDoublePoint3d&amp;amp; trans,const TNyARDoublePoint3d i_vertex3d[], const TNyARDoublePoint2d i_vertex2d[])const&lt;br /&gt; 	{&lt;br /&gt;-		const TNyARDoublePoint2d* fit_vertex=i_calculator.getFitSquare();&lt;br /&gt;-		const TNyARDoublePoint3d* offset_square=i_calculator.getOffsetVertex()-&amp;gt;vertex;&lt;br /&gt;-&lt;br /&gt;-		double err = -1;&lt;br /&gt;-		/*ËĶðԲ¯éĞăľÓďðARToolKitÆ͇í¹é½ßÉ֏È±ÆµÄÜ·*/&lt;br /&gt;-		for (int i = 0;; i++) {&lt;br /&gt;-			// &amp;lt;arGetTransMat3&amp;gt;&lt;br /&gt;-			err = modifyMatrix(io_rotmat,io_transvec,offset_square,fit_vertex);&lt;br /&gt;-			i_calculator.calculateTransfer(io_rotmat, io_transvec);&lt;br /&gt;-			err = modifyMatrix(io_rotmat,io_transvec,offset_square,fit_vertex);			&lt;br /&gt;-			// //&amp;lt;/arGetTransMat3&amp;gt;&lt;br /&gt;-			if (err &amp;lt; AR_GET_TRANS_MAT_MAX_FIT_ERROR || i == AR_GET_TRANS_MAT_MAX_LOOP_COUNT-1) {&lt;br /&gt;-				break;&lt;br /&gt;-			}&lt;br /&gt;-			i_calculator.calculateTransfer(io_rotmat, io_transvec);&lt;br /&gt;-		}		&lt;br /&gt;-		return err;&lt;br /&gt;-	}&lt;br /&gt;-	double NyARRotTransOptimize_O2::modifyMatrix(NyARRotMatrix&amp;amp; io_rot,TNyARDoublePoint3d&amp;amp; trans,const TNyARDoublePoint3d i_vertex3d[], const TNyARDoublePoint2d i_vertex2d[])const&lt;br /&gt;-	{&lt;br /&gt; 		double factor;&lt;br /&gt; 		double a2, b2, c2;&lt;br /&gt; 		double h, x, y;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARIntRectStack.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARIntRectStack.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARIntRectStack.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARIntRectStack.h&amp;quot;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDoubleMatrixProcessor.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDoubleMatrixProcessor.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDoubleMatrixProcessor.cpp	(revision 335)&lt;br /&gt;@@ -1,32 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt; &lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDoubleMatrix22.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDoubleMatrix22.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDoubleMatrix22.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARDoubleMatrix22.h&amp;quot;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt;@@ -44,4 +42,22 @@&lt;br /&gt; 		o_value[4]=this-&amp;gt;m11;&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt;+	bool NyARDoubleMatrix22::inverse(const NyARDoubleMatrix22&amp;amp; i_src)&lt;br /&gt;+	{&lt;br /&gt;+		double a11,a12,a21,a22;&lt;br /&gt;+		a11=i_src.m00;&lt;br /&gt;+		a12=i_src.m01;&lt;br /&gt;+		a21=i_src.m10;&lt;br /&gt;+		a22=i_src.m11;&lt;br /&gt;+		double det=a11*a22-a12*a21;&lt;br /&gt;+		if(det==0){&lt;br /&gt;+			return false;&lt;br /&gt;+		}&lt;br /&gt;+		det=1/det;&lt;br /&gt;+		this-&amp;gt;m00=a22*det;&lt;br /&gt;+		this-&amp;gt;m01=-a12*det;&lt;br /&gt;+		this-&amp;gt;m10=a21*det;&lt;br /&gt;+		this-&amp;gt;m11=-a11*det;&lt;br /&gt;+		return true;&lt;br /&gt;+	}&lt;br /&gt; }&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARRgbRaster.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARRgbRaster.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARRgbRaster.cpp	(revision 335)&lt;br /&gt;@@ -1,2 +1,27 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt; #include &amp;quot;INyARRgbRaster.h&amp;quot;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARBufferReader.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARBufferReader.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARBufferReader.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;INyARBufferReader.h&amp;quot;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARRasterFilter_RgbToBin.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARRasterFilter_RgbToBin.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARRasterFilter_RgbToBin.cpp	(revision 335)&lt;br /&gt;@@ -1,3 +1,28 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;INyARRasterFilter_RgbToBin.h&amp;quot;&lt;br /&gt; &lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRgbPixelReader_INT1D_GRAY_8.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRgbPixelReader_INT1D_GRAY_8.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRgbPixelReader_INT1D_GRAY_8.cpp	(revision 335)&lt;br /&gt;@@ -2,31 +2,30 @@&lt;br /&gt; * PROJECT: NyARToolkitCPP&lt;br /&gt; * --------------------------------------------------------------------------------&lt;br /&gt; *&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt; *&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt; * &lt;br /&gt; * This program is distributed in the hope that it will be useful,&lt;br /&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt; * GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;+*&lt;br /&gt; * You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt; * &lt;br /&gt; * For further information please contact.&lt;br /&gt; *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt; &lt;br /&gt; #include &amp;quot;NyARRgbPixelReader_INT1D_GRAY_8.h&amp;quot;&lt;br /&gt;+#include &amp;quot;NyARException.h&amp;quot;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt; &lt;br /&gt;@@ -52,6 +51,13 @@&lt;br /&gt; 		}&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt;+	void NyARRgbPixelReader_INT1D_GRAY_8::setPixel(int i_x, int i_y, const int* i_rgb)&lt;br /&gt;+	{&lt;br /&gt;+		NyARException::notImplement();&lt;br /&gt;+	}&lt;br /&gt;+	void NyARRgbPixelReader_INT1D_GRAY_8::setPixels(const int* i_x, const int* i_y, int i_num, const int* i_intrgb)&lt;br /&gt;+	{&lt;br /&gt;+		NyARException::notImplement();&lt;br /&gt;+	}&lt;br /&gt; &lt;br /&gt;-&lt;br /&gt; }&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARColorPatt_O3.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARColorPatt_O3.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARColorPatt_O3.cpp	(revision 335)&lt;br /&gt;@@ -1,3 +1,28 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARColorPatt_O3.h&amp;quot;&lt;br /&gt; #include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt; #include &amp;lt;cstring&amp;gt;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDetectMarker.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDetectMarker.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDetectMarker.cpp	(revision 335)&lt;br /&gt;@@ -2,34 +2,31 @@&lt;br /&gt; * PROJECT: NyARToolkitCPP&lt;br /&gt; * --------------------------------------------------------------------------------&lt;br /&gt; *&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt; *&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt; * &lt;br /&gt; * This program is distributed in the hope that it will be useful,&lt;br /&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt; * GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;+*&lt;br /&gt; * You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt; * &lt;br /&gt; * For further information please contact.&lt;br /&gt; *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt; #include &amp;quot;NyARDetectMarker.h&amp;quot;&lt;br /&gt;+#include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt;-	NyARDetectMarker::NyARDetectMarker(void)&lt;br /&gt;-	{&lt;br /&gt;-	}&lt;br /&gt; &lt;br /&gt;-}&lt;br /&gt;\ No newline at end of file&lt;br /&gt;+&lt;br /&gt;+}&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARCode.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARCode.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARCode.cpp	(revision 335)&lt;br /&gt;@@ -2,27 +2,25 @@&lt;br /&gt; * PROJECT: NyARToolkitCPP&lt;br /&gt; * --------------------------------------------------------------------------------&lt;br /&gt; *&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt; *&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt; * &lt;br /&gt; * This program is distributed in the hope that it will be useful,&lt;br /&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt; * GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;+*&lt;br /&gt; * You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt; * &lt;br /&gt; * For further information please contact.&lt;br /&gt; *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt; #include &amp;lt;cstdio&amp;gt;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/ContourPickup.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/ContourPickup.cpp	(revision 0)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/ContourPickup.cpp	(revision 335)&lt;br /&gt;@@ -0,0 +1,251 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+#include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt;+#include &amp;quot;ContourPickup.h&amp;quot;&lt;br /&gt;+#include &amp;quot;NyARVertexCounter.h&amp;quot;&lt;br /&gt;+#include &amp;quot;NyAR_types.h&amp;quot;&lt;br /&gt;+#include &amp;quot;INyARPca2d.h&amp;quot;&lt;br /&gt;+#include &amp;quot;NyARLabelingImage.h&amp;quot;&lt;br /&gt;+#include &amp;quot;NyARBinRaster.h&amp;quot;&lt;br /&gt;+&lt;br /&gt;+namespace NyARToolkitCPP&lt;br /&gt;+{&lt;br /&gt;+	//τʱϑІÅ«éæ¤ÉĥĵËðԱФɻ&lt;br /&gt;+	//                                           0  1  2  3  4  5  6  7   0  1  2  3  4  5  6&lt;br /&gt;+	const static int _getContour_xdir[15] = { 0, 1, 1, 1, 0,-1,-1,-1 , 0, 1, 1, 1, 0,-1,-1};&lt;br /&gt;+	const static int _getContour_ydir[15] = {-1,-1, 0, 1, 1, 1, 0,-1 ,-1,-1, 0, 1, 1, 1, 0};&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+	int ContourPickup::getContour(const NyARBinRaster&amp;amp; i_raster,int i_entry_x,int i_entry_y,int i_array_size,int* o_coord_x,int* o_coord_y)&lt;br /&gt;+	{&lt;br /&gt;+		const int* xdir = _getContour_xdir;// static int xdir[8] = { 0, 1, 1, 1, 0,-1,-1,-1};&lt;br /&gt;+		const int* ydir = _getContour_ydir;// static int ydir[8] = {-1,-1, 0, 1, 1, 1, 0,-1};&lt;br /&gt;+&lt;br /&gt;+		int* i_buf=(int*)i_raster.getBufferReader().getBuffer();&lt;br /&gt;+		int width=i_raster.getWidth();&lt;br /&gt;+		int height=i_raster.getHeight();&lt;br /&gt;+		//ĎÊĢĶ،ɦÌУӛÉњµÄ¢éļăÓħðӾé&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+		int coord_num = 1;&lt;br /&gt;+		o_coord_x[0] = i_entry_x;&lt;br /&gt;+		o_coord_y[0] = i_entry_y;&lt;br /&gt;+		int dir = 5;&lt;br /&gt;+&lt;br /&gt;+		int c = i_entry_x;&lt;br /&gt;+		int r = i_entry_y;&lt;br /&gt;+		for (;;) {&lt;br /&gt;+			dir = (dir + 5) % 8;//dirÌг̋ɻ&lt;br /&gt;+			//±±Í˦ңêÎàÁÆ΅ԋɻÅ«éÆ϶¤æ&lt;br /&gt;+			//4̷ɈˏÌ˫˅њӮÌЪ͇É˫˅ĠĆĢĎðЈת·éÆ©Ë&lt;br /&gt;+			if(c&amp;gt;=1 &amp;amp;&amp;amp; c&amp;lt;width-1 &amp;amp;&amp;amp; r&amp;gt;=1 &amp;amp;&amp;amp; r&amp;lt;height-1){&lt;br /&gt;+				for(;;){//gotoÌćľÅÌħذÌforն&lt;br /&gt;+					//˫˅ÉњµÄ¢È¢Æ«&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] == 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					dir++;&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] == 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					dir++;&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] == 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					dir++;&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] == 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					dir++;&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] == 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					dir++;&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] == 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					dir++;&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] == 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					dir++;&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] == 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					/*&lt;br /&gt;+					try{&lt;br /&gt;+					BufferedImage b=new BufferedImage(width,height,ColorSpace.TYPE_RGB);&lt;br /&gt;+					NyARRasterImageIO.copy(i_raster, b);&lt;br /&gt;+					ImageIO.write(b,&amp;quot;png&amp;quot;,new File(&amp;quot;bug.png&amp;quot;));&lt;br /&gt;+					}catch(Exception e){&lt;br /&gt;+&lt;br /&gt;+					}*/&lt;br /&gt;+					//8ֻͼғÄҲ×½¯ÇÉĸËªֳ¢æ&lt;br /&gt;+					throw NyARException();			&lt;br /&gt;+				}&lt;br /&gt;+			}else{&lt;br /&gt;+				//˫˅ÉњµÄ¢éÆ«				&lt;br /&gt;+				int i;&lt;br /&gt;+				for (i = 0; i &amp;lt; 8; i++){				&lt;br /&gt;+					const int x=c + xdir[dir];&lt;br /&gt;+					const int y=r + ydir[dir];&lt;br /&gt;+					//˫˅ĠĆĢĎ&lt;br /&gt;+					if(x&amp;gt;=0 &amp;amp;&amp;amp; x&amp;lt;width &amp;amp;&amp;amp; y&amp;gt;=0 &amp;amp;&amp;amp; y&amp;lt;height){&lt;br /&gt;+						if (i_buf[(y)*width+(x)] == 0) {&lt;br /&gt;+							break;&lt;br /&gt;+						}&lt;br /&gt;+					}&lt;br /&gt;+					dir++;//ջҷĥĵËðϑІ·éÌÅעҨÈµ&lt;br /&gt;+				}&lt;br /&gt;+				if (i == 8) {&lt;br /&gt;+					//8ֻͼғÄҲ×½¯ÇÉĸËªֳ¢æ&lt;br /&gt;+					throw NyARException();// return(-1);&lt;br /&gt;+				}				&lt;br /&gt;+			}&lt;br /&gt;+&lt;br /&gt;+			dir=dir% 8;//dirÌг̋ɻ&lt;br /&gt;+&lt;br /&gt;+			// xcoordÆycoordðc,rÉà֛Ѷ&lt;br /&gt;+			c = c + xdir[dir];&lt;br /&gt;+			r = r + ydir[dir];&lt;br /&gt;+			o_coord_x[coord_num] = c;&lt;br /&gt;+			o_coord_y[coord_num] = r;&lt;br /&gt;+			// Љ׹а̏ԻӨ&lt;br /&gt;+			if (c == i_entry_x &amp;amp;&amp;amp; r == i_entry_y){&lt;br /&gt;+				coord_num++;&lt;br /&gt;+				break;&lt;br /&gt;+			}&lt;br /&gt;+			coord_num++;&lt;br /&gt;+			if (coord_num == i_array_size) {&lt;br /&gt;+				//ؖ˳ª֖ӛÉӂµ½&lt;br /&gt;+				return coord_num;&lt;br /&gt;+			}&lt;br /&gt;+		}&lt;br /&gt;+		return coord_num;&lt;br /&gt;+	}&lt;br /&gt;+	int ContourPickup::getContour(const NyARLabelingImage&amp;amp; i_raster,int i_entry_x,int i_entry_y,int i_array_size,int* o_coord_x,int* o_coord_y)&lt;br /&gt;+	{&lt;br /&gt;+		const int* xdir = _getContour_xdir;// static int xdir[8] = { 0, 1, 1, 1, 0,-1,-1,-1};&lt;br /&gt;+		const int* ydir = _getContour_ydir;// static int ydir[8] = {-1,-1, 0, 1, 1, 1, 0,-1};&lt;br /&gt;+&lt;br /&gt;+		const int* i_buf=(int*)i_raster.getBufferReader().getBuffer();&lt;br /&gt;+		const int width=i_raster.getWidth();&lt;br /&gt;+		const int height=i_raster.getHeight();&lt;br /&gt;+		//ĎÊĢĶ،ɦÌУӛÉњµÄ¢éļăÓħðӾé&lt;br /&gt;+		int sx=i_entry_x;&lt;br /&gt;+		int sy=i_entry_y;&lt;br /&gt;+&lt;br /&gt;+		int coord_num = 1;&lt;br /&gt;+		o_coord_x[0] = sx;&lt;br /&gt;+		o_coord_y[0] = sy;&lt;br /&gt;+		int dir = 5;&lt;br /&gt;+&lt;br /&gt;+		int c = o_coord_x[0];&lt;br /&gt;+		int r = o_coord_y[0];&lt;br /&gt;+		for (;;) {&lt;br /&gt;+			dir = (dir + 5) % 8;//dirÌг̋ɻ&lt;br /&gt;+			//±±Í˦ңêÎàÁÆ΅ԋɻÅ«éÆ϶¤æ&lt;br /&gt;+			//4̷ɈˏÌ˫˅њӮÌЪ͇É˫˅ĠĆĢĎðЈת·éÆ©Ë&lt;br /&gt;+			if(c&amp;gt;=1 &amp;amp;&amp;amp; c&amp;lt;width-1 &amp;amp;&amp;amp; r&amp;gt;=1 &amp;amp;&amp;amp; r&amp;lt;height-1){&lt;br /&gt;+				for(;;){//gotoÌćľÅÌħذÌforն&lt;br /&gt;+					//˫˅ÉњµÄ¢È¢Æ«&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] &amp;gt; 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					dir++;&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] &amp;gt; 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					dir++;&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] &amp;gt; 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					dir++;&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] &amp;gt; 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					dir++;&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] &amp;gt; 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					dir++;&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] &amp;gt; 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					dir++;&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] &amp;gt; 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					dir++;&lt;br /&gt;+					if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] &amp;gt; 0) {&lt;br /&gt;+						break;&lt;br /&gt;+					}&lt;br /&gt;+					//8ֻͼғÄҲ×½¯ÇÉĸËªֳ¢æ&lt;br /&gt;+					throw NyARException();			&lt;br /&gt;+				}&lt;br /&gt;+			}else{&lt;br /&gt;+				//˫˅ÉњµÄ¢éÆ«&lt;br /&gt;+				int i;&lt;br /&gt;+				for (i = 0; i &amp;lt; 8; i++){				&lt;br /&gt;+					const int x=c + xdir[dir];&lt;br /&gt;+					const int y=r + ydir[dir];&lt;br /&gt;+					//˫˅ĠĆĢĎ&lt;br /&gt;+					if(x&amp;gt;=0 &amp;amp;&amp;amp; x&amp;lt;width &amp;amp;&amp;amp; y&amp;gt;=0 &amp;amp;&amp;amp; y&amp;lt;height){&lt;br /&gt;+						if (i_buf[(y)*width+(x)] &amp;gt; 0) {&lt;br /&gt;+							break;&lt;br /&gt;+						}&lt;br /&gt;+					}&lt;br /&gt;+					dir++;//ջҷĥĵËðϑІ·éÌÅעҨÈµ&lt;br /&gt;+				}&lt;br /&gt;+				if (i == 8) {&lt;br /&gt;+					//8ֻͼғÄҲ×½¯ÇÉĸËªֳ¢æ&lt;br /&gt;+					throw NyARException();// return(-1);&lt;br /&gt;+				}				&lt;br /&gt;+			}&lt;br /&gt;+&lt;br /&gt;+			dir=dir% 8;//dirÌг̋ɻ&lt;br /&gt;+&lt;br /&gt;+			// xcoordÆycoordðc,rÉà֛Ѷ&lt;br /&gt;+			c = c + xdir[dir];&lt;br /&gt;+			r = r + ydir[dir];&lt;br /&gt;+			o_coord_x[coord_num] = c;&lt;br /&gt;+			o_coord_y[coord_num] = r;&lt;br /&gt;+			// Љ׹а̏ԻӨ&lt;br /&gt;+			if (c == sx &amp;amp;&amp;amp; r == sy){&lt;br /&gt;+				coord_num++;&lt;br /&gt;+				break;&lt;br /&gt;+			}&lt;br /&gt;+			coord_num++;&lt;br /&gt;+			if (coord_num == i_array_size) {&lt;br /&gt;+				//ؖ˳ª֖ӛÉӂµ½&lt;br /&gt;+				return coord_num;&lt;br /&gt;+			}&lt;br /&gt;+		}&lt;br /&gt;+		return coord_num;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+}&lt;br /&gt;+&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARObserv2IdealMap.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARObserv2IdealMap.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARObserv2IdealMap.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARObserv2IdealMap.h&amp;quot;&lt;br /&gt; #include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt; #include &amp;lt;cmath&amp;gt;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARMatchPattDeviationBlackWhiteData.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARMatchPattDeviationBlackWhiteData.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARMatchPattDeviationBlackWhiteData.cpp	(revision 335)&lt;br /&gt;@@ -1,32 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt; &lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotMatrix_ARToolKit_O2.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotMatrix_ARToolKit_O2.cpp	(revision 0)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotMatrix_ARToolKit_O2.cpp	(revision 335)&lt;br /&gt;@@ -0,0 +1,68 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+#include &amp;quot;NyARRotMatrix_ARToolKit_O2.h&amp;quot;&lt;br /&gt;+#include &amp;lt;cmath&amp;gt;&lt;br /&gt;+namespace NyARToolkitCPP&lt;br /&gt;+{&lt;br /&gt;+	NyARRotMatrix_ARToolKit_O2::NyARRotMatrix_ARToolKit_O2(const NyARPerspectiveProjectionMatrix* i_matrix):NyARRotMatrix_ARToolKit(i_matrix)&lt;br /&gt;+	{&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	/*	˖ДͷµҖ¦&lt;br /&gt;+	*/&lt;br /&gt;+	void NyARRotMatrix_ARToolKit_O2::setAngle(double i_x,double i_y,double i_z)&lt;br /&gt;+	{&lt;br /&gt;+		const double sina = sin(i_x);&lt;br /&gt;+		const double cosa = cos(i_x);&lt;br /&gt;+		const double sinb = sin(i_y);&lt;br /&gt;+		const double cosb = cos(i_y);&lt;br /&gt;+		const double sinc = sin(i_z);&lt;br /&gt;+		const double cosc = cos(i_z);&lt;br /&gt;+		// Optimize&lt;br /&gt;+		const double CACA = cosa * cosa;&lt;br /&gt;+		const double SASA = sina * sina;&lt;br /&gt;+		const double SACA = sina * cosa;&lt;br /&gt;+		const double SASB = sina * sinb;&lt;br /&gt;+		const double CASB = cosa * sinb;&lt;br /&gt;+		const double SACACB = SACA * cosb;&lt;br /&gt;+&lt;br /&gt;+		this-&amp;gt;m00 = CACA * cosb * cosc + SASA * cosc + SACACB * sinc - SACA * sinc;&lt;br /&gt;+		this-&amp;gt;m01 = -CACA * cosb * sinc - SASA * sinc + SACACB * cosc - SACA * cosc;&lt;br /&gt;+		this-&amp;gt;m02 = CASB;&lt;br /&gt;+		this-&amp;gt;m10 = SACACB * cosc - SACA * cosc + SASA * cosb * sinc + CACA * sinc;&lt;br /&gt;+		this-&amp;gt;m11 = -SACACB * sinc + SACA * sinc + SASA * cosb * cosc + CACA * cosc;&lt;br /&gt;+		this-&amp;gt;m12 = SASB;&lt;br /&gt;+		this-&amp;gt;m20 = -CASB * cosc - SASB * sinc;&lt;br /&gt;+		this-&amp;gt;m21 = CASB * sinc - SASB * cosc;&lt;br /&gt;+		this-&amp;gt;m22 = cosb;&lt;br /&gt;+		//angleð̴ͶϚ¹¸ÉҼњңԼ&lt;br /&gt;+		this-&amp;gt;_angle.x=i_x;&lt;br /&gt;+		this-&amp;gt;_angle.y=i_y;&lt;br /&gt;+		this-&amp;gt;_angle.z=i_z;&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+}&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotMatrix_ARToolKit.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotMatrix_ARToolKit.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRotMatrix_ARToolKit.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008-2009 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARRotMatrix_ARToolKit.h&amp;quot;&lt;br /&gt; #include &amp;quot;NyARRotMatrix.h&amp;quot;&lt;br /&gt; #include &amp;quot;NyARRotVector.h&amp;quot;&lt;br /&gt;@@ -33,20 +31,15 @@&lt;br /&gt; #include &amp;lt;cstdlib&amp;gt;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt;-	NyARRotMatrix_ARToolKit::NyARRotMatrix_ARToolKit(const NyARPerspectiveProjectionMatrix* i_matrix)&lt;br /&gt;+	NyARRotMatrix_ARToolKit::NyARRotMatrix_ARToolKit(const NyARPerspectiveProjectionMatrix* i_matrix):NyARRotMatrix(i_matrix)&lt;br /&gt; 	{&lt;br /&gt;-		this-&amp;gt;__initRot_vec1=new NyARRotVector(i_matrix);&lt;br /&gt;-		this-&amp;gt;__initRot_vec2=new NyARRotVector(i_matrix);&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt; 	NyARRotMatrix_ARToolKit::~NyARRotMatrix_ARToolKit()&lt;br /&gt; 	{&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;__initRot_vec1);&lt;br /&gt;-		NyAR_SAFE_DELETE(this-&amp;gt;__initRot_vec2);&lt;br /&gt; 	}&lt;br /&gt; 	void NyARRotMatrix_ARToolKit::initRotByPrevResult(const NyARTransMatResult&amp;amp; i_prev_result)&lt;br /&gt; 	{&lt;br /&gt;-&lt;br /&gt; 		this-&amp;gt;m00=i_prev_result.m00;&lt;br /&gt; 		this-&amp;gt;m01=i_prev_result.m01;&lt;br /&gt; 		this-&amp;gt;m02=i_prev_result.m02;&lt;br /&gt;@@ -62,38 +55,9 @@&lt;br /&gt; 	}&lt;br /&gt; 	void NyARRotMatrix_ARToolKit::initRotBySquare(const TNyARLinear* i_linear[],const TNyARDoublePoint2d* i_sqvertex[])&lt;br /&gt; 	{&lt;br /&gt;-		NyARRotVector&amp;amp; vec1=*this-&amp;gt;__initRot_vec1;&lt;br /&gt;-		NyARRotVector&amp;amp; vec2=*this-&amp;gt;__initRot_vec2;&lt;br /&gt;-&lt;br /&gt;-		//ͼ©¢͇Á½֓©çÑ׻ÌĸĎħËðͶϚ&lt;br /&gt;-&lt;br /&gt;-		//βÐ&lt;br /&gt;-		vec1.exteriorProductFromLinear(*i_linear[0],*i_linear[2]);&lt;br /&gt;-		vec1.checkVectorByVertex(*i_sqvertex[0],*i_sqvertex[1]);&lt;br /&gt;-&lt;br /&gt;-		//βÑ&lt;br /&gt;-		vec2.exteriorProductFromLinear(*i_linear[1],*i_linear[3]);&lt;br /&gt;-		vec2.checkVectorByVertex(*i_sqvertex[3],*i_sqvertex[0]);&lt;br /&gt;-&lt;br /&gt;-		//ʱԝÌ΅ԋɻ&lt;br /&gt;-		NyARRotVector::checkRotation(vec1,vec2);&lt;br /&gt;-&lt;br /&gt;-		this-&amp;gt;m00 =vec1.v1;&lt;br /&gt;-		this-&amp;gt;m10 =vec1.v2;&lt;br /&gt;-		this-&amp;gt;m20 =vec1.v3;&lt;br /&gt;-		this-&amp;gt;m01 =vec2.v1;&lt;br /&gt;-		this-&amp;gt;m11 =vec2.v2;&lt;br /&gt;-		this-&amp;gt;m21 =vec2.v3;&lt;br /&gt;-&lt;br /&gt;-		//΅ͣÌβðͶϚ&lt;br /&gt;-		const double w02 = vec1.v2 * vec2.v3 - vec1.v3 * vec2.v2;&lt;br /&gt;-		const double w12 = vec1.v3 * vec2.v1 - vec1.v1 * vec2.v3;&lt;br /&gt;-		const double w22 = vec1.v1 * vec2.v2 - vec1.v2 * vec2.v1;&lt;br /&gt;-		const double w = sqrt(w02 * w02 + w12 * w12 + w22 * w22);&lt;br /&gt;-		this-&amp;gt;m02 = w02/w;&lt;br /&gt;-		this-&amp;gt;m12 = w12/w;&lt;br /&gt;-		this-&amp;gt;m22 = w22/w;&lt;br /&gt;-		updateAngleFromMatrix();&lt;br /&gt;+		NyARRotMatrix::initRotBySquare(i_linear,i_sqvertex);&lt;br /&gt;+		//Matrix©çangleðÍĨ&lt;br /&gt;+		this-&amp;gt;updateAngleFromMatrix();&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt; 	const TNyARDoublePoint3d&amp;amp; NyARRotMatrix_ARToolKit::refAngle()const&lt;br /&gt;@@ -137,40 +101,7 @@&lt;br /&gt; 		updateAngleFromMatrix();&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt;-	/**&lt;br /&gt;-	* i_in_pointð֏ʷγرÅ΀֗֏ʷ·é&lt;br /&gt;-	* @param i_in_point&lt;br /&gt;-	* @param i_out_point&lt;br /&gt;-	*/&lt;br /&gt;-	void NyARRotMatrix_ARToolKit::getPoint3d(const TNyARDoublePoint3d&amp;amp; i_in_point,TNyARDoublePoint3d&amp;amp; i_out_point)const&lt;br /&gt;-	{&lt;br /&gt;-		const double x=i_in_point.x;&lt;br /&gt;-		const double y=i_in_point.y;&lt;br /&gt;-		const double z=i_in_point.z;&lt;br /&gt;-		i_out_point.x=this-&amp;gt;m00 * x + this-&amp;gt;m01 * y + this-&amp;gt;m02 * z;&lt;br /&gt;-		i_out_point.y=this-&amp;gt;m10 * x + this-&amp;gt;m11 * y + this-&amp;gt;m12 * z;&lt;br /&gt;-		i_out_point.z=this-&amp;gt;m20 * x + this-&amp;gt;m21 * y + this-&amp;gt;m22 * z;&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt;-	/**&lt;br /&gt;-	* աДÌҸԟðɪʇµÄ֏ʷ·é&lt;br /&gt;-	* @param i_in_point&lt;br /&gt;-	* @param i_out_point&lt;br /&gt;-	* @param i_number_of_vertex&lt;br /&gt;-	*/&lt;br /&gt;-	void NyARRotMatrix_ARToolKit::getPoint3dBatch(const TNyARDoublePoint3d i_in_point[],TNyARDoublePoint3d i_out_point[],int i_number_of_vertex)const&lt;br /&gt;-	{&lt;br /&gt;-		for(int i=i_number_of_vertex-1;i&amp;gt;=0;i--){&lt;br /&gt;-			TNyARDoublePoint3d&amp;amp; out_ptr=i_out_point[i];&lt;br /&gt;-			const TNyARDoublePoint3d&amp;amp; in_ptr=i_in_point[i];&lt;br /&gt;-			out_ptr.x=this-&amp;gt;m00 * in_ptr.x + this-&amp;gt;m01 * in_ptr.y + this-&amp;gt;m02 * in_ptr.z;&lt;br /&gt;-			out_ptr.y=this-&amp;gt;m10 * in_ptr.x + this-&amp;gt;m11 * in_ptr.y + this-&amp;gt;m12 * in_ptr.z;&lt;br /&gt;-			out_ptr.z=this-&amp;gt;m20 * in_ptr.x + this-&amp;gt;m21 * in_ptr.y + this-&amp;gt;m22 * in_ptr.z;&lt;br /&gt;-		}&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt; &lt;br /&gt;-&lt;br /&gt; 	/*	įďm22ÍĚĢħΞÉ˭ӨÅ«éñ¶áÈ¢Ì&lt;br /&gt; 	&lt;br /&gt; 	*/&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRgbPixelReader_INT1D_X8R8G8B8_32.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRgbPixelReader_INT1D_X8R8G8B8_32.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRgbPixelReader_INT1D_X8R8G8B8_32.cpp	(revision 335)&lt;br /&gt;@@ -1,6 +1,31 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARRgbPixelReader_INT1D_X8R8G8B8_32.h&amp;quot;&lt;br /&gt;+#include &amp;quot;NyARException.h&amp;quot;&lt;br /&gt; &lt;br /&gt;-&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt; 	NyARRgbPixelReader_INT1D_X8R8G8B8_32::NyARRgbPixelReader_INT1D_X8R8G8B8_32(const TNyARIntSize* i_size,const int* i_buf)&lt;br /&gt;@@ -29,5 +54,13 @@&lt;br /&gt; 		}&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt;+	void NyARRgbPixelReader_INT1D_X8R8G8B8_32::setPixel(int i_x, int i_y, const int* i_rgb)&lt;br /&gt;+	{&lt;br /&gt;+		NyARException::notImplement();&lt;br /&gt;+	}&lt;br /&gt;+	void NyARRgbPixelReader_INT1D_X8R8G8B8_32::setPixels(const int* i_x, const int* i_y, int i_num, const int* i_intrgb)&lt;br /&gt;+	{&lt;br /&gt;+		NyARException::notImplement();&lt;br /&gt;+	}&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRgbRaster_BGRA.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRgbRaster_BGRA.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRgbRaster_BGRA.cpp	(revision 335)&lt;br /&gt;@@ -1,3 +1,28 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt; #include &amp;quot;NyARRgbRaster_BGRA.h&amp;quot;&lt;br /&gt; #include &amp;quot;NyARBufferReader.h&amp;quot;&lt;br /&gt;@@ -6,11 +31,6 @@&lt;br /&gt; {&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;-	NyARRgbRaster_BGRA* NyARRgbRaster_BGRA::wrap(const NyAR_BYTE_t* i_buffer, int i_width, int i_height)&lt;br /&gt;-	{&lt;br /&gt;-		return new NyARRgbRaster_BGRA(i_buffer, i_width, i_height);&lt;br /&gt;-	}&lt;br /&gt;-&lt;br /&gt; 	NyARRgbRaster_BGRA::NyARRgbRaster_BGRA(const NyAR_BYTE_t* i_buffer, int i_width, int i_height):NyARRgbRaster_BasicClass(i_width,i_height)&lt;br /&gt; 	{&lt;br /&gt; 		this-&amp;gt;_ref_buf = i_buffer;&lt;br /&gt;@@ -18,13 +38,6 @@&lt;br /&gt; 		this-&amp;gt;_buffer_reader=new NyARBufferReader(i_buffer,INyARBufferReader::BUFFERFORMAT_BYTE1D_B8G8R8X8_32);&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt;-	NyARRgbRaster_BGRA::NyARRgbRaster_BGRA(int i_width, int i_height):NyARRgbRaster_BasicClass(i_width,i_height)&lt;br /&gt;-	{&lt;br /&gt;-		this-&amp;gt;_ref_buf =NULL;&lt;br /&gt;-		this-&amp;gt;_rgb_reader = new PixelReader(this);&lt;br /&gt;-		this-&amp;gt;_buffer_reader=new NyARBufferReader(NULL,INyARBufferReader::BUFFERFORMAT_BYTE1D_B8G8R8X8_32);&lt;br /&gt;-		return;&lt;br /&gt;-	}&lt;br /&gt; &lt;br /&gt; 	NyARRgbRaster_BGRA::~NyARRgbRaster_BGRA(void)&lt;br /&gt; 	{&lt;br /&gt;@@ -41,11 +54,5 @@&lt;br /&gt; 	{&lt;br /&gt; 		return *(this-&amp;gt;_buffer_reader);&lt;br /&gt; 	}&lt;br /&gt;-	void NyARRgbRaster_BGRA::setBuffer(const NyAR_BYTE_t* i_buffer)&lt;br /&gt;-	{&lt;br /&gt;-		NyAR_ASSERT(i_buffer!=NULL);&lt;br /&gt;-		this-&amp;gt;_ref_buf=i_buffer;&lt;br /&gt;-		this-&amp;gt;_buffer_reader-&amp;gt;setBuffer(i_buffer);&lt;br /&gt;-	}&lt;br /&gt; &lt;br /&gt; }&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARTransMatResult.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARTransMatResult.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARTransMatResult.cpp	(revision 335)&lt;br /&gt;@@ -1,31 +1,30 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARTransMatResult.h&amp;quot;&lt;br /&gt;+#include &amp;lt;cmath&amp;gt;&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt; 	NyARTransMatResult::NyARTransMatResult()&lt;br /&gt;@@ -33,5 +32,31 @@&lt;br /&gt; 		this-&amp;gt;has_value=false;&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt;+    /**&lt;br /&gt;+     * ±Ì˖ДÍ0-PIÌ˔ÅӬð֔µÜ·&lt;br /&gt;+     * @param o_out&lt;br /&gt;+     */&lt;br /&gt;+	void NyARTransMatResult::getZXYAngle(TNyARDoublePoint3d&amp;amp; o_out)&lt;br /&gt;+    {&lt;br /&gt;+        double sina = this-&amp;gt;m21;&lt;br /&gt;+        if (sina &amp;gt;= 1.0)&lt;br /&gt;+        {&lt;br /&gt;+            o_out.x = NyAR_PI / 2;&lt;br /&gt;+            o_out.y = 0;&lt;br /&gt;+            o_out.z = atan2(-this-&amp;gt;m10, this-&amp;gt;m00);&lt;br /&gt;+        }&lt;br /&gt;+        else if (sina &amp;lt;= -1.0)&lt;br /&gt;+        {&lt;br /&gt;+            o_out.x = -NyAR_PI / 2;&lt;br /&gt;+            o_out.y = 0;&lt;br /&gt;+            o_out.z = atan2(-this-&amp;gt;m10, this-&amp;gt;m00);&lt;br /&gt;+        }&lt;br /&gt;+        else&lt;br /&gt;+        {&lt;br /&gt;+            o_out.x = asin(sina);&lt;br /&gt;+            o_out.z = atan2(-this-&amp;gt;m01, this-&amp;gt;m11);&lt;br /&gt;+            o_out.y = atan2(-this-&amp;gt;m20, this-&amp;gt;m22);&lt;br /&gt;+        }&lt;br /&gt;+    }&lt;br /&gt; &lt;br /&gt; }&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARTransOffset.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARTransOffset.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARTransOffset.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARTransOffset.h&amp;quot;&lt;br /&gt; &lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARColorPatt_PseudoAffine.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARColorPatt_PseudoAffine.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARColorPatt_PseudoAffine.cpp	(revision 335)&lt;br /&gt;@@ -1,32 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt; {&lt;br /&gt; &lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRaster.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRaster.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARRaster.cpp	(revision 335)&lt;br /&gt;@@ -2,27 +2,25 @@&lt;br /&gt; * PROJECT: NyARToolkitCPP&lt;br /&gt; * --------------------------------------------------------------------------------&lt;br /&gt; *&lt;br /&gt;-* The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;-* &lt;br /&gt;-* Copyright (C)2008 R.Iizuka&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt; *&lt;br /&gt;-* This program is free software; you can redistribute it and/or&lt;br /&gt;-* modify it under the terms of the GNU General Public License&lt;br /&gt;-* as published by the Free Software Foundation; either version 2&lt;br /&gt;-* of the License, or (at your option) any later version.&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt; * &lt;br /&gt; * This program is distributed in the hope that it will be useful,&lt;br /&gt; * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt; * GNU General Public License for more details.&lt;br /&gt;-* &lt;br /&gt;+*&lt;br /&gt; * You should have received a copy of the GNU General Public License&lt;br /&gt;-* along with this framework; if not, write to the Free Software&lt;br /&gt;-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt; * &lt;br /&gt; * For further information please contact.&lt;br /&gt; *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;-*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt; * &lt;br /&gt; */&lt;br /&gt; #include &amp;quot;NyARRaster.h&amp;quot;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARPca2d.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARPca2d.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARPca2d.cpp	(revision 335)&lt;br /&gt;@@ -1,29 +1,27 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;INyARPca2d.h&amp;quot;&lt;br /&gt; &lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/LabelOverlapChecker.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/LabelOverlapChecker.cpp	(revision 0)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/LabelOverlapChecker.cpp	(revision 335)&lt;br /&gt;@@ -0,0 +1,30 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+#include &amp;lt;LabelOverlapChecker.h&amp;gt;&lt;br /&gt;+namespace NyARToolkitCPP&lt;br /&gt;+{&lt;br /&gt;+}&lt;br /&gt;+&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDoubleMatrix33.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDoubleMatrix33.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDoubleMatrix33.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARDoubleMatrix33.h&amp;quot;&lt;br /&gt; &lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt;@@ -46,7 +44,7 @@&lt;br /&gt; 		this-&amp;gt;m22=i_value[8];&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt;-	 void NyARDoubleMatrix33::getValue(double o_value[])const&lt;br /&gt;+	void NyARDoubleMatrix33::getValue(double o_value[])const&lt;br /&gt; 	{&lt;br /&gt; 		o_value[0]=this-&amp;gt;m00;&lt;br /&gt; 		o_value[1]=this-&amp;gt;m01;&lt;br /&gt;@@ -59,4 +57,96 @@&lt;br /&gt; 		o_value[8]=this-&amp;gt;m22;&lt;br /&gt; 		return;&lt;br /&gt; 	}&lt;br /&gt;+	void NyARDoubleMatrix33::setValue(const NyARDoubleMatrix33&amp;amp; i_value)&lt;br /&gt;+	{&lt;br /&gt;+		this-&amp;gt;m00=i_value.m00;&lt;br /&gt;+		this-&amp;gt;m01=i_value.m01;&lt;br /&gt;+		this-&amp;gt;m02=i_value.m02;&lt;br /&gt;+		this-&amp;gt;m10=i_value.m10;&lt;br /&gt;+		this-&amp;gt;m11=i_value.m11;&lt;br /&gt;+		this-&amp;gt;m12=i_value.m12;&lt;br /&gt;+		this-&amp;gt;m20=i_value.m20;&lt;br /&gt;+		this-&amp;gt;m21=i_value.m21;&lt;br /&gt;+		this-&amp;gt;m22=i_value.m22;&lt;br /&gt;+		return;&lt;br /&gt;+	}	&lt;br /&gt;+	bool NyARDoubleMatrix33::inverse(const NyARDoubleMatrix33&amp;amp; i_src)&lt;br /&gt;+	{&lt;br /&gt;+		double a11,a12,a13,a21,a22,a23,a31,a32,a33;&lt;br /&gt;+		double b11,b12,b13,b21,b22,b23,b31,b32,b33;	&lt;br /&gt;+		a11=i_src.m00;a12=i_src.m01;a13=i_src.m02;&lt;br /&gt;+		a21=i_src.m10;a22=i_src.m11;a23=i_src.m12;&lt;br /&gt;+		a31=i_src.m20;a32=i_src.m21;a33=i_src.m22;&lt;br /&gt;+		&lt;br /&gt;+		b11=a22*a33-a23*a32;&lt;br /&gt;+		b12=a32*a13-a33*a12;&lt;br /&gt;+		b13=a12*a23-a13*a22;&lt;br /&gt;+		&lt;br /&gt;+		b21=a23*a31-a21*a33;&lt;br /&gt;+		b22=a33*a11-a31*a13;&lt;br /&gt;+		b23=a13*a21-a11*a23;&lt;br /&gt;+		&lt;br /&gt;+		b31=a21*a32-a22*a31;&lt;br /&gt;+		b32=a31*a12-a32*a11;&lt;br /&gt;+		b33=a11*a22-a12*a21;&lt;br /&gt;+				&lt;br /&gt;+		double det_1=a11*b11+a21*b12+a31*b13;&lt;br /&gt;+		if(det_1==0){&lt;br /&gt;+			return false;&lt;br /&gt;+		}&lt;br /&gt;+		det_1=1/det_1;&lt;br /&gt;+&lt;br /&gt;+		this-&amp;gt;m00=b11*det_1;&lt;br /&gt;+		this-&amp;gt;m01=b12*det_1;&lt;br /&gt;+		this-&amp;gt;m02=b13*det_1;&lt;br /&gt;+		&lt;br /&gt;+		this-&amp;gt;m10=b21*det_1;&lt;br /&gt;+		this-&amp;gt;m11=b22*det_1;&lt;br /&gt;+		this-&amp;gt;m12=b23*det_1;&lt;br /&gt;+		&lt;br /&gt;+		this-&amp;gt;m20=b31*det_1;&lt;br /&gt;+		this-&amp;gt;m21=b32*det_1;&lt;br /&gt;+		this-&amp;gt;m22=b33*det_1;&lt;br /&gt;+		&lt;br /&gt;+		return true;&lt;br /&gt;+	}&lt;br /&gt;+	/**&lt;br /&gt;+	 * ±Ì˖ДÍ0-PIÌ˔ÅӬð֔µÜ·&lt;br /&gt;+	 * @param o_out&lt;br /&gt;+	 */&lt;br /&gt;+	void NyARDoubleMatrix33::getZXYAngle(TNyARDoublePoint3d&amp;amp; o_out)const&lt;br /&gt;+	{&lt;br /&gt;+		double sina = this-&amp;gt;m21;&lt;br /&gt;+		if (sina &amp;gt;= 1.0) {&lt;br /&gt;+			o_out.x = NyAR_PI / 2;&lt;br /&gt;+			o_out.y = 0;&lt;br /&gt;+			o_out.z = atan2(-this-&amp;gt;m10, this-&amp;gt;m00);&lt;br /&gt;+		} else if (sina &amp;lt;= -1.0) {&lt;br /&gt;+			o_out.x = -NyAR_PI / 2;&lt;br /&gt;+			o_out.y = 0;&lt;br /&gt;+			o_out.z = atan2(-this-&amp;gt;m10, this-&amp;gt;m00);&lt;br /&gt;+		} else {&lt;br /&gt;+			o_out.x = asin(sina);&lt;br /&gt;+			o_out.z = atan2(-this-&amp;gt;m01, this-&amp;gt;m11);&lt;br /&gt;+			o_out.y = atan2(-this-&amp;gt;m20, this-&amp;gt;m22);&lt;br /&gt;+		}&lt;br /&gt;+	}&lt;br /&gt;+	void NyARDoubleMatrix33::setZXYAngle(double i_x, double i_y, double i_z)&lt;br /&gt;+	{&lt;br /&gt;+		double sina = sin(i_x);&lt;br /&gt;+		double cosa = cos(i_x);&lt;br /&gt;+		double sinb = sin(i_y);&lt;br /&gt;+		double cosb = cos(i_y);&lt;br /&gt;+		double sinc = sin(i_z);&lt;br /&gt;+		double cosc = cos(i_z);&lt;br /&gt;+		this-&amp;gt;m00 = cosc * cosb - sinc * sina * sinb;&lt;br /&gt;+		this-&amp;gt;m01 = -sinc * cosa;&lt;br /&gt;+		this-&amp;gt;m02 = cosc * sinb + sinc * sina * cosb;&lt;br /&gt;+		this-&amp;gt;m10 = sinc * cosb + cosc * sina * sinb;&lt;br /&gt;+		this-&amp;gt;m11 = cosc * cosa;&lt;br /&gt;+		this-&amp;gt;m12 = sinc * sinb - cosc * sina * cosb;&lt;br /&gt;+		this-&amp;gt;m20 = -cosa * sinb;&lt;br /&gt;+		this-&amp;gt;m21 = sina;&lt;br /&gt;+		this-&amp;gt;m22 = cosb * cosa;&lt;br /&gt;+	}&lt;br /&gt; }&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDoubleMatrix34.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDoubleMatrix34.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARDoubleMatrix34.cpp	(revision 335)&lt;br /&gt;@@ -1,30 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;NyARDoubleMatrix34.h&amp;quot;&lt;br /&gt; &lt;br /&gt; namespace NyARToolkitCPP&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARPartialDifferentiationOptimize.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARPartialDifferentiationOptimize.cpp	(revision 0)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/NyARPartialDifferentiationOptimize.cpp	(revision 335)&lt;br /&gt;@@ -0,0 +1,358 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+#include &amp;quot;NyARPartialDifferentiationOptimize.h&amp;quot;&lt;br /&gt;+#include &amp;lt;float.h&amp;gt;&lt;br /&gt;+#include &amp;lt;cmath&amp;gt;&lt;br /&gt;+#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;+using namespace std;&lt;br /&gt;+namespace NyARToolkitCPP&lt;br /&gt;+{&lt;br /&gt;+	NyARPartialDifferentiationOptimize::NyARPartialDifferentiationOptimize(const NyARPerspectiveProjectionMatrix* i_projection_mat_ref)&lt;br /&gt;+	{&lt;br /&gt;+		this-&amp;gt;_projection_mat_ref = i_projection_mat_ref;&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	void NyARPartialDifferentiationOptimize::sincos2Rotation_ZXY(const TSinCosValue (&amp;amp;i_sincos)[3],NyARDoubleMatrix33&amp;amp; i_rot_matrix)&lt;br /&gt;+	{&lt;br /&gt;+		double sina = i_sincos[0].sin_val;&lt;br /&gt;+		double cosa = i_sincos[0].cos_val;&lt;br /&gt;+		double sinb = i_sincos[1].sin_val;&lt;br /&gt;+		double cosb = i_sincos[1].cos_val;&lt;br /&gt;+		double sinc = i_sincos[2].sin_val;&lt;br /&gt;+		double cosc = i_sincos[2].cos_val;&lt;br /&gt;+		i_rot_matrix.m00 = cosc * cosb - sinc * sina * sinb;&lt;br /&gt;+		i_rot_matrix.m01 = -sinc * cosa;&lt;br /&gt;+		i_rot_matrix.m02 = cosc * sinb + sinc * sina * cosb;&lt;br /&gt;+		i_rot_matrix.m10 = sinc * cosb + cosc * sina * sinb;&lt;br /&gt;+		i_rot_matrix.m11 = cosc * cosa;&lt;br /&gt;+		i_rot_matrix.m12 = sinc * sinb - cosc * sina * cosb;&lt;br /&gt;+		i_rot_matrix.m20 = -cosa * sinb;&lt;br /&gt;+		i_rot_matrix.m21 = sina;&lt;br /&gt;+		i_rot_matrix.m22 = cosb * cosa;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	void NyARPartialDifferentiationOptimize::rotation2Sincos_ZXY(const NyARDoubleMatrix33&amp;amp; i_rot_matrix, TSinCosValue (&amp;amp;o_out)[3],TNyARDoublePoint3d&amp;amp; o_ang)&lt;br /&gt;+	{&lt;br /&gt;+		double x, y, z;&lt;br /&gt;+		double sina = i_rot_matrix.m21;&lt;br /&gt;+		if (sina &amp;gt;= 1.0) {&lt;br /&gt;+			x = NyAR_PI / 2;&lt;br /&gt;+			y = 0;&lt;br /&gt;+			z = atan2(-i_rot_matrix.m10, i_rot_matrix.m00);&lt;br /&gt;+		} else if (sina &amp;lt;= -1.0) {&lt;br /&gt;+			x = -NyAR_PI / 2;&lt;br /&gt;+			y = 0;&lt;br /&gt;+			z = atan2(-i_rot_matrix.m10, i_rot_matrix.m00);&lt;br /&gt;+		} else {&lt;br /&gt;+			x = asin(sina);&lt;br /&gt;+			y = atan2(-i_rot_matrix.m20, i_rot_matrix.m22);&lt;br /&gt;+			z = atan2(-i_rot_matrix.m01, i_rot_matrix.m11);&lt;br /&gt;+		}&lt;br /&gt;+		o_ang.x=x;&lt;br /&gt;+		o_ang.y=y;&lt;br /&gt;+		o_ang.z=z;&lt;br /&gt;+		o_out[0].sin_val = sin(x);&lt;br /&gt;+		o_out[0].cos_val = cos(x);&lt;br /&gt;+		o_out[1].sin_val = sin(y);&lt;br /&gt;+		o_out[1].cos_val = cos(y);&lt;br /&gt;+		o_out[2].sin_val = sin(z);&lt;br /&gt;+		o_out[2].cos_val = cos(z);&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	/*&lt;br /&gt;+	* ϋʥ֏ʷή ˮ׻ή ox=(cosc * cosb - sinc * sina * sinb)*ix+(-sinc * cosa)*iy+(cosc * sinb + sinc * sina * cosb)*iz+i_trans.x; oy=(sinc * cosb + cosc * sina *&lt;br /&gt;+	* sinb)*ix+(cosc * cosa)*iy+(sinc * sinb - cosc * sina * cosb)*iz+i_trans.y; oz=(-cosa * sinb)*ix+(sina)*iy+(cosb * cosa)*iz+i_trans.z;&lt;br /&gt;+	* &lt;br /&gt;+	* double ox=(cosc * cosb)*ix+(-sinc * sina * sinb)*ix+(-sinc * cosa)*iy+(cosc * sinb)*iz + (sinc * sina * cosb)*iz+i_trans.x; double oy=(sinc * cosb)*ix&lt;br /&gt;+	* +(cosc * sina * sinb)*ix+(cosc * cosa)*iy+(sinc * sinb)*iz+(- cosc * sina * cosb)*iz+i_trans.y; double oz=(-cosa * sinb)*ix+(sina)*iy+(cosb *&lt;br /&gt;+	* cosa)*iz+i_trans.z;&lt;br /&gt;+	* &lt;br /&gt;+	* sina,cosaÉÂ¢Äʰ­ cx=(cp00*(-sinc*sinb*ix+sinc*cosb*iz)+cp01*(cosc*sinb*ix-cosc*cosb*iz)+cp02*(iy))*sina&lt;br /&gt;+	* +(cp00*(-sinc*iy)+cp01*((cosc*iy))+cp02*(-sinb*ix+cosb*iz))*cosa&lt;br /&gt;+	* +(cp00*(i_trans.x+cosc*cosb*ix+cosc*sinb*iz)+cp01*((i_trans.y+sinc*cosb*ix+sinc*sinb*iz))+cp02*(i_trans.z));&lt;br /&gt;+	* cy=(cp11*(cosc*sinb*ix-cosc*cosb*iz)+cp12*(iy))*sina +(cp11*((cosc*iy))+cp12*(-sinb*ix+cosb*iz))*cosa&lt;br /&gt;+	* +(cp11*((i_trans.y+sinc*cosb*ix+sinc*sinb*iz))+cp12*(i_trans.z)); ch=(iy)*sina +(-sinb*ix+cosb*iz)*cosa +i_trans.z; sinb,cosb hx=(cp00*(-sinc *&lt;br /&gt;+	* sina*ix+cosc*iz)+cp01*(cosc * sina*ix+sinc*iz)+cp02*(-cosa*ix))*sinb +(cp01*(sinc*ix-cosc * sina*iz)+cp00*(cosc*ix+sinc * sina*iz)+cp02*(cosa*iz))*cosb&lt;br /&gt;+	* +(cp00*(i_trans.x+(-sinc*cosa)*iy)+cp01*(i_trans.y+(cosc * cosa)*iy)+cp02*(i_trans.z+(sina)*iy)); double hy=(cp11*(cosc *&lt;br /&gt;+	* sina*ix+sinc*iz)+cp12*(-cosa*ix))*sinb +(cp11*(sinc*ix-cosc * sina*iz)+cp12*(cosa*iz))*cosb +(cp11*(i_trans.y+(cosc *&lt;br /&gt;+	* cosa)*iy)+cp12*(i_trans.z+(sina)*iy)); double h =((-cosa*ix)*sinb +(cosa*iz)*cosb +i_trans.z+(sina)*iy); İÉÁĞ֔˒ή L=2*ð(d[n]*e[n]+a[n]*b[n])&lt;br /&gt;+	* J=2*ð(d[n]*f[n]+a[n]*c[n])/L K=2*ð(-e[n]*f[n]+b[n]*c[n])/L M=ð(-e[n]^2+d[n]^2-b[n]^2+a[n]^2)/L ֎շժή +J*cos(x) +K*sin(x) -sin(x)^2 +cos(x)^2&lt;br /&gt;+	* +2*M*cos(x)*sin(x)&lt;br /&gt;+	*/&lt;br /&gt;+	double NyARPartialDifferentiationOptimize::optimizeParamX(const TSinCosValue&amp;amp; i_angle_y, const TSinCosValue&amp;amp; i_angle_z, const TNyARDoublePoint3d&amp;amp; i_trans, const TNyARDoublePoint3d i_vertex3d[],const TNyARDoublePoint2d i_vertex2d[], int i_number_of_vertex, double i_hint_angle)&lt;br /&gt;+	{&lt;br /&gt;+		const NyARPerspectiveProjectionMatrix&amp;amp; cp = *this-&amp;gt;_projection_mat_ref;&lt;br /&gt;+		const double sinb = i_angle_y.sin_val;&lt;br /&gt;+		const double cosb = i_angle_y.cos_val;&lt;br /&gt;+		const double sinc = i_angle_z.sin_val;&lt;br /&gt;+		const double cosc = i_angle_z.cos_val;&lt;br /&gt;+		double L, J, K, M, N, O;&lt;br /&gt;+		L = J = K = M = N = O = 0;&lt;br /&gt;+		for (int i = 0; i &amp;lt; i_number_of_vertex; i++) {&lt;br /&gt;+			double ix, iy, iz;&lt;br /&gt;+			ix = i_vertex3d[i].x;&lt;br /&gt;+			iy = i_vertex3d[i].y;&lt;br /&gt;+			iz = i_vertex3d[i].z;&lt;br /&gt;+&lt;br /&gt;+			const double cp00 = cp.m00;&lt;br /&gt;+			const double cp01 = cp.m01;&lt;br /&gt;+			const double cp02 = cp.m02;&lt;br /&gt;+			const double cp11 = cp.m11;&lt;br /&gt;+			const double cp12 = cp.m12;&lt;br /&gt;+&lt;br /&gt;+			double X0 = (cp00 * (-sinc * sinb * ix + sinc * cosb * iz) + cp01 * (cosc * sinb * ix - cosc * cosb * iz) + cp02 * (iy));&lt;br /&gt;+			double X1 = (cp00 * (-sinc * iy) + cp01 * ((cosc * iy)) + cp02 * (-sinb * ix + cosb * iz));&lt;br /&gt;+			double X2 = (cp00 * (i_trans.x + cosc * cosb * ix + cosc * sinb * iz) + cp01 * ((i_trans.y + sinc * cosb * ix + sinc * sinb * iz)) + cp02 * (i_trans.z));&lt;br /&gt;+			double Y0 = (cp11 * (cosc * sinb * ix - cosc * cosb * iz) + cp12 * (iy));&lt;br /&gt;+			double Y1 = (cp11 * ((cosc * iy)) + cp12 * (-sinb * ix + cosb * iz));&lt;br /&gt;+			double Y2 = (cp11 * ((i_trans.y + sinc * cosb * ix + sinc * sinb * iz)) + cp12 * (i_trans.z));&lt;br /&gt;+			double H0 = (iy);&lt;br /&gt;+			double H1 = (-sinb * ix + cosb * iz);&lt;br /&gt;+			double H2 = i_trans.z;&lt;br /&gt;+&lt;br /&gt;+			double VX = i_vertex2d[i].x;&lt;br /&gt;+			double VY = i_vertex2d[i].y;&lt;br /&gt;+&lt;br /&gt;+			double a, b, c, d, e, f;&lt;br /&gt;+			a = (VX * H0 - X0);&lt;br /&gt;+			b = (VX * H1 - X1);&lt;br /&gt;+			c = (VX * H2 - X2);&lt;br /&gt;+			d = (VY * H0 - Y0);&lt;br /&gt;+			e = (VY * H1 - Y1);&lt;br /&gt;+			f = (VY * H2 - Y2);&lt;br /&gt;+&lt;br /&gt;+			L += d * e + a * b;&lt;br /&gt;+			N += d * d + a * a;&lt;br /&gt;+			J += d * f + a * c;&lt;br /&gt;+			M += e * e + b * b;&lt;br /&gt;+			K += e * f + b * c;&lt;br /&gt;+			O += f * f + c * c;&lt;br /&gt;+&lt;br /&gt;+		}&lt;br /&gt;+		L *=2;&lt;br /&gt;+		J *=2;&lt;br /&gt;+		K *=2;&lt;br /&gt;+&lt;br /&gt;+		return getMinimumErrorAngleFromParam(L,J, K, M, N, O, i_hint_angle);&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	double NyARPartialDifferentiationOptimize::optimizeParamY(const TSinCosValue&amp;amp; i_angle_x, const TSinCosValue&amp;amp; i_angle_z,const TNyARDoublePoint3d&amp;amp; i_trans,const TNyARDoublePoint3d i_vertex3d[],const TNyARDoublePoint2d i_vertex2d[], int i_number_of_vertex, double i_hint_angle)&lt;br /&gt;+	{&lt;br /&gt;+		const NyARPerspectiveProjectionMatrix&amp;amp; cp = *this-&amp;gt;_projection_mat_ref;&lt;br /&gt;+		const double sina = i_angle_x.sin_val;&lt;br /&gt;+		const double cosa = i_angle_x.cos_val;&lt;br /&gt;+		const double sinc = i_angle_z.sin_val;&lt;br /&gt;+		const double cosc = i_angle_z.cos_val;&lt;br /&gt;+		double L, J, K, M, N, O;&lt;br /&gt;+		L = J = K = M = N = O = 0;&lt;br /&gt;+		for (int i = 0; i &amp;lt; i_number_of_vertex; i++) {&lt;br /&gt;+			double ix, iy, iz;&lt;br /&gt;+			ix = i_vertex3d[i].x;&lt;br /&gt;+			iy = i_vertex3d[i].y;&lt;br /&gt;+			iz = i_vertex3d[i].z;&lt;br /&gt;+&lt;br /&gt;+			const double cp00 = cp.m00;&lt;br /&gt;+			const double cp01 = cp.m01;&lt;br /&gt;+			const double cp02 = cp.m02;&lt;br /&gt;+			const double cp11 = cp.m11;&lt;br /&gt;+			const double cp12 = cp.m12;&lt;br /&gt;+&lt;br /&gt;+			double X0 = (cp00 * (-sinc * sina * ix + cosc * iz) + cp01 * (cosc * sina * ix + sinc * iz) + cp02 * (-cosa * ix));&lt;br /&gt;+			double X1 = (cp01 * (sinc * ix - cosc * sina * iz) + cp00 * (cosc * ix + sinc * sina * iz) + cp02 * (cosa * iz));&lt;br /&gt;+			double X2 = (cp00 * (i_trans.x + (-sinc * cosa) * iy) + cp01 * (i_trans.y + (cosc * cosa) * iy) + cp02 * (i_trans.z + (sina) * iy));&lt;br /&gt;+			double Y0 = (cp11 * (cosc * sina * ix + sinc * iz) + cp12 * (-cosa * ix));&lt;br /&gt;+			double Y1 = (cp11 * (sinc * ix - cosc * sina * iz) + cp12 * (cosa * iz));&lt;br /&gt;+			double Y2 = (cp11 * (i_trans.y + (cosc * cosa) * iy) + cp12 * (i_trans.z + (sina) * iy));&lt;br /&gt;+			double H0 = (-cosa * ix);&lt;br /&gt;+			double H1 = (cosa * iz);&lt;br /&gt;+			double H2 = i_trans.z + (sina) * iy;&lt;br /&gt;+&lt;br /&gt;+			double VX = i_vertex2d[i].x;&lt;br /&gt;+			double VY = i_vertex2d[i].y;&lt;br /&gt;+&lt;br /&gt;+			double a, b, c, d, e, f;&lt;br /&gt;+			a = (VX * H0 - X0);&lt;br /&gt;+			b = (VX * H1 - X1);&lt;br /&gt;+			c = (VX * H2 - X2);&lt;br /&gt;+			d = (VY * H0 - Y0);&lt;br /&gt;+			e = (VY * H1 - Y1);&lt;br /&gt;+			f = (VY * H2 - Y2);&lt;br /&gt;+&lt;br /&gt;+			L += d * e + a * b;&lt;br /&gt;+			N += d * d + a * a;&lt;br /&gt;+			J += d * f + a * c;&lt;br /&gt;+			M += e * e + b * b;&lt;br /&gt;+			K += e * f + b * c;&lt;br /&gt;+			O += f * f + c * c;&lt;br /&gt;+&lt;br /&gt;+		}&lt;br /&gt;+		L *= 2;&lt;br /&gt;+		J *= 2;&lt;br /&gt;+		K *= 2;&lt;br /&gt;+		return getMinimumErrorAngleFromParam(L,J, K, M, N, O, i_hint_angle);&lt;br /&gt;+&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+	double NyARPartialDifferentiationOptimize::optimizeParamZ(const TSinCosValue&amp;amp; i_angle_x, const TSinCosValue&amp;amp; i_angle_y,const TNyARDoublePoint3d&amp;amp; i_trans,const TNyARDoublePoint3d i_vertex3d[],const TNyARDoublePoint2d i_vertex2d[], int i_number_of_vertex, double i_hint_angle)&lt;br /&gt;+	{&lt;br /&gt;+		const NyARPerspectiveProjectionMatrix&amp;amp; cp = *this-&amp;gt;_projection_mat_ref;&lt;br /&gt;+		const double sina = i_angle_x.sin_val;&lt;br /&gt;+		const double cosa = i_angle_x.cos_val;&lt;br /&gt;+		const double sinb = i_angle_y.sin_val;&lt;br /&gt;+		const double cosb = i_angle_y.cos_val;&lt;br /&gt;+		double L, J, K, M, N, O;&lt;br /&gt;+		L = J = K = M = N = O = 0;&lt;br /&gt;+		for (int i = 0; i &amp;lt; i_number_of_vertex; i++) {&lt;br /&gt;+			double ix, iy, iz;&lt;br /&gt;+			ix = i_vertex3d[i].x;&lt;br /&gt;+			iy = i_vertex3d[i].y;&lt;br /&gt;+			iz = i_vertex3d[i].z;&lt;br /&gt;+&lt;br /&gt;+			const double cp00 = cp.m00;&lt;br /&gt;+			const double cp01 = cp.m01;&lt;br /&gt;+			const double cp02 = cp.m02;&lt;br /&gt;+			const double cp11 = cp.m11;&lt;br /&gt;+			const double cp12 = cp.m12;&lt;br /&gt;+&lt;br /&gt;+			double X0 = (cp00 * (-sina * sinb * ix - cosa * iy + sina * cosb * iz) + cp01 * (ix * cosb + sinb * iz));&lt;br /&gt;+			double X1 = (cp01 * (sina * ix * sinb + cosa * iy - sina * iz * cosb) + cp00 * (cosb * ix + sinb * iz));&lt;br /&gt;+			double X2 = cp00 * i_trans.x + cp01 * (i_trans.y) + cp02 * (-cosa * sinb) * ix + cp02 * (sina) * iy + cp02 * ((cosb * cosa) * iz + i_trans.z);&lt;br /&gt;+			double Y0 = cp11 * (ix * cosb + sinb * iz);&lt;br /&gt;+			double Y1 = cp11 * (sina * ix * sinb + cosa * iy - sina * iz * cosb);&lt;br /&gt;+			double Y2 = (cp11 * i_trans.y + cp12 * (-cosa * sinb) * ix + cp12 * ((sina) * iy + (cosb * cosa) * iz + i_trans.z));&lt;br /&gt;+			double H0 = 0;&lt;br /&gt;+			double H1 = 0;&lt;br /&gt;+			double H2 = ((-cosa * sinb) * ix + (sina) * iy + (cosb * cosa) * iz + i_trans.z);&lt;br /&gt;+&lt;br /&gt;+			double VX = i_vertex2d[i].x;&lt;br /&gt;+			double VY = i_vertex2d[i].y;&lt;br /&gt;+&lt;br /&gt;+			double a, b, c, d, e, f;&lt;br /&gt;+			a = (VX * H0 - X0);&lt;br /&gt;+			b = (VX * H1 - X1);&lt;br /&gt;+			c = (VX * H2 - X2);&lt;br /&gt;+			d = (VY * H0 - Y0);&lt;br /&gt;+			e = (VY * H1 - Y1);&lt;br /&gt;+			f = (VY * H2 - Y2);&lt;br /&gt;+&lt;br /&gt;+			L += d * e + a * b;&lt;br /&gt;+			N += d * d + a * a;&lt;br /&gt;+			J += d * f + a * c;&lt;br /&gt;+			M += e * e + b * b;&lt;br /&gt;+			K += e * f + b * c;&lt;br /&gt;+			O += f * f + c * c;&lt;br /&gt;+&lt;br /&gt;+		}&lt;br /&gt;+		L *=2;&lt;br /&gt;+		J *=2;&lt;br /&gt;+		K *=2;&lt;br /&gt;+&lt;br /&gt;+		return getMinimumErrorAngleFromParam(L,J, K, M, N, O, i_hint_angle);&lt;br /&gt;+	}&lt;br /&gt;+	void NyARPartialDifferentiationOptimize::modifyMatrix(NyARDoubleMatrix33&amp;amp; io_rot,const TNyARDoublePoint3d&amp;amp; i_trans,const TNyARDoublePoint3d i_vertex3d[],const TNyARDoublePoint2d i_vertex2d[], int i_number_of_vertex)&lt;br /&gt;+	{&lt;br /&gt;+		TSinCosValue angles_in[3];&lt;br /&gt;+		TNyARDoublePoint3d ang;&lt;br /&gt;+&lt;br /&gt;+		// ZXYͮÌsin/cosӬðҊЯ&lt;br /&gt;+		rotation2Sincos_ZXY(io_rot, angles_in,ang);&lt;br /&gt;+		ang.x += optimizeParamX(angles_in[1], angles_in[2], i_trans, i_vertex3d, i_vertex2d, i_number_of_vertex, ang.x);&lt;br /&gt;+		ang.y += optimizeParamY(angles_in[0], angles_in[2], i_trans, i_vertex3d, i_vertex2d, i_number_of_vertex, ang.y);&lt;br /&gt;+		ang.z += optimizeParamZ(angles_in[0], angles_in[1], i_trans, i_vertex3d, i_vertex2d, i_number_of_vertex, ang.z);&lt;br /&gt;+		io_rot.setZXYAngle(ang.x, ang.y, ang.z);&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	/**&lt;br /&gt;+	* ćÉÌħª΅ϬÉÈéԟðӾé&lt;br /&gt;+	*/&lt;br /&gt;+	double NyARPartialDifferentiationOptimize::getMinimumErrorAngleFromParam(double iL,double iJ, double iK, double iM, double iN, double iO, double i_hint_angle)&lt;br /&gt;+	{&lt;br /&gt;+		double sin_table[4];&lt;br /&gt;+&lt;br /&gt;+		double M = (iN - iM)/iL;&lt;br /&gt;+		double J = iJ/iL;&lt;br /&gt;+		double K = -iK/iL;&lt;br /&gt;+&lt;br /&gt;+		// İÉÁĞ©çsinĥĵËðάЬ&lt;br /&gt;+		// (- 4*M^2-4)*x^4 + (4*K- 4*J*M)*x^3 + (4*M^2 -(K^2- 4)- J^2)*x^2 +(4*J*M- 2*K)*x + J^2-1 = 0&lt;br /&gt;+		int number_of_sin = NyAREquationSolver::solve4Equation(-4 * M * M - 4, 4 * K - 4 * J * M, 4 * M * M - (K * K - 4) - J * J, 4 * J * M - 2 * K, J * J - 1, sin_table);&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+		// ΅ϬӬÑ͂ðӾÄ¨­&lt;br /&gt;+		double min_ang_0 = DBL_MAX;&lt;br /&gt;+		double min_ang_1 = DBL_MAX;&lt;br /&gt;+		double min_err_0 = DBL_MAX;&lt;br /&gt;+		double min_err_1 = DBL_MAX;&lt;br /&gt;+		for (int i = 0; i &amp;lt; number_of_sin; i++) {&lt;br /&gt;+			// +-cos_v[i]ªҸԟͳ֢&lt;br /&gt;+			double sin_rt = sin_table[i];&lt;br /&gt;+			double cos_rt = sqrt(1 - (sin_rt * sin_rt));&lt;br /&gt;+			// cosðЃ՜շժήÅ0É̟¢ֻªгʰ&lt;br /&gt;+			// 0 = 2*cos(x)*sin(x)*M - sin(x)^2 + cos(x)^2 + sin(x)*K + cos(x)*J&lt;br /&gt;+			double a1 = 2 * cos_rt * sin_rt * M + sin_rt * (K - sin_rt) + cos_rt * (cos_rt + J);&lt;br /&gt;+			double a2 = 2 * (-cos_rt) * sin_rt * M + sin_rt * (K - sin_rt) + (-cos_rt) * ((-cos_rt) + J);&lt;br /&gt;+			// ѢҎӬÉÈ¨µÄўÌcosӬðӾÄ¨­&lt;br /&gt;+			a1 = a1 &amp;lt; 0 ? -a1 : a1;&lt;br /&gt;+			a2 = a2 &amp;lt; 0 ? -a2 : a2;&lt;br /&gt;+			cos_rt = (a1 &amp;lt; a2) ? cos_rt : -cos_rt;&lt;br /&gt;+			double ang = atan2(sin_rt, cos_rt);&lt;br /&gt;+			// ćÉӬðͶϚ&lt;br /&gt;+			double err = iN * sin_rt * sin_rt + (iL*cos_rt + iJ) * sin_rt + iM * cos_rt * cos_rt + iK * cos_rt + iO;&lt;br /&gt;+			// ΅ϬÌÑ͂ðˬӾ·é&lt;br /&gt;+			if (min_err_0 &amp;gt; err) {&lt;br /&gt;+				min_err_1 = min_err_0;&lt;br /&gt;+				min_ang_1 = min_ang_0;&lt;br /&gt;+				min_err_0 = err;&lt;br /&gt;+				min_ang_0 = ang;&lt;br /&gt;+			} else if (min_err_1 &amp;gt; err) {&lt;br /&gt;+				min_err_1 = err;&lt;br /&gt;+				min_ang_1 = ang;&lt;br /&gt;+			}&lt;br /&gt;+		}&lt;br /&gt;+		// [0]ðĥĘħ&lt;br /&gt;+		double gap_0;&lt;br /&gt;+		gap_0 = min_ang_0 - i_hint_angle;&lt;br /&gt;+		if (gap_0 &amp;gt; NyAR_PI) {&lt;br /&gt;+			gap_0 = (min_ang_0 - NyAR_PI * 2) - i_hint_angle;&lt;br /&gt;+		} else if (gap_0 &amp;lt; -NyAR_PI) {&lt;br /&gt;+			gap_0 = (min_ang_0 + NyAR_PI * 2) - i_hint_angle;&lt;br /&gt;+		}&lt;br /&gt;+		// [1]ðĥĘħ&lt;br /&gt;+		double gap_1;&lt;br /&gt;+		gap_1 = min_ang_1 - i_hint_angle;&lt;br /&gt;+		if (gap_1 &amp;gt; NyAR_PI) {&lt;br /&gt;+			gap_1 = (min_ang_1 - NyAR_PI * 2) - i_hint_angle;&lt;br /&gt;+		} else if (gap_1 &amp;lt; -NyAR_PI) {&lt;br /&gt;+			gap_1 = (min_ang_1 + NyAR_PI * 2) - i_hint_angle;&lt;br /&gt;+		}&lt;br /&gt;+		return abs(gap_1) &amp;lt; abs(gap_0) ? gap_1 : gap_0;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+}&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARDoubleMatrix.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARDoubleMatrix.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARDoubleMatrix.cpp	(revision 335)&lt;br /&gt;@@ -1,28 +1,26 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt; #include &amp;quot;INyARDoubleMatrix.h&amp;quot;&lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARRaster.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARRaster.cpp	(revision 272)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/INyARRaster.cpp	(revision 335)&lt;br /&gt;@@ -1,29 +1,28 @@&lt;br /&gt; /* &lt;br /&gt;- * PROJECT: NyARToolkitCPP&lt;br /&gt;- * --------------------------------------------------------------------------------&lt;br /&gt;- *&lt;br /&gt;- * The NyARToolkitCS is C++ version NyARToolkit class library.&lt;br /&gt;- * &lt;br /&gt;- * Copyright (C)2008 R.Iizuka&lt;br /&gt;- *&lt;br /&gt;- * This program is free software; you can redistribute it and/or&lt;br /&gt;- * modify it under the terms of the GNU General Public License&lt;br /&gt;- * as published by the Free Software Foundation; either version 2&lt;br /&gt;- * of the License, or (at your option) any later version.&lt;br /&gt;- * &lt;br /&gt;- * This program is distributed in the hope that it will be useful,&lt;br /&gt;- * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;- * GNU General Public License for more details.&lt;br /&gt;- * &lt;br /&gt;- * You should have received a copy of the GNU General Public License&lt;br /&gt;- * along with this framework; if not, write to the Free Software&lt;br /&gt;- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;- * &lt;br /&gt;- * For further information please contact.&lt;br /&gt;- *	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;- *	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt;&lt;br /&gt;- * &lt;br /&gt;- */&lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+&lt;br /&gt; #include &amp;quot;nyarcore.h&amp;quot;&lt;br /&gt; &lt;br /&gt;Index: D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/SquareContourDetector.cpp&lt;br /&gt;===================================================================&lt;br /&gt;--- D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/SquareContourDetector.cpp	(revision 0)&lt;br /&gt;+++ D:/project.sorceforge/NyARToolkitCPP/trunk/src/core/SquareContourDetector.cpp	(revision 335)&lt;br /&gt;@@ -0,0 +1,231 @@&lt;br /&gt;+/* &lt;br /&gt;+* PROJECT: NyARToolkitCPP&lt;br /&gt;+* --------------------------------------------------------------------------------&lt;br /&gt;+*&lt;br /&gt;+* The NyARToolkitCPP is C++ version NyARToolkit class library.&lt;br /&gt;+* Copyright (C)2008-2009 Ryo Iizuka&lt;br /&gt;+*&lt;br /&gt;+* This program is free software: you can redistribute it and/or modify&lt;br /&gt;+* it under the terms of the GNU General Public License as published by&lt;br /&gt;+* the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;+* (at your option) any later version.&lt;br /&gt;+* &lt;br /&gt;+* This program is distributed in the hope that it will be useful,&lt;br /&gt;+* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;+* GNU General Public License for more details.&lt;br /&gt;+*&lt;br /&gt;+* You should have received a copy of the GNU General Public License&lt;br /&gt;+* along with this program.  If not, see &amp;lt;&lt;a href=&quot;http://www.gnu.org/licenses/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://www.gnu.org/licenses/&lt;/a&gt;&amp;gt;.&lt;br /&gt;+* &lt;br /&gt;+* For further information please contact.&lt;br /&gt;+*	&lt;a href=&quot;http://nyatla.jp/nyatoolkit/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://nyatla.jp/nyatoolkit/&lt;/a&gt;&lt;br /&gt;+*	&amp;lt;airmail(at)ebony.plala.or.jp&amp;gt; or &amp;lt;nyatla(at)nyatla.jp&amp;gt;&lt;br /&gt;+* &lt;br /&gt;+*/&lt;br /&gt;+#include &amp;quot;SquareContourDetector.h&amp;quot;&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+#include &amp;quot;NyARObserv2IdealMap.h&amp;quot;&lt;br /&gt;+#include &amp;quot;NyARPca2d_MatrixPCA_O2.h&amp;quot;&lt;br /&gt;+&lt;br /&gt;+namespace NyARToolkitCPP&lt;br /&gt;+{&lt;br /&gt;+#define VERTEX_FACTOR 1.0// Ѽ̟ЯÌĴĀĎĞ&lt;br /&gt;+&lt;br /&gt;+	SquareContourDetector::SquareContourDetector(const TNyARIntSize&amp;amp; i_size,const NyARCameraDistortionFactor&amp;amp; i_distfactor_ref)&lt;br /&gt;+	{&lt;br /&gt;+		//٣ÝͶϚĥĵËðάéÆ8*width/height*2Ì،ɦðЁկµÜ·&lt;br /&gt;+		//،ɦðϦè½­È¢Ъ͇Íi_dist_factor_refÌӬð»ÌÜÜϧÁÄ­¾³¢&lt;br /&gt;+		this-&amp;gt;_dist_factor = new NyARObserv2IdealMap(i_distfactor_ref,i_size);&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+		// ؖ˳įĢĴĀÍҸԟ֏ʷð·éÌÅؖ˳įĢĴĀÌÑջϦé&lt;br /&gt;+		this-&amp;gt;_pca=new NyARPca2d_MatrixPCA_O2();&lt;br /&gt;+		this-&amp;gt;_xpos=new double[i_size.w+i_size.h];//΅ҥ֓ҷÍthis._width+this._height&lt;br /&gt;+		this-&amp;gt;_ypos=new double[i_size.w+i_size.h];//΅ҥ֓ҷÍthis._width+this._height&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+	SquareContourDetector::~SquareContourDetector()&lt;br /&gt;+	{&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_dist_factor);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_pca);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_xpos);&lt;br /&gt;+		NyAR_SAFE_DELETE(this-&amp;gt;_ypos);&lt;br /&gt;+		return;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+	bool SquareContourDetector::coordToSquare(const int* i_xcoord,const int* i_ycoord,int i_st_index,int i_coord_num,int i_label_area,NyARSquare&amp;amp; o_square)&lt;br /&gt;+	{&lt;br /&gt;+&lt;br /&gt;+		int (&amp;amp;mkvertex)[5] = this-&amp;gt;__detectMarker_mkvertex;&lt;br /&gt;+&lt;br /&gt;+		// ҸԟЮֱðϦӾ&lt;br /&gt;+		if (!getSquareVertex(i_xcoord, i_ycoord, i_st_index, i_coord_num, i_label_area, mkvertex)) {&lt;br /&gt;+			// ҸԟÌϦӾªЯ׈È©Á½ÌÅժ˼&lt;br /&gt;+			return false;&lt;br /&gt;+		}&lt;br /&gt;+		// ĽĊð̟Я&lt;br /&gt;+		if (!getSquareLine(mkvertex, i_xcoord, i_ycoord, o_square)){&lt;br /&gt;+			// ̩͠ªЬקµÈ©Á½&lt;br /&gt;+			return false;&lt;br /&gt;+		}&lt;br /&gt;+		return true;&lt;br /&gt;+	}&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+	bool SquareContourDetector::getSquareLine(const int* i_mkvertex,const int* i_xcoord,const int* i_ycoord, NyARSquare&amp;amp; o_square)&lt;br /&gt;+	{&lt;br /&gt;+		TNyARLinear* l_line = o_square.line;&lt;br /&gt;+		NyARDoubleMatrix22&amp;amp; evec=this-&amp;gt;__getSquareLine_evec;&lt;br /&gt;+		TNyARDoublePoint2d mean;&lt;br /&gt;+		TNyARDoublePoint2d ev;&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;+		for (int i = 0; i &amp;lt; 4; i++) {&lt;br /&gt;+			const double w1 = (double) (i_mkvertex[i + 1] - i_mkvertex[i] + 1) * 0.05 + 0.5;&lt;br /&gt;+			const int st = (int) (i_mkvertex[i] + w1);&lt;br /&gt;+			const int ed = (int) (i_mkvertex[i + 1] - w1);&lt;br /&gt;+			const int n = ed - st + 1;&lt;br /&gt;+			if (n &amp;lt; 2) {&lt;br /&gt;+				// nª2ɈɺÅmatrix.PCAðͶϚ·é±ÆÍÅ«È¢ÌÅćÉ&lt;br /&gt;+				return false;&lt;br /&gt;+			}&lt;br /&gt;+			//պرάЬ&lt;br /&gt;+			this-&amp;gt;_dist_factor-&amp;gt;observ2IdealBatch(i_xcoord, i_ycoord, st, n,this-&amp;gt;_xpos,this-&amp;gt;_ypos);&lt;br /&gt;+&lt;br /&gt;+			//ϥЬժժэ·é&lt;br /&gt;+			this-&amp;gt;_pca-&amp;gt;pca(this-&amp;gt;_xpos,this-&amp;gt;_ypos,n,evec, ev,mean);&lt;br /&gt;+			TNyARLinear&amp;amp; l_line_i = l_line[i];&lt;br /&gt;+			l_line_i.run = evec.m01;// line[i][0] = evec-&amp;gt;m[1];&lt;br /&gt;+			l_line_i.rise = -evec.m00;// line[i][1] = -evec-&amp;gt;m[0];&lt;br /&gt;+			l_line_i.intercept = -(l_line_i.run * mean.x + l_line_i.rise * mean.y);// line[i][2] = -(line[i][0]*mean-&amp;gt;v[0] + line[i][1]*mean-&amp;gt;v[1]);&lt;br /&gt;+		}&lt;br /&gt;+&lt;br /&gt;+		TNyARDoublePoint2d* l_sqvertex = o_square.sqvertex;&lt;br /&gt;+		TNyARIntPoint2d* l_imvertex = o_square.imvertex;&lt;br /&gt;+		for (int i = 0; i &amp;lt; 4; i++) {&lt;br /&gt;+			const TNyARLinear&amp;amp; l_line_i = l_line[i];&lt;br /&gt;+			const TNyARLinear&amp;amp; l_line_2 = l_line[(i + 3) % 4];&lt;br /&gt;+			const double w1 = l_line_2.run * l_line_i.rise - l_line_i.run * l_line_2.rise;&lt;br /&gt;+			if (w1 == 0.0) {&lt;br /&gt;+				return false;&lt;br /&gt;+			}&lt;br /&gt;+			l_sqvertex[i].x = (l_line_2.rise * l_line_i.intercept - l_line_i.rise * l_line_2.intercept) / w1;&lt;br /&gt;+			l_sqvertex[i].y = (l_line_i.run * l_line_2.intercept - l_line_2.run * l_line_i.intercept) / w1;&lt;br /&gt;+			// ҸԟăÓĦĎĘ©çҸԟ΀֗ðӾÄ֛Ѷ&lt;br /&gt;+			l_imvertex[i].x = i_xcoord[i_mkvertex[i]];&lt;br /&gt;+			l_imvertex[i].y = i_ycoord[i_mkvertex[i]];&lt;br /&gt;+		}&lt;br /&gt;+		return true;&lt;br /&gt;+	}	&lt;br /&gt;+	bool SquareContourDetector::getSquareVertex(const int* i_x_coord,const int* i_y_coord, int i_vertex1_index, int i_coord_num, int i_area, int* o_vertex)&lt;br /&gt;+	{&lt;br /&gt;+		NyARVertexCounter&amp;amp; wv1 = this-&amp;gt;__getSquareVertex_wv1;&lt;br /&gt;+		NyARVertexCounter&amp;amp; wv2 = this-&amp;gt;__getSquareVertex_wv2;&lt;br /&gt;+		int end_of_coord = i_vertex1_index + i_coord_num - 1;&lt;br /&gt;+		int sx = i_x_coord[i_vertex1_index];// sx = marker_info2-&amp;gt;x_coord[0];&lt;br /&gt;+		int sy = i_y_coord[i_vertex1_index];// sy = marker_info2-&amp;gt;y_coord[0];&lt;br /&gt;+		int dmax = 0;&lt;br /&gt;+		int v1 = i_vertex1_index;&lt;br /&gt;+		for (int i = 1 + i_vertex1_index; i &amp;lt; end_of_coord; i++) {// for(i=1;i&amp;lt;marker_info2-&amp;gt;coord_num-1;i++)&lt;br /&gt;+			// {&lt;br /&gt;+			const int d = (i_x_coord[i] - sx) * (i_x_coord[i] - sx) + (i_y_coord[i] - sy) * (i_y_coord[i] - sy);&lt;br /&gt;+			if (d &amp;gt; dmax) {&lt;br /&gt;+				dmax = d;&lt;br /&gt;+				v1 = i;&lt;br /&gt;+			}&lt;br /&gt;+		}&lt;br /&gt;+		const double thresh = (i_area / 0.75) * 0.01 * VERTEX_FACTOR;&lt;br /&gt;+&lt;br /&gt;+		o_vertex[0] = i_vertex1_index;&lt;br /&gt;+&lt;br /&gt;+		if (!wv1.getVertex(i_x_coord, i_y_coord, i_vertex1_index, v1, thresh)) { // if(get_vertex(marker_info2-&amp;gt;x_coord,marker_info2-&amp;gt;y_coord,0,v1,thresh,wv1,&amp;amp;wvnum1)&amp;lt;&lt;br /&gt;+			// 0 ) {&lt;br /&gt;+			return false;&lt;br /&gt;+		}&lt;br /&gt;+		i
