OSDN Git Service

b3a4e93e454193eca0a1c213a5599c2a9b8501ce
[nyartoolkit-and/nyartoolkit-and.git] / src / jp / nyatla / nyartoolkit / core / transmat / rotmatrix / NyARRotMatrix.java
1 /* \r
2  * PROJECT: NyARToolkit\r
3  * --------------------------------------------------------------------------------\r
4  * This work is based on the original ARToolKit developed by\r
5  *   Hirokazu Kato\r
6  *   Mark Billinghurst\r
7  *   HITLab, University of Washington, Seattle\r
8  * http://www.hitl.washington.edu/artoolkit/\r
9  *\r
10  * The NyARToolkit is Java version ARToolkit class library.\r
11  * Copyright (C)2008 R.Iizuka\r
12  *\r
13  * This program is free software; you can redistribute it and/or\r
14  * modify it under the terms of the GNU General Public License\r
15  * as published by the Free Software Foundation; either version 2\r
16  * of the License, or (at your option) any later version.\r
17  * \r
18  * This program is distributed in the hope that it will be useful,\r
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
21  * GNU General Public License for more details.\r
22  * \r
23  * You should have received a copy of the GNU General Public License\r
24  * along with this framework; if not, write to the Free Software\r
25  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
26  * \r
27  * For further information please contact.\r
28  *      http://nyatla.jp/nyatoolkit/\r
29  *      <airmail(at)ebony.plala.or.jp>\r
30  * \r
31  */\r
32 package jp.nyatla.nyartoolkit.core.transmat.rotmatrix;\r
33 \r
34 import jp.nyatla.nyartoolkit.NyARException;\r
35 import jp.nyatla.nyartoolkit.core.transmat.NyARTransMatResult;\r
36 import jp.nyatla.nyartoolkit.core.types.*;\r
37 import jp.nyatla.nyartoolkit.core.types.matrix.NyARDoubleMatrix33;\r
38 /**\r
39  * 回転行列計算用の、3x3行列\r
40  *\r
41  */\r
42 public abstract class NyARRotMatrix extends NyARDoubleMatrix33\r
43 {       \r
44         /**\r
45          * NyARTransMatResultの内容からNyARRotMatrixを復元します。\r
46          * @param i_prev_result\r
47          */\r
48         public abstract void initRotByPrevResult(NyARTransMatResult i_prev_result);\r
49         public abstract void initRotBySquare(final NyARLinear[] i_linear,final NyARDoublePoint2d[] i_sqvertex) throws NyARException;\r
50         /**\r
51          * int arGetAngle( double rot[3][3], double *wa, double *wb, double *wc )\r
52          * Optimize:2008.04.20:STEP[481→433]\r
53          * 3x3変換行列から、回転角を復元して返します。\r
54          * @param o_angle\r
55          * @return\r
56          */\r
57         public abstract void getAngle(final NyARDoublePoint3d o_angle);\r
58         /**\r
59          * 回転角から回転行列を計算してセットします。\r
60          * @param i_x\r
61          * @param i_y\r
62          * @param i_z\r
63          */\r
64         public abstract void setAngle(final double i_x, final double i_y, final double i_z);\r
65         /**\r
66          * i_in_pointを変換行列で座標変換する。\r
67          * @param i_in_point\r
68          * @param i_out_point\r
69          */     \r
70         public abstract void getPoint3d(final NyARDoublePoint3d i_in_point,final NyARDoublePoint3d i_out_point);\r
71         /**\r
72          * 複数の頂点を一括して変換する\r
73          * @param i_in_point\r
74          * @param i_out_point\r
75          * @param i_number_of_vertex\r
76          */\r
77         public abstract void getPoint3dBatch(final NyARDoublePoint3d[] i_in_point,NyARDoublePoint3d[] i_out_point,int i_number_of_vertex);\r
78 }\r