/** * Helper function to calulate the render position of a data unit * @param x The data unit x * @param y The data unit y * @return The render position */ public Point2d calculatePosition( final double x, final double y ) { final int[] p = this.calculatePosition( new double[] {x, y} ); return new Point2dImpl( p[0], p[1] ); }
/** * {@inheritDoc} * @see org.openimaj.vis.general.ItemPlotter#plotObject(org.openimaj.image.Image, org.openimaj.vis.general.XYPlotVisualisation.LocatedObject, org.openimaj.vis.general.AxesRenderer2D) */ @Override public void plotObject( final MBFImage visImage, final XYPlotVisualisation.LocatedObject<ColouredDot> object, final AxesRenderer2D<Float[],MBFImage> renderer ) { // System.out.println( "Object at "+object.x+","+object.y+" is plotted at "+ // renderer.calculatePosition( object.x, object.y ) ); visImage.createRenderer().drawShapeFilled( new Circle( renderer.calculatePosition( object.x, object.y ), (float)(renderer.scaleDimensions( object.object.size, object.object.size )[0] ) ), object.object.colour ); }
@Override public void plotObject( final MBFImage visImage, final LocatedObject<MBFImage> object, final AxesRenderer2D<Float[],MBFImage> renderer ) { final MBFImage thumbnail = object.object.process( new ResizeProcessor( this.thumbnailSize ) ); final Point2d p = renderer.calculatePosition( object.x, object.y ); visImage.createRenderer().drawImage( thumbnail, (int)p.getX(), (int)p.getY() ); }
/** * {@inheritDoc} * @see org.openimaj.vis.general.ItemPlotter#plotObject(org.openimaj.image.Image, org.openimaj.vis.general.XYPlotVisualisation.LocatedObject, org.openimaj.vis.general.AxesRenderer2D) */ @Override public void plotObject( final MBFImage visImage, final org.openimaj.vis.general.XYPlotVisualisation.LocatedObject<TimelineObject> object, final AxesRenderer2D<Float[], MBFImage> renderer ) { // Work out where we're going to plot this timeline object. final Point2d p = renderer.calculatePosition( object.x, object.y ); // Reset its size, if we need to then update the visualisation object.object.setRequiredSize( new Dimension( object.object.getRequiredSize().width, this.bandSize ) ); object.object.updateVis(); // Now get the image and draw it in the correct place. final MBFImage i = object.object.getVisualisationImage(); if( i != null ) visImage.drawImage( i, (int)p.getX(), (int)p.getY() ); }
/** * {@inheritDoc} * @see org.openimaj.vis.general.XYPlotVisualisation#beforeAxesRender(org.openimaj.image.MBFImage, org.openimaj.vis.general.AxesRenderer2D) */ @Override public void beforeAxesRender( final MBFImage visImage, final AxesRenderer2D<Float[],MBFImage> renderer ) { int maxBand = 1; for( final XYPlotVisualisation.LocatedObject<O> s : this.data ) maxBand = Math.max( maxBand, (int)s.y ); renderer.setMaxYValue( maxBand ); renderer.setImage( visImage ); renderer.precalc( ); final Float[][] cols = new Float[][]{ {0.4f,0.4f,0.4f}, {0.3f,0.3f,0.3f} }; for( int b = 1; b <= maxBand; b++ ) { final int topOfBand = (int)renderer.calculatePosition( 0, b ).getY(); final int bottomOfBand = (int)renderer.calculatePosition( 0, b-1 ).getY(); visImage.createRenderer().drawShapeFilled( new Rectangle( 0, topOfBand, visImage.getWidth(), bottomOfBand-topOfBand ), cols[b%2] ); if( b == 1 ) this.bandSizeKnown( bottomOfBand - topOfBand ); } }
final Point2d mid = axesRenderer.calculatePosition(0, 0); final Point2d dateLine0 = axesRenderer.calculatePosition(180, 0); final Point2d northPole = axesRenderer.calculatePosition(0, -90);
final Point2d mid = axesRenderer.calculatePosition(0, 0); final Point2d dateLine0 = axesRenderer.calculatePosition(180, 0); final Point2d northPole = axesRenderer.calculatePosition(0, -90); final double scaleX = (dateLine0.getX() - mid.getX()) / 180d; final double scaleY = (northPole.getY() - mid.getY()) / 90d;
/** * Add an object to a track. * * @param tt The track to add the object to * @param obj The timeline objec to add * @return The timeline track */ public TimelineTrack addTimelineObject( final TimelineTrack tt, final TimelineObject obj ) { super.addObject( tt.getTrackNumber(), obj.getStartTimeMilliseconds(), obj ); if( obj instanceof AnimatedVisualisationProvider ) ((AnimatedVisualisationProvider)obj).addAnimatedVisualisationListener( this ); obj.setDataPixelTransformer( this.axesRenderer2D.getRelativePixelTransformer( (int)this.axesRenderer2D.calculatePosition( obj.getStartTimeMilliseconds(), 0 ).getX(), tt.getTrackNumber() ) ); return tt; }
Point2d pos = renderer.calculatePosition( object.x, object.y ); pos = renderer.calculatePosition( object.x + object.object.size, object.y );
final int[] p = this.axesRenderer2D.calculatePosition(new double[] { object.x, object.y }); final int[] z = this.axesRenderer2D.calculatePosition(new double[] { object.object.startX, 0 }); final int[] p2 = this.axesRenderer2D.calculatePosition(new double[] { object.object.endX, 0 });
final Point2d dd = this.calculatePosition( 0, this.yAxisConfig.getMinValue() ); yLoc[0] = dd.getX(); yLoc[1] = dd.getY();