亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wireframeexample.java

?? 基于java的3d開發庫。對坐java3d的朋友有很大的幫助。
?? JAVA
字號:
//===========================================================================// Java classesimport java.io.File;import java.util.ArrayList;import java.awt.BorderLayout;import java.awt.Dimension;import javax.swing.JFrame;import java.awt.event.MouseEvent;import java.awt.event.MouseWheelEvent;import java.awt.event.KeyEvent;import java.awt.event.MouseListener;import java.awt.event.MouseWheelListener;import java.awt.event.MouseMotionListener;import java.awt.event.KeyListener;import javax.media.opengl.GL;import javax.media.opengl.glu.GLU;import javax.media.opengl.GLCanvas;import javax.media.opengl.GLAutoDrawable;import javax.media.opengl.GLDrawableFactory;import javax.media.opengl.GLEventListener;// VSDK classesimport vsdk.toolkit.common.Vector3D;import vsdk.toolkit.common.Vector4D;import vsdk.toolkit.common.Matrix4x4;import vsdk.toolkit.common.RendererConfiguration;import vsdk.toolkit.common.Vertex;import vsdk.toolkit.common.Triangle;import vsdk.toolkit.environment.Camera;import vsdk.toolkit.environment.geometry.Geometry;import vsdk.toolkit.environment.geometry.TriangleMesh;import vsdk.toolkit.environment.geometry.TriangleMeshGroup;import vsdk.toolkit.environment.scene.SimpleBody;import vsdk.toolkit.environment.scene.SimpleScene;import vsdk.toolkit.gui.CameraController;import vsdk.toolkit.gui.CameraControllerAquynza;import vsdk.toolkit.gui.CameraControllerBlender;import vsdk.toolkit.media.Calligraphic2DBuffer;import vsdk.toolkit.media.RGBImage;import vsdk.toolkit.media.RGBPixel;import vsdk.toolkit.io.geometry.ReaderObj;import vsdk.toolkit.render.jogl.JoglTriangleMeshGroupRenderer;import vsdk.toolkit.render.jogl.JoglCameraRenderer;import vsdk.toolkit.render.jogl.JoglCalligraphic2DBufferRenderer;import vsdk.toolkit.render.jogl.JoglRGBImageRenderer;public class WireframeExample extends JFrame implements     GLEventListener, MouseListener, MouseMotionListener, MouseWheelListener, KeyListener {    private Camera camera;    private CameraController cameraController;    private GLCanvas canvas;    private TriangleMeshGroup meshGroup;    private RendererConfiguration qualitySelection;    private Calligraphic2DBuffer lineSet;    private RGBImage img;    private boolean drawJogl;    private boolean drawWires;    private boolean drawImage;    public WireframeExample() {        //-----------------------------------------------------------------        super("VITRAL concept test - JOGL Hello World");        canvas = new GLCanvas();        canvas.addGLEventListener(this);        canvas.addMouseListener(this);        canvas.addMouseMotionListener(this);        canvas.addKeyListener(this);        this.add(canvas, BorderLayout.CENTER);        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        camera = new Camera();        camera.setPosition(new Vector3D(7, -4, 4));        Matrix4x4 R = new Matrix4x4();        R.eulerAnglesRotation(Math.toRadians(140),                              Math.toRadians(-30), 0);        camera.setRotation(R);        cameraController = new CameraControllerAquynza(camera);        qualitySelection = new RendererConfiguration();        qualitySelection.setSurfaces(false);        //qualitySelection.setShadingType(qualitySelection.SHADING_TYPE_NOLIGHT);        qualitySelection.setWires(true);        lineSet = new Calligraphic2DBuffer();        drawJogl = false;        drawWires = true;        drawImage = false;        img = new RGBImage();        //-----------------------------------------------------------------        try {            SimpleScene scene = new SimpleScene();            int i;            ArrayList<SimpleBody> bodies = scene.getSimpleBodies();            Geometry g;            ReaderObj.importEnvironment(new File("../../../etc/geometry/cow.obj"), scene);            meshGroup = null;            for ( i = 0; i < bodies.size(); i++ ) {                g = bodies.get(i).getGeometry();                if ( g instanceof TriangleMeshGroup ) {                    meshGroup = (TriangleMeshGroup)g;                    break;                }            }            if ( meshGroup == null ) {                System.err.println("ERROR: Can not find a TriangleMeshGroup inside file.");                System.exit(1);            }        }        catch (Exception ex) {            System.err.println("Failed to read file");            System.exit(0);            return;        }    }    public Dimension getPreferredSize() {        return new Dimension (640, 480);    }        public static void main (String[] args) {        JFrame f = new WireframeExample();        f.pack();        f.setVisible(true);    }        private void drawObjectsGL(GL gl)    {        //-----------------------------------------------------------------        gl.glEnable(gl.GL_DEPTH_TEST);        gl.glLoadIdentity();        gl.glDisable(gl.GL_TEXTURE_2D);        gl.glLineWidth((float)3.0);        gl.glBegin(GL.GL_LINES);            gl.glColor3d(1, 0, 0);            gl.glVertex3d(0, 0, 0);            gl.glVertex3d(1, 0, 0);            gl.glColor3d(0, 1, 0);            gl.glVertex3d(0, 0, 0);            gl.glVertex3d(0, 1, 0);            gl.glColor3d(0, 0, 1);            gl.glVertex3d(0, 0, 0);            gl.glVertex3d(0, 0, 1);        gl.glEnd();        gl.glColor3d(0.9, 0.5, 0.5);        if ( drawJogl == true ) {          JoglTriangleMeshGroupRenderer.draw(gl, meshGroup, qualitySelection);        }        gl.glDisable(gl.GL_TEXTURE_2D);        //-----------------------------------------------------------------    }    private void addLine(Calligraphic2DBuffer lineSet,                         Vector3D cp0, Vector3D cp1, Matrix4x4 R)    {        Vector4D hp0, hp1; // Clipped points in homogeneous space        Vector4D pp0, pp1; // Projected points        hp0 = new Vector4D(cp0);        hp1 = new Vector4D(cp1);        pp0 = R.multiply(hp0);        pp0.divideByW();        pp1 = R.multiply(hp1);        pp1.divideByW();        lineSet.add2DLine(pp0.x, pp0.y, pp1.x, pp1.y);    }    /** Called by drawable to initiate drawing */    public void display(GLAutoDrawable drawable) {        //-----------------------------------------------------------------        GL gl = drawable.getGL();        gl.glClearColor(0, 0, 0, 1);        gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);        gl.glColor3d(1, 1, 1);        JoglCameraRenderer.activate(gl, camera);        //-----------------------------------------------------------------        drawObjectsGL(gl);        //-----------------------------------------------------------------        if ( drawWires || drawImage ) {            TriangleMesh mesh = null;            int i;            Vertex[] arrVertexes;            Triangle[] arrTriangles;            int t;            int p0, p1, p2;            Vector3D mp0, mp1; // Mesh points            Vector3D cp0, cp1; // Clipped points            Matrix4x4 R;            cp0 = new Vector3D();            cp1 = new Vector3D();            R = camera.calculateProjectionMatrix(camera.STEREO_MODE_CENTER);            for ( i = 0; i < meshGroup.getMeshes().size(); i++ ) {                mesh = meshGroup.getMeshes().get(i);                arrVertexes = mesh.getVertexes();                arrTriangles = mesh.getTriangles();                for ( t = 0; t < arrTriangles.length; t++ ) {                    p0 = arrTriangles[t].p0;                    p1 = arrTriangles[t].p1;                    p2 = arrTriangles[t].p2;                    mp0 = arrVertexes[p0].position;                    mp1 = arrVertexes[p1].position;                    if ( camera.clipLineCohenSutherlandPlanes(mp0, mp1, cp0, cp1) ) {                        addLine(lineSet, cp0, cp1, R);                    }                    mp0 = arrVertexes[p1].position;                    mp1 = arrVertexes[p2].position;                    if ( camera.clipLineCohenSutherlandPlanes(mp0, mp1, cp0, cp1) ) {                        addLine(lineSet, cp0, cp1, R);                    }                    mp0 = arrVertexes[p2].position;                    mp1 = arrVertexes[p0].position;                    if ( camera.clipLineCohenSutherlandPlanes(mp0, mp1, cp0, cp1) ) {                        addLine(lineSet, cp0, cp1, R);                    }                }            }            //-----------------------------------------------------------------            gl.glMatrixMode(gl.GL_PROJECTION);            gl.glLoadIdentity();            gl.glMatrixMode(gl.GL_MODELVIEW);            gl.glLoadIdentity();            if ( drawImage ) {                double xt = camera.getViewportXSize();                double yt = camera.getViewportYSize();                Vector3D e0 = new Vector3D();                Vector3D e1 = new Vector3D();                int x0, y0, x1, y1;                RGBPixel pixel = new RGBPixel();                img.init((int)xt, (int)yt);                pixel.r = (byte)255;                pixel.g = 0;                pixel.b = 0;                for ( int j = 0; j < lineSet.getNumLines(); j++ ) {                    lineSet.get2DLine(j, e0, e1);                    x0 = (int)((xt-1)*((e0.x+1)/2));                    y0 = (int)((yt-1)*(1-((e0.y+1)/2)));                    x1 = (int)((xt-1)*((e1.x+1)/2));                    y1 = (int)((yt-1)*(1-((e1.y+1)/2)));                    img.drawLine(x0, y0, x1, y1, pixel);                }                JoglRGBImageRenderer.draw(gl, img);            }            else {                gl.glLineWidth(1.0f);                gl.glColor3d(1, 1, 1);                JoglCalligraphic2DBufferRenderer.draw(gl, lineSet);            }            lineSet.init();        }    }       /** Not used method, but needed to instanciate GLEventListener */    public void init(GLAutoDrawable drawable) {        ;    }    /** Not used method, but needed to instanciate GLEventListener */    public void displayChanged(GLAutoDrawable drawable, boolean a, boolean b) {        ;    }        /** Called to indicate the drawing surface has been moved and/or resized */    public void reshape (GLAutoDrawable drawable,                         int x,                         int y,                         int width,                         int height) {        GL gl = drawable.getGL();        gl.glViewport(0, 0, width, height);         camera.updateViewportResize(width, height);    }     public void mouseEntered(MouseEvent e) {      canvas.requestFocusInWindow();  }  public void mouseExited(MouseEvent e) {    //System.out.println("Mouse exited");  }  public void mousePressed(MouseEvent e) {      if ( cameraController.processMousePressedEventAwt(e) ) {          canvas.repaint();      }  }  public void mouseReleased(MouseEvent e) {      if ( cameraController.processMouseReleasedEventAwt(e) ) {          canvas.repaint();      }  }  public void mouseClicked(MouseEvent e) {      if ( cameraController.processMouseClickedEventAwt(e) ) {          canvas.repaint();      }  }  public void mouseMoved(MouseEvent e) {      if ( cameraController.processMouseMovedEventAwt(e) ) {          canvas.repaint();      }  }  public void mouseDragged(MouseEvent e) {      if ( cameraController.processMouseDraggedEventAwt(e) ) {          canvas.repaint();      }  }  /**  WARNING: It is not working... check pending  */  public void mouseWheelMoved(MouseWheelEvent e) {      System.out.println(".");      if ( cameraController.processMouseWheelEventAwt(e) ) {          canvas.repaint();      }  }  public void keyPressed(KeyEvent e) {      if ( e.getKeyCode() == KeyEvent.VK_ESCAPE ) {          System.exit(0);      }      if ( cameraController.processKeyPressedEventAwt(e) ) {          canvas.repaint();      }      if ( e.getKeyCode() == KeyEvent.VK_1 ) {          if ( drawJogl == true ) drawJogl = false; else drawJogl = true;      }      else if ( e.getKeyCode() == KeyEvent.VK_2 ) {          if ( drawWires == true ) drawWires = false; else drawWires = true;      }      else if ( e.getKeyCode() == KeyEvent.VK_3 ) {          if ( drawImage == true ) drawImage = false; else drawImage = true;      }      canvas.repaint();  }  public void keyReleased(KeyEvent e) {      if ( cameraController.processKeyReleasedEventAwt(e) ) {          canvas.repaint();      }  }  /**  Do NOT call your controller from the `keyTyped` method, or the controller  will be invoked twice for each key. Call it only from the `keyPressed` and  `keyReleased` method  */  public void keyTyped(KeyEvent e) {      ;  }}//===========================================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区视频在线看| 一区二区视频在线| 国产亲近乱来精品视频| 亚洲色图一区二区| 亚洲第一搞黄网站| 国产精品一区专区| 欧美色涩在线第一页| 欧美性高清videossexo| 精品国产免费久久| 一区二区三区中文字幕| 国产在线播放一区三区四| 日本久久电影网| 久久亚洲欧美国产精品乐播| 一区二区在线观看视频在线观看| 狠狠色丁香婷婷综合| 丰满亚洲少妇av| 欧美高清dvd| 亚洲女人****多毛耸耸8| 日本伊人色综合网| 色屁屁一区二区| 国产欧美1区2区3区| 亚洲精品少妇30p| 国产精品一区二区三区乱码| 日韩三级在线免费观看| 一区二区三区免费在线观看| 粉嫩高潮美女一区二区三区 | 国产喷白浆一区二区三区| 亚洲国产aⅴ成人精品无吗| 国精产品一区一区三区mba桃花 | 国产一区二区三区视频在线播放 | 麻豆国产精品视频| 在线一区二区三区做爰视频网站| 国产视频一区不卡| 激情文学综合丁香| 日韩视频中午一区| 亚州成人在线电影| 欧美精品久久久久久久多人混战 | 欧美精品视频www在线观看| 亚洲成av人片在线| 91精品一区二区三区久久久久久| 石原莉奈一区二区三区在线观看| 欧美酷刑日本凌虐凌虐| 奇米影视一区二区三区| 91精品蜜臀在线一区尤物| 精品一区免费av| 国产丝袜欧美中文另类| av亚洲精华国产精华精| 亚洲男同1069视频| 欧美三级日韩三级| 日本美女视频一区二区| 欧美成人女星排名| 国产成人精品免费看| 亚洲三级小视频| 欧美日韩三级一区| 九九**精品视频免费播放| 国产清纯在线一区二区www| 91视频国产观看| 婷婷国产v国产偷v亚洲高清| 日韩一区二区三区免费观看| 粉嫩高潮美女一区二区三区| 亚洲狠狠丁香婷婷综合久久久| 欧美日韩一区二区不卡| 国内偷窥港台综合视频在线播放| 国产欧美日本一区二区三区| 色综合 综合色| 日本不卡高清视频| 国产精品九色蝌蚪自拍| 欧美日韩视频专区在线播放| 国产成人在线影院| 亚洲成人激情综合网| 久久综合一区二区| 欧美性猛片aaaaaaa做受| 精品制服美女久久| 一区二区三区加勒比av| 日韩欧美中文字幕公布| 99久久99久久久精品齐齐| 日韩精品一级中文字幕精品视频免费观看| 精品国产亚洲在线| 欧洲生活片亚洲生活在线观看| 久久国产精品露脸对白| 亚洲精品中文字幕乱码三区 | 国产精品国产a| 欧美狂野另类xxxxoooo| 99精品国产99久久久久久白柏| 日韩电影在线一区二区| 亚洲女厕所小便bbb| 久久人人爽爽爽人久久久| 欧美日韩一区二区三区在线| 成人黄页毛片网站| 国内国产精品久久| 日韩在线a电影| 亚洲一区二区三区自拍| 国产精品免费视频观看| 精品国一区二区三区| 欧美最新大片在线看| www.成人网.com| 国产一区二区三区高清播放| 首页综合国产亚洲丝袜| 一区二区三区高清| 日韩一区在线播放| 国产调教视频一区| 欧美精品一区二区三区蜜臀| 91精品国产综合久久精品app| 日本精品一区二区三区四区的功能| 国产精品一区二区三区乱码| 激情综合色播激情啊| 麻豆freexxxx性91精品| 免费人成精品欧美精品| 亚洲成av人片在线观看无码| 亚洲无人区一区| 亚洲午夜激情网页| 亚洲高清免费在线| 亚洲激情自拍视频| 亚洲精品精品亚洲| 成人欧美一区二区三区在线播放| 中文字幕第一区二区| 国产精品久久久久久久蜜臀| 日本一区二区三区久久久久久久久不| 精品人伦一区二区色婷婷| 精品三级在线看| 亚洲精品在线观看网站| 2023国产精品自拍| 久久精品视频在线看| 国产欧美一区二区三区在线老狼| 久久嫩草精品久久久精品一| 国产欧美一区视频| 成人免费在线视频观看| 一区二区三区精品在线| 亚洲成人综合在线| 日本不卡123| 国产一区二区精品久久99 | 男人的天堂久久精品| 老司机午夜精品| 国产精品自在在线| 成人精品一区二区三区中文字幕| 成人av网站免费| 欧美在线一二三四区| 欧美一区二区成人| 久久精品在线免费观看| 亚洲欧美日韩在线| 午夜影院在线观看欧美| 激情深爱一区二区| 成人av在线播放网站| 欧美日韩一区二区三区四区 | 国产精品日韩成人| 亚洲综合视频在线| 久久成人av少妇免费| 成人少妇影院yyyy| 欧美日韩国产一级二级| 亚洲精品一区二区三区精华液| 国产精品日韩精品欧美在线| 亚洲一区在线观看视频| 精品一区二区三区免费观看| 99在线精品观看| 欧美三级韩国三级日本三斤| 美女爽到高潮91| 午夜天堂影视香蕉久久| 青青草国产成人99久久| 成人v精品蜜桃久久一区| 在线观看免费成人| 国产亚洲欧美中文| 视频一区欧美日韩| av中文字幕一区| 欧美大度的电影原声| 一级做a爱片久久| 国产主播一区二区| 欧美亚洲高清一区二区三区不卡| 久久久久久一二三区| 香蕉久久一区二区不卡无毒影院 | 国产精品久久久久aaaa| 日韩主播视频在线| 在线视频你懂得一区| 日本一区二区三区国色天香| 蜜臀av亚洲一区中文字幕| 91国偷自产一区二区三区观看| 国产日韩成人精品| 毛片av中文字幕一区二区| 欧美日韩一区二区欧美激情| 亚洲色图清纯唯美| 亚洲欧美日韩久久精品| 色哟哟精品一区| 色综合中文字幕国产| 欧美一区二区三区色| 一区二区三区精品视频| 99久久久久久| 国产欧美在线观看一区| 国内精品第一页| 日韩欧美aaaaaa| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美性生活影院| 国产精品日日摸夜夜摸av| 欧美一区二区二区| 国产一区二区三区日韩| 欧美日韩1234| 成人av动漫在线| 91在线观看一区二区| 最近日韩中文字幕| 国产激情偷乱视频一区二区三区| 欧美一区二区三级| 美美哒免费高清在线观看视频一区二区|