private double worst(List rlist, double w) { double rmax = Double.MIN_VALUE, rmin = Double.MAX_VALUE, s = 0.0; Iterator iter = rlist.iterator(); while ( iter.hasNext() ) { double r = ((VisualItem)iter.next()).getDouble(AREA); rmin = Math.min(rmin, r); rmax = Math.max(rmax, r); s += r; } s = s*s; w = w*w; return Math.max(w*rmax/s, s/(w*rmin)); }
double a = item.getDouble(AREA); if (a <= 0.0) { c.remove(len-1);
VisualItem item = (VisualItem)iter.next(); for ( int i=0; i<columns.length; ++i ) { double val = item.getDouble(columns[i]); peaks[i] += val; sum += val;
/** * @see prefuse.action.Action#run(double) */ public void run(double frac) { Iterator iter = m_vis.items(m_group); while ( iter.hasNext() ) { VisualItem item = (VisualItem)iter.next(); try { if ( m_xfield != null ) setX(item, null, item.getDouble(m_xfield)); if ( m_yfield != null ) setY(item, null, item.getDouble(m_yfield)); if ( m_fixedfield != null ) item.setFixed(item.getBoolean(m_fixedfield)); } catch ( Exception e ) { } } }
/** * @see prefuse.action.assignment.SizeAction#getSize(prefuse.visual.VisualItem) */ public double getSize(VisualItem item) { // check for any cascaded rules first double size = super.getSize(item); if ( !Double.isNaN(size) ) { return size; } // otherwise perform data-driven assignment double v = item.getDouble(m_dataField); double f = MathLib.interp(m_scale, v, m_dist); if ( m_bins < 1 ) { // continuous scale v = m_minSize + f * m_sizeRange; } else { // binned sizes int bin = f < 1.0 ? (int)(f*m_bins) : m_bins-1; v = m_minSize + bin*(m_sizeRange/(m_bins-1)); } // return the size value. if this action is configured to return // 2-dimensional sizes (ie area rather than length) then the // size value is appropriately scaled first return m_is2DArea ? PrefuseLib.getSize2D(v) : v; }
/** * @see prefuse.action.assignment.ColorAction#getColor(prefuse.visual.VisualItem) */ public int getColor(VisualItem item) { // check for any cascaded rules first Object o = lookup(item); if ( o != null ) { if ( o instanceof ColorAction ) { return ((ColorAction)o).getColor(item); } else if ( o instanceof Integer ) { return ((Integer)o).intValue(); } else { Logger.getLogger(this.getClass().getName()) .warning("Unrecognized Object from predicate chain."); } } // otherwise perform data-driven assignment switch ( m_type ) { case Constants.NUMERICAL: double v = item.getDouble(m_dataField); double f = MathLib.interp(m_scale, v, m_dist); return m_cMap.getColor(f); default: Integer idx = (Integer) m_oMap.get(item.get(m_dataField)); return m_cMap.getColor(idx.doubleValue()); } }
double value = item.getDouble(columns[i]); baseline[i] += mult * hgt * MathLib.linearInterp(value,0,peaks[i]);
Iterator rowIter = row.iterator(); while ( rowIter.hasNext() ) s += ((VisualItem)rowIter.next()).getDouble(AREA); double x = r.getX(), y = r.getY(), d = 0; double h = w==0 ? 0 : s/w;
/** * Update the values in an interpolated column (a set of three columns * representing a current value along with starting and ending values). * The current value will become the new starting value, while the given * value will become the new current and ending values. * @param item the VisualItem to update * @param field the base field to update, start and ending fields will * also be updated, too. * @param val the value to set */ public static void updateDouble(VisualItem item, String field, double val) { item.setDouble(getStartField(field), item.getDouble(field)); item.setDouble(field, val); item.setDouble(getEndField(field), val); }
/** * Compute a quantitative axis layout. */ protected void numericalLayout(TupleSet ts) { if ( !m_modelSet ) { m_dist[0] = DataLib.min(ts, m_field).getDouble(m_field); m_dist[1] = DataLib.max(ts, m_field).getDouble(m_field); double lo = m_dist[0], hi = m_dist[1]; if ( m_model == null ) { m_model = new NumberRangeModel(lo, hi, lo, hi); } else { ((NumberRangeModel)m_model).setValueRange(lo, hi, lo, hi); } } else { m_dist[0] = ((Number)m_model.getLowValue()).doubleValue(); m_dist[1] = ((Number)m_model.getHighValue()).doubleValue(); } Iterator iter = m_vis.items(m_group, m_filter); while ( iter.hasNext() ) { VisualItem item = (VisualItem)iter.next(); double v = item.getDouble(m_field); double f = MathLib.interp(m_scale, v, m_dist); set(item, f); } }
/** * @see prefuse.action.ItemAction#process(prefuse.visual.VisualItem, double) */ public void process(VisualItem item, double frac) { double v = item.getStartX(); item.setX(v + frac*(item.getEndX()-v)); v = item.getStartY(); item.setY(v + frac*(item.getEndY()-v)); v = item.getDouble(VisualItem.STARTX2); v = v + frac*(item.getDouble(VisualItem.ENDX2)-v); item.setDouble(VisualItem.X2, v); v = item.getDouble(VisualItem.STARTY2); v = v + frac*(item.getDouble(VisualItem.ENDY2)-v); item.setDouble(VisualItem.Y2, v); int c = ColorLib.interp(item.getStartStrokeColor(), item.getEndStrokeColor(), frac); item.setStrokeColor(c); int tc = ColorLib.interp(item.getStartTextColor(), item.getEndTextColor(), frac); item.setTextColor(tc); int fc = ColorLib.interp(item.getStartFillColor(), item.getEndFillColor(), frac); item.setFillColor(fc); }
public void run (double frac) { VisualItem item = null; SwimlanesStatePalette pal = new SwimlanesStatePalette(); Iterator<?> curr_group_items = this.m_vis.items(this.m_group); while (curr_group_items.hasNext()) { item = (VisualItem) curr_group_items.next(); double start_time = item.getDouble(START_FIELD_NAME); double finish_time = item.getDouble(END_FIELD_NAME); item.setShape(Constants.POLY_TYPE_LINE); item.setX(0.0); item.setY(0.0); float [] coords = new float[4]; coords[0] = (float) cs.get_x_coord(start_time); coords[1] = (float) cs.get_y_coord((double)item.getInt("ycoord")); coords[2] = (float) cs.get_x_coord(finish_time); coords[3] = (float) cs.get_y_coord((double)item.getInt("ycoord")); item.set(VisualItem.POLYGON,coords); item.setStrokeColor(pal.getColour(item.getString("state_name"))); } } } // SwimlanesStateAction
VisualItem item = (VisualItem)iter.next(); reset(item); double v = item.getDouble(VALUE); double x = span==0 ? 0 : ((v-m_lo)/span)*breadth; set(item, x, b);
VisualItem item = (VisualItem)iter.next(); reset(item); double v = item.getDouble(VALUE); double x = span==0 ? 0.5*breadth : ((v-m_lo)/span)*breadth; set(item, x, b);
VisualItem item = (VisualItem)iter.next(); reset(item); double v = item.getDouble(VALUE); double x = span==0 ? 0 : ((MathLib.safeSqrt(v)-slo)/sspan)*breadth; set(item, x, b);