+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<classpath>\r
- <classpathentry kind="src" path=""/>\r
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>\r
- <classpathentry combineaccessrules="false" kind="src" path="/NyARToolKit"/>\r
- <classpathentry combineaccessrules="false" kind="src" path="/NyARToolkit.utils.jmf"/>\r
- <classpathentry kind="lib" path="C:/Program Files (x86)/JMF2.1.1e/lib/jmf.jar"/>\r
- <classpathentry kind="output" path=""/>\r
-</classpath>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<projectDescription>\r
- <name>NyARToolkit.sample.jmf</name>\r
- <comment></comment>\r
- <projects>\r
- <project>NyARToolKit</project>\r
- </projects>\r
- <buildSpec>\r
- <buildCommand>\r
- <name>org.eclipse.jdt.core.javabuilder</name>\r
- <arguments>\r
- </arguments>\r
- </buildCommand>\r
- </buildSpec>\r
- <natures>\r
- <nature>org.eclipse.jdt.core.javanature</nature>\r
- </natures>\r
-</projectDescription>\r
import java.awt.*;\r
import javax.media.Buffer;\r
import javax.media.opengl.*;\r
+\r
import com.sun.opengl.util.*;\r
import jp.nyatla.nyartoolkit.*;\r
import jp.nyatla.nyartoolkit.core.*;\r
import jp.nyatla.nyartoolkit.jogl.utils.*;\r
\r
/**\r
- * simpleLiteと同じようなテストプログラム 出来る限りARToolKitのサンプルと似せて作ってあります。 最も一致する"Hiro"マーカーを一つ選択して、その上に立方体を表示します。\r
+ * simpleLiteと同じようなテストプログラム 出来る限りARToolKitのサンプルと似せて作ってあります。 \r
+ * 最も一致する"Hiro"マーカーを一つ選択して、その上に立方体を表示します。\r
* \r
*/\r
public class JavaSimpleLite implements GLEventListener, JmfCaptureListener\r
\r
private GL _gl;\r
\r
- private NyARGLUtil _glnya;\r
-\r
// NyARToolkit関係\r
private NyARSingleDetectMarker _nya;\r
\r
private Object _sync_object=new Object();\r
private double[] _camera_projection = new double[16];\r
\r
- /**\r
- * 立方体を書く\r
- * \r
- */\r
- void drawCube()\r
- {\r
- // Colour cube data.\r
- int polyList = 0;\r
- float fSize = 0.5f;// マーカーサイズに対して0.5倍なので、4cmの立方体\r
- int f, i;\r
- float[][] cube_vertices = new float[][] { { 1.0f, 1.0f, 1.0f }, { 1.0f, -1.0f, 1.0f }, { -1.0f, -1.0f, 1.0f }, { -1.0f, 1.0f, 1.0f }, { 1.0f, 1.0f, -1.0f }, { 1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f }, { -1.0f, 1.0f, -1.0f } };\r
- float[][] cube_vertex_colors = new float[][] { { 1.0f, 1.0f, 1.0f }, { 1.0f, 1.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 1.0f, 1.0f }, { 1.0f, 0.0f, 1.0f }, { 1.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 1.0f } };\r
- int cube_num_faces = 6;\r
- short[][] cube_faces = new short[][] { { 3, 2, 1, 0 }, { 2, 3, 7, 6 }, { 0, 1, 5, 4 }, { 3, 0, 4, 7 }, { 1, 2, 6, 5 }, { 4, 5, 6, 7 } };\r
-\r
- if (polyList == 0) {\r
- polyList = _gl.glGenLists(1);\r
- _gl.glNewList(polyList, GL.GL_COMPILE);\r
- _gl.glBegin(GL.GL_QUADS);\r
- for (f = 0; f < cube_num_faces; f++)\r
- for (i = 0; i < 4; i++) {\r
- _gl.glColor3f(cube_vertex_colors[cube_faces[f][i]][0], cube_vertex_colors[cube_faces[f][i]][1], cube_vertex_colors[cube_faces[f][i]][2]);\r
- _gl.glVertex3f(cube_vertices[cube_faces[f][i]][0] * fSize, cube_vertices[cube_faces[f][i]][1] * fSize, cube_vertices[cube_faces[f][i]][2] * fSize);\r
- }\r
- _gl.glEnd();\r
- _gl.glColor3f(0.0f, 0.0f, 0.0f);\r
- for (f = 0; f < cube_num_faces; f++) {\r
- _gl.glBegin(GL.GL_LINE_LOOP);\r
- for (i = 0; i < 4; i++)\r
- _gl.glVertex3f(cube_vertices[cube_faces[f][i]][0] * fSize, cube_vertices[cube_faces[f][i]][1] * fSize, cube_vertices[cube_faces[f][i]][2] * fSize);\r
- _gl.glEnd();\r
- }\r
- _gl.glEndList();\r
- }\r
-\r
- _gl.glPushMatrix(); // Save world coordinate system.\r
- _gl.glTranslatef(0.0f, 0.0f, 0.5f); // Place base of cube on marker surface.\r
- _gl.glRotatef(0.0f, 0.0f, 0.0f, 1.0f); // Rotate about z axis.\r
- _gl.glDisable(GL.GL_LIGHTING); // Just use colours.\r
- _gl.glCallList(polyList); // Draw the cube.\r
- _gl.glPopMatrix(); // Restore world coordinate system.\r
-\r
- }\r
-\r
public JavaSimpleLite(NyARParam i_param, NyARCode i_ar_code) throws NyARException\r
{\r
this._ar_param = i_param;\r
\r
- Frame frame = new Frame("Java simpleLite with NyARToolkit");\r
+ Frame frame = new Frame("NyARToolkit["+this.getClass().getName()+"]");\r
\r
\r
// キャプチャの準備\r
}\r
this._capture.setOnCapture(this);\r
//JMFラスタオブジェクト\r
- this._cap_image = new JmfNyARRaster_RGB(this._ar_param, this._capture.getCaptureFormat());\r
+ this._cap_image = new JmfNyARRaster_RGB(this._capture.getCaptureFormat());\r
\r
// NyARToolkitの準備\r
this._nya = new NyARSingleDetectMarker(this._ar_param, i_ar_code, 80.0,this._cap_image.getBufferType());\r
- this._nya.setContinueMode(false);// ここをtrueにすると、transMatContinueモード(History計算)になります。\r
+ this._nya.setContinueMode(true);// ここをtrueにすると、transMatContinueモード(History計算)になります。\r
\r
// 3Dを描画するコンポーネント\r
GLCanvas canvas = new GLCanvas();\r
this._gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);\r
// NyARToolkitの準備\r
try {\r
- // NyARToolkit用の支援クラス\r
- _glnya = new NyARGLUtil(_gl);\r
// キャプチャ開始\r
_capture.start();\r
} catch (Exception e) {\r
e.printStackTrace();\r
}\r
- // カメラパラメータの計算\r
- this._glnya.toCameraFrustumRH(this._ar_param,this._camera_projection);\r
+ // カメラパラメータの計算(1mm=1.0)\r
+ NyARGLUtil.toCameraFrustumRH(this._ar_param,1,10,10000,this._camera_projection);\r
this._animator = new Animator(drawable);\r
this._animator.start();\r
return;\r
this._gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); // Clear the buffers for new frame.\r
try{\r
synchronized(this._sync_object){\r
- this._glnya.drawBackGround(this._cap_image, 1.0); \r
+ NyARGLDrawUtil.drawBackGround(this._gl,this._cap_image, 1.0); \r
// マーカーがあれば、立方体を描画\r
if (this._is_marker_exist){\r
// マーカーの一致度を調査するならば、ここでnya.getConfidence()で一致度を調べて下さい。\r
// Projection transformation.\r
- _gl.glMatrixMode(GL.GL_PROJECTION);\r
- _gl.glLoadMatrixd(_camera_projection, 0);\r
- _gl.glMatrixMode(GL.GL_MODELVIEW);\r
+ this._gl.glMatrixMode(GL.GL_PROJECTION);\r
+ this._gl.glLoadMatrixd(_camera_projection, 0);\r
+ this._gl.glMatrixMode(GL.GL_MODELVIEW);\r
// Viewing transformation.\r
- _gl.glLoadIdentity();\r
+ this._gl.glLoadIdentity();\r
// 変換行列を取得\r
- _nya.getTransmationMatrix(transmat_result);\r
+ this._nya.getTransmationMatrix(transmat_result);\r
// 変換行列をOpenGL形式に変換\r
- _glnya.toCameraViewRH(transmat_result, __display_wk);\r
- _gl.glLoadMatrixd(__display_wk, 0);\r
- \r
- // All other lighting and geometry goes here.\r
- drawCube();\r
+ NyARGLUtil.toCameraViewRH(transmat_result,1, this.__display_wk);\r
+ this._gl.glLoadMatrixd(this.__display_wk, 0); \r
+ //立方体を描画\r
+ this._gl.glPushMatrix(); // Save world coordinate system.\r
+ this._gl.glTranslatef(0.0f, 0.1f,20); // Place base of cube on marker surface.\r
+ this._gl.glDisable(GL.GL_LIGHTING); // Just use colours.\r
+ NyARGLDrawUtil.drawColorCube(this._gl,40);\r
+ this._gl.glPopMatrix(); // Restore world coordinate system.\r
}\r
}\r
Thread.sleep(1);// タスク実行権限を一旦渡す\r
\r
import java.awt.event.*;\r
import java.awt.*;\r
+\r
import javax.media.*;\r
import javax.media.opengl.*;\r
+\r
import com.sun.opengl.util.Animator;\r
import jp.nyatla.nyartoolkit.core.param.*;\r
import jp.nyatla.nyartoolkit.core.transmat.NyARTransMatResult;\r
\r
private GL _gl;\r
\r
- private NyARGLUtil _glnya;\r
-\r
//NyARToolkit関係\r
private NyARDetectMarker _nya;\r
\r
private NyARParam _ar_param;\r
private double[] _camera_projection=new double[16];\r
- /**\r
- * 立方体を書く\r
- *\r
- */\r
- void drawCube()\r
- {\r
- // Colour cube data.\r
- int polyList = 0;\r
- float fSize = 0.5f;//マーカーサイズに対して0.5倍なので、4cmの立方体\r
- int f, i;\r
- float[][] cube_vertices = new float[][] { { 1.0f, 1.0f, 1.0f }, { 1.0f, -1.0f, 1.0f }, { -1.0f, -1.0f, 1.0f }, { -1.0f, 1.0f, 1.0f }, { 1.0f, 1.0f, -1.0f }, { 1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f }, { -1.0f, 1.0f, -1.0f } };\r
- float[][] cube_vertex_colors = new float[][] { { 1.0f, 1.0f, 1.0f }, { 1.0f, 1.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 1.0f, 1.0f }, { 1.0f, 0.0f, 1.0f }, { 1.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 1.0f } };\r
- int cube_num_faces = 6;\r
- short[][] cube_faces = new short[][] { { 3, 2, 1, 0 }, { 2, 3, 7, 6 }, { 0, 1, 5, 4 }, { 3, 0, 4, 7 }, { 1, 2, 6, 5 }, { 4, 5, 6, 7 } };\r
-\r
- if (polyList == 0) {\r
- polyList = _gl.glGenLists(1);\r
- _gl.glNewList(polyList, GL.GL_COMPILE);\r
- _gl.glBegin(GL.GL_QUADS);\r
- for (f = 0; f < cube_num_faces; f++)\r
- for (i = 0; i < 4; i++) {\r
- _gl.glColor3f(cube_vertex_colors[cube_faces[f][i]][0], cube_vertex_colors[cube_faces[f][i]][1], cube_vertex_colors[cube_faces[f][i]][2]);\r
- _gl.glVertex3f(cube_vertices[cube_faces[f][i]][0] * fSize, cube_vertices[cube_faces[f][i]][1] * fSize, cube_vertices[cube_faces[f][i]][2] * fSize);\r
- }\r
- _gl.glEnd();\r
- _gl.glColor3f(0.0f, 0.0f, 0.0f);\r
- for (f = 0; f < cube_num_faces; f++) {\r
- _gl.glBegin(GL.GL_LINE_LOOP);\r
- for (i = 0; i < 4; i++)\r
- _gl.glVertex3f(cube_vertices[cube_faces[f][i]][0] * fSize, cube_vertices[cube_faces[f][i]][1] * fSize, cube_vertices[cube_faces[f][i]][2] * fSize);\r
- _gl.glEnd();\r
- }\r
- _gl.glEndList();\r
- }\r
\r
- _gl.glPushMatrix(); // Save world coordinate system.\r
- _gl.glTranslatef(0.0f, 0.0f, 0.5f); // Place base of cube on marker surface.\r
- _gl.glRotatef(0.0f, 0.0f, 0.0f, 1.0f); // Rotate about z axis.\r
- _gl.glDisable(GL.GL_LIGHTING); // Just use colours.\r
- _gl.glCallList(polyList); // Draw the cube.\r
- _gl.glPopMatrix(); // Restore world coordinate system.\r
-\r
- }\r
\r
public JavaSimpleLite2()\r
{\r
- Frame frame = new Frame("Java simpleLite with NyARToolkit");\r
+ Frame frame = new Frame("NyARToolkit["+this.getClass().getName()+"]");\r
\r
// 3Dを描画するコンポーネント\r
GLCanvas canvas = new GLCanvas();\r
public void init(GLAutoDrawable drawable)\r
{\r
_gl = drawable.getGL();\r
+ this._gl.glEnable(GL.GL_DEPTH_TEST);\r
_gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);\r
//NyARToolkitの準備\r
try {\r
ar_codes[1] = new NyARCode(16, 16);\r
ar_codes[1].loadARPattFromFile(CARCODE_FILE2);\r
//JMFラスタオブジェクト\r
- this._cap_image = new JmfNyARRaster_RGB(this._ar_param,_capture.getCaptureFormat());\r
+ this._cap_image = new JmfNyARRaster_RGB(this._capture.getCaptureFormat());\r
\r
this._nya = new NyARDetectMarker(this._ar_param, ar_codes, width, 2,this._cap_image.getBufferType());\r
this._nya.setContinueMode(false);//ここをtrueにすると、transMatContinueモード(History計算)になります。\r
- //NyARToolkit用の支援クラス\r
- this._glnya = new NyARGLUtil(_gl);\r
//キャプチャ開始\r
this._capture.start();\r
} catch (Exception e) {\r
e.printStackTrace();\r
}\r
//カメラパラメータの計算\r
- this._glnya.toCameraFrustumRH(_ar_param,_camera_projection);\r
+ NyARGLUtil.toCameraFrustumRH(_ar_param,1,10,10000,_camera_projection);\r
\r
this._animator = new Animator(drawable);\r
this._animator.start();\r
synchronized (_cap_image) {\r
found_markers = _nya.detectMarkerLite(_cap_image, 110);\r
//背景を書く\r
- _glnya.drawBackGround(_cap_image, 1.0);\r
+ NyARGLDrawUtil.drawBackGround(this._gl,_cap_image, 1.0);\r
}\r
//あったら立方体を書く\r
for (int i = 0; i < found_markers; i++) {\r
//変換行列を取得\r
_nya.getTransmationMatrix(i,transmat_result);\r
//変換行列をOpenGL形式に変換\r
- _glnya.toCameraViewRH(transmat_result, __display_wk);\r
+ NyARGLUtil.toCameraViewRH(transmat_result,1,__display_wk);\r
_gl.glLoadMatrixd(__display_wk, 0);\r
\r
- // All other lighting and geometry goes here.\r
- drawCube();\r
+ //立方体を描画\r
+ this._gl.glPushMatrix(); // Save world coordinate system.\r
+ this._gl.glTranslatef(0.0f, 0.0f,20f); // Place base of cube on marker surface.\r
+ this._gl.glDisable(GL.GL_LIGHTING); // Just use colours.\r
+ NyARGLDrawUtil.drawColorCube(this._gl,40f);\r
+ this._gl.glPopMatrix(); // Restore world coordinate system.\r
}\r
Thread.sleep(1);//タスク実行権限を一旦渡す \r
} catch (Exception e) {\r
import javax.media.opengl.*;\r
\r
import com.sun.opengl.util.*;\r
-import com.sun.opengl.util.j2d.*;\r
import jp.nyatla.nyartoolkit.*;\r
import jp.nyatla.nyartoolkit.core.*;\r
import jp.nyatla.nyartoolkit.core.param.*;\r
import jp.nyatla.nyartoolkit.jogl.utils.*;\r
import jp.nyatla.nyartoolkit.processor.*;\r
\r
-/*\r
-\r
-\r
-*/\r
-\r
\r
+/**\r
+ * SingleARMarkerProcesserを使ったサンプルです。\r
+ * 登録した複数種類マーカのうちから、同時に1個を認識するサンプルプログラムです。\r
+ * @author nyatla\r
+ *\r
+ */\r
public class SingleARMarker implements GLEventListener, JmfCaptureListener\r
-{\r
- class TextPanel\r
- {\r
- private TextRenderer _tr;\r
- public TextPanel(int i_size)\r
- {\r
- this._tr=new TextRenderer(new Font("SansSerif", Font.BOLD, 36));\r
-\r
- }\r
- public void draw(String i_str,float i_scale)\r
- {\r
- this._tr.begin3DRendering();\r
- this._tr.setColor(1.0f, 0.2f, 0.2f, 0.8f);\r
- this._tr.draw3D(i_str, 0f,0f,0f,i_scale);\r
- this._tr.end3DRendering();\r
- return;\r
- }\r
- } \r
+{ \r
/**\r
* 1個のRawBit-Idマーカを認識するロジッククラス。\r
* detectMarker関数の呼び出しに同期して、transmatとcurrent_idパラメタを更新します。\r
*/\r
class MarkerProcessor extends SingleARMarkerProcesser\r
{\r
- private NyARGLUtil _glnya;\r
public double[] gltransmat=new double[16];\r
\r
public int current_code=-1;\r
//アプリケーションフレームワークの初期化\r
super();\r
initInstance(i_cparam,i_raster_format);\r
- this._glnya=i_glutil;\r
return;\r
}\r
protected void onEnterHandler(int i_code)\r
protected void onUpdateHandler(NyARSquare i_square, NyARTransMatResult result)\r
{\r
try{\r
- this._glnya.toCameraViewRH(result, this.gltransmat);\r
+ NyARGLUtil.toCameraViewRH(result,1.0, this.gltransmat);\r
}catch(Exception e){\r
e.printStackTrace();\r
}\r
\r
private GL _gl;\r
private NyARGLUtil _glnya;\r
- private TextPanel _panel;\r
\r
\r
//NyARToolkit関係\r
throw new NyARException();\r
}\r
this._capture.setOnCapture(this);\r
- this._cap_image = new JmfNyARRaster_RGB(i_cparam,this._capture.getCaptureFormat()); \r
+ this._cap_image = new JmfNyARRaster_RGB(this._capture.getCaptureFormat()); \r
\r
this._code_table[0]=new NyARCode(16,16);\r
this._code_table[0].loadARPattFromFile(CARCODE_FILE1);\r
this._code_table[1].loadARPattFromFile(CARCODE_FILE2);\r
\r
//OpenGLフレームの準備(OpenGLリソースの初期化、カメラの撮影開始は、initコールバック関数内で実行)\r
- Frame frame = new Frame("Java simpleLite with NyARToolkit");\r
+ Frame frame = new Frame("NyARToolkit["+this.getClass().getName()+"]");\r
GLCanvas canvas = new GLCanvas();\r
frame.add(canvas);\r
canvas.addGLEventListener(this);\r
}\r
public void init(GLAutoDrawable drawable)\r
{\r
- this._panel = new TextPanel(100);\r
-\r
-\r
this._gl = drawable.getGL();\r
this._gl.glEnable(GL.GL_DEPTH_TEST);\r
-\r
+ NyARGLDrawUtil.setFontStyle("SansSerif",Font.BOLD,36);\r
+ NyARGLDrawUtil.setFontColor(Color.RED);\r
this._gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);\r
//NyARToolkitの準備\r
try {\r
- this._glnya = new NyARGLUtil(this._gl);\r
//プロセッサの準備\r
this._processor=new MarkerProcessor(this._ar_param,this._cap_image.getBufferType(),this._glnya);\r
this._processor.setARCodeTable(_code_table,16,80.0);\r
\r
//カメラパラメータの計算\r
- this._glnya.toCameraFrustumRH(this._ar_param,this._camera_projection);\r
+ NyARGLUtil.toCameraFrustumRH(this._ar_param,1.0,10,10000,this._camera_projection);\r
//キャプチャ開始\r
this._capture.start();\r
} catch (Exception e) {\r
this._gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); // Clear the buffers for new frame.\r
//OnEnter,OnUpdateの間に、transmatに初回行列がストアされる実行されることを防ぎます。\r
try{\r
- this._glnya.drawBackGround(this._cap_image, 1.0);\r
+ NyARGLDrawUtil.drawBackGround(this._gl,this._cap_image, 1.0);\r
synchronized(this._sync_object)\r
{\r
if(this._processor.current_code<0){\r
Date d = new Date();\r
float r=(d.getTime()/50)%360;\r
this._gl.glRotatef(r,0f,0f,1.0f);\r
- this._gl.glTranslatef(-1.0f,0f,1.0f);\r
+ this._gl.glTranslatef(-70f,0f,1.0f);\r
this._gl.glRotatef(90,1.0f,0f,0f);\r
- this._panel.draw("MarkerId:"+this._processor.current_code,0.01f);\r
+ NyARGLDrawUtil.drawText("MarkerId:"+this._processor.current_code,1f);\r
this._gl.glPopMatrix();\r
Thread.sleep(1);// タスク実行権限を一旦渡す\r
}\r
import javax.media.opengl.*;\r
\r
import com.sun.opengl.util.*;\r
-import com.sun.opengl.util.j2d.*;\r
import jp.nyatla.nyartoolkit.*;\r
import jp.nyatla.nyartoolkit.core.param.*;\r
import jp.nyatla.nyartoolkit.core.squaredetect.NyARSquare;\r
import jp.nyatla.nyartoolkit.processor.*;\r
\r
\r
-class TextPanel\r
-{\r
- private TextRenderer _tr;\r
- public TextPanel(int i_size)\r
- {\r
- this._tr=new TextRenderer(new Font("SansSerif", Font.BOLD, 36));\r
-\r
- }\r
- public void draw(String i_str,float i_scale)\r
- {\r
- this._tr.begin3DRendering();\r
- this._tr.setColor(1.0f, 0.2f, 0.2f, 0.8f);\r
- this._tr.draw3D(i_str, 0f,0f,0f,i_scale);\r
- this._tr.end3DRendering();\r
- return;\r
- }\r
-}\r
\r
/**\r
- * 1個のRawBit-Idマーカを認識するロジッククラス。\r
+ * SingleNyIdMarkerProcesserを使ったサンプルです。\r
* detectMarker関数の呼び出しに同期して、transmatとcurrent_idパラメタを更新します。\r
* \r
*\r
*/\r
class MarkerProcessor extends SingleNyIdMarkerProcesser\r
{ \r
- private NyARGLUtil _glnya; \r
public double[] gltransmat=new double[16];\r
public int current_id=-1;\r
\r
- public MarkerProcessor(NyARParam i_cparam,int i_width,int i_raster_format,NyARGLUtil i_glutil) throws NyARException\r
+ public MarkerProcessor(NyARParam i_cparam,int i_width,int i_raster_format) throws NyARException\r
{\r
//アプリケーションフレームワークの初期化\r
super();\r
initInstance(i_cparam,new NyIdMarkerDataEncoder_RawBit(),100.0,i_raster_format);\r
- this._glnya=i_glutil;\r
return;\r
}\r
/**\r
protected void onUpdateHandler(NyARSquare i_square, NyARTransMatResult result)\r
{\r
try{\r
- this._glnya.toCameraViewRH(result, this.gltransmat);\r
+ NyARGLUtil.toCameraViewRH(result,1.0, this.gltransmat);\r
}catch(Exception e){\r
e.printStackTrace();\r
} \r
private JmfCaptureDevice _capture;\r
\r
private GL _gl;\r
- private NyARGLUtil _glnya;\r
- private TextPanel _panel;\r
-\r
-\r
//NyARToolkit関係\r
private NyARParam _ar_param;\r
\r
throw new NyARException();\r
}\r
this._capture.setOnCapture(this);\r
- this._cap_image = new JmfNyARRaster_RGB(i_cparam,this._capture.getCaptureFormat()); \r
+ this._cap_image = new JmfNyARRaster_RGB(this._capture.getCaptureFormat()); \r
\r
//OpenGLフレームの準備(OpenGLリソースの初期化、カメラの撮影開始は、initコールバック関数内で実行)\r
- Frame frame = new Frame("Java simpleLite with NyARToolkit");\r
+ Frame frame = new Frame("NyARToolkit["+this.getClass().getName()+"]");\r
GLCanvas canvas = new GLCanvas();\r
frame.add(canvas);\r
canvas.addGLEventListener(this);\r
}\r
public void init(GLAutoDrawable drawable)\r
{\r
- this._panel = new TextPanel(100);\r
-\r
-\r
this._gl = drawable.getGL();\r
this._gl.glEnable(GL.GL_DEPTH_TEST);\r
+ NyARGLDrawUtil.setFontStyle("SansSerif",Font.BOLD,36);\r
\r
this._gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);\r
//NyARToolkitの準備\r
try {\r
- this._glnya = new NyARGLUtil(this._gl);\r
//カメラパラメータの計算\r
- this._glnya.toCameraFrustumRH(this._ar_param,this._camera_projection);\r
+ NyARGLUtil.toCameraFrustumRH(this._ar_param,1.0,10,10000,this._camera_projection);\r
//プロセッサの準備\r
- this._processor=new MarkerProcessor(this._ar_param,100,this._cap_image.getBufferType(),this._glnya);\r
+ this._processor=new MarkerProcessor(this._ar_param,100,this._cap_image.getBufferType());\r
\r
//キャプチャ開始\r
this._capture.start();\r
// 背景を書く\r
this._gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); // Clear the buffers for new frame.\r
try{\r
- this._glnya.drawBackGround(this._cap_image, 1.0); \r
+ NyARGLDrawUtil.drawBackGround(this._gl,this._cap_image, 1.0); \r
synchronized(this._sync_object)\r
{\r
if(this._processor.current_id<0){\r
Date d = new Date();\r
float r=(d.getTime()/50)%360;\r
this._gl.glRotatef(r,0f,0f,1.0f);\r
- this._gl.glTranslatef(-1.0f,0f,1.0f);\r
+ this._gl.glTranslatef(-70f,0f,1.0f);\r
this._gl.glRotatef(90,1.0f,0f,0f);\r
- this._panel.draw("MarkerId:"+this._processor.current_id,0.01f);\r
+ NyARGLDrawUtil.drawText("MarkerId:"+this._processor.current_id, 1.0f);\r
this._gl.glPopMatrix();\r
Thread.sleep(1);// タスク実行権限を一旦渡す\r
}\r