package edu.dhbw.andar.sample;

import java.nio.FloatBuffer;

import javax.microedition.khronos.opengles.GL10;

import edu.dhbw.andar.ARObject;
import edu.dhbw.andar.pub.SimpleBox;
import edu.dhbw.andar.util.GraphicsUtil;

/**
 * An example of an AR object being drawn on a marker.
 * @author tobi
 *
 */
public class CustomObject extends ARObject {

 
 public CustomObject(String name, String patternName,
   double markerWidth, double[] markerCenter) {
  super(name, patternName, markerWidth, markerCenter);
  float   mat_ambientf[]     = {0f, 1.0f, 0f, 1.0f};
  float   mat_flashf[]       = {0f, 1.0f, 0f, 1.0f};
  float   mat_diffusef[]       = {0f, 1.0f, 0f, 1.0f};
  float   mat_flash_shinyf[] = {50.0f};

  mat_ambient = GraphicsUtil.makeFloatBuffer(mat_ambientf);
  mat_flash = GraphicsUtil.makeFloatBuffer(mat_flashf);
  mat_flash_shiny = GraphicsUtil.makeFloatBuffer(mat_flash_shinyf);
  mat_diffuse = GraphicsUtil.makeFloatBuffer(mat_diffusef);
  
 }
 public CustomObject(String name, String patternName,
   double markerWidth, double[] markerCenter, float[] customColor) {
  super(name, patternName, markerWidth, markerCenter);
  float   mat_flash_shinyf[] = {50.0f};

  mat_ambient = GraphicsUtil.makeFloatBuffer(customColor);
  mat_flash = GraphicsUtil.makeFloatBuffer(customColor);
  mat_flash_shiny = GraphicsUtil.makeFloatBuffer(mat_flash_shinyf);
  mat_diffuse = GraphicsUtil.makeFloatBuffer(customColor);
  
 }
 
 /**
  * Just a box, imported from the AndAR project.
  */
 private SimpleBox box = new SimpleBox();
 private FloatBuffer mat_flash;
 private FloatBuffer mat_ambient;
 private FloatBuffer mat_flash_shiny;
 private FloatBuffer mat_diffuse;
 
 /**
  * Everything drawn here will be drawn directly onto the marker,
  * as the corresponding translation matrix will already be applied.
  */
 @Override
 public final void draw(GL10 gl) {
  super.draw(gl);
  
  gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_SPECULAR,mat_flash);
  gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_SHININESS, mat_flash_shiny); 
  gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_DIFFUSE, mat_diffuse); 
  gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_AMBIENT, mat_ambient);

 

     //draw cube
     gl.glColor4f(0, 1.0f, 0, 1.0f);
     gl.glTranslatef( 0.0f, 0.0f, 12.5f );
    
     //draw the box
     box.draw(gl);
 }
 @Override
 public void init(GL10 gl) {
  
 }
}


----------------------------------------------------------------------
퀄컴의 안드로이드용 증강현실 소스를 구해서 보고있습니다.

특정 패턴의 이미지를 카메라로 비추게 되면 박스를 화면에 보여주는 소스인데요.


위에 소스중

     //draw cube
     gl.glColor4f(0, 1.0f, 0, 1.0f);
     gl.glTranslatef( 0.0f, 0.0f, 12.5f );
    
     //draw the box
     box.draw(gl);

 

이부분이 박스를 그려주는것까진 알았습니다.

더해서 요부분에(박스에) 간단하게 링크(웹주소)를 걸었으면 하거든요.

어떤식으로 링크를 줘야 할지 막막해서 글 올려봅니다..

조언좀 부탁드릴게요.