/** * Initialisation routine */ private void init() { this.data = new ArrayList<LocatedObject3D<D>>(); this.axesRenderer = new AxesRenderer3D(); }
/** * @param args */ public static void main( final String[] args ) { final DotPlotVisualisation3D dpv = new DotPlotVisualisation3D( 1000, 600 ); dpv.getAxesRenderer().setAxesRanges( -1, 1, -1, 1, -1, 1 ); dpv.setColourMapRange( 0, 0.1 ); dpv.setEnableLights( false ); for( int i = 0; i < 100; i++ ) dpv.addPoint( (Math.random() - 0.5) * 2, (Math.random() - 0.5) * 2, (Math.random() - 0.5) * 2, Math.random() / 10 ); } }
/** * * @param minX * @param maxX * @param minY * @param maxY * @param minZ * @param maxZ */ public void setAxesRanges( final double minX, final double maxX, final double minY, final double maxY, final double minZ, final double maxZ ) { this.setMinXValue( minX ); this.setMaxXValue( maxX ); this.setMinYValue( minY ); this.setMaxYValue( maxY ); this.setMinZValue( minZ ); this.setMaxZValue( maxZ ); }
/** * */ public AxesRenderer3D() { this.xAxisRenderer.setGridDirection( -1 ); this.yAxisRenderer.getConfig().setOrientation( new double[] { 90, 0, 0, 1, 180, 1, 0, 0 } ); this.zAxisRenderer.getConfig().setOrientation( new double[] { 90, 0, 1, 0 } ); this.yAxisRenderer.getConfig().getRenderingConfig().setNameOrientation( new double[] { 90, 0, 0, 1 } ); this.yAxisRenderer.getConfig().getRenderingConfig().setNameDirection( -1 ); this.zAxisRenderer.getConfig().getRenderingConfig().setNameOrientation( new double[] { 90, 0, 1, 0, -90, 1, 0, 0 } ); this.zAxisRenderer.getConfig().getRenderingConfig().setNameDirection( -1 ); this.xAxisRenderer.getConfig().setName( "x-axis" ); this.yAxisRenderer.getConfig().setName( "y-axis" ); this.zAxisRenderer.getConfig().setName( "z-axis" ); this.setAxisThickness( 4 ); this.setDrawMajorGrid( false ); this.setDrawMinorGrid( false ); }
final double[] p = renderer.calculatePosition( new double[] { object.object.x, object.object.y, object.object.z } ); final double[] p2 = renderer.calculatePosition( new double[] { object.x, object.y, object.z } ); gl.glRotated( object.object.zRotation, 0, 0, 1 ); final double[] dims = renderer.scaleDimension( new double[]{object.object.width,object.object.height,0} ); final double w = dims[0]; final double h = dims[1];
@Override protected void renderVis( final GLAutoDrawable drawable ) { if( drawable == null || this.axesRenderer == null ) return; final GL2 gl = drawable.getGL().getGL2(); this.axesRenderer.renderAxis( drawable ); final List<LocatedObject3D<D>> x = new ArrayList<XYZVisualisation3D.LocatedObject3D<D>>(); x.addAll( this.data ); for( final LocatedObject3D<D> d : x ) { gl.glPushMatrix(); this.plotter.plotObject( drawable, d, this.axesRenderer ); gl.glPopMatrix(); } }
final AxesRenderer3D renderer ) final double[] p = renderer.calculatePosition( new double[] { object.x, object.y, object.z } ); gl.glTranslated( p[0], p[1], p[2] ); final double[] s = renderer.scaleDimension( new double[] {object.object.size, object.object.size, object.object.size} ); gl.glScaled( s[0], s[1], s[2] );
gl.glClear( GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT ); this.axesRenderer.renderAxis( drawable );
/** * * @param args */ public static void main( final String[] args ) { final Rectangle3DPlotter rp = new Rectangle3DPlotter( 1000, 800 ); rp.getAxesRenderer().setAxesRanges( -1, 1, -1, 1, -1, 1 ); final int n = 40; for( int i = 0; i < n ; i++ ) { final Rectangle3D r = new Rectangle3D(); r.x = (float)(Math.random()*2-1); r.y = (float)(Math.random()*2-1); r.z = (float)(Math.random()*2-1); r.width = (float)(Math.random()/2); r.height = r.width; r.xRotation = Math.random() * 90; r.yRotation = Math.random() * 90; r.zRotation = Math.random() * 90; System.out.println( "Rect "+i+" = "+r ); rp.addRectangle( r ); } } }
/** * {@inheritDoc} * * @see javax.media.opengl.GLEventListener#init(javax.media.opengl.GLAutoDrawable) */ @Override public void init( final GLAutoDrawable drawable ) { super.init( drawable ); this.axesRenderer = new AxesRenderer3D(); // Set the initial look at final float eyeX = 0.5f, eyeY = 1f, eyeZ = 2f; final float lookAtX = 0.5f, lookAtY = 0, lookAtZ = -1f; final float upX = 0, upY = 1, upZ = 0; this.glu.gluLookAt( eyeX, eyeY, eyeZ, lookAtX, lookAtY, lookAtZ, upX, upY, upZ ); // Instantiate the camera mover this.cameraPosition = new RotatingCameraProvider( eyeX, eyeY, eyeZ, lookAtX, lookAtY, lookAtZ, 0.0004f, 0.0004f, 0f, 0.75f ); }