/** drawLabel is used here for ticks */ public void drawLabel(Renderer renderer) { // if (!getView3D().isStarted()) return; if (!getGeoElement().isEuclidianVisible()) return; if (!getGeoElement().isLabelVisible()) return; // Application.debug("ici"); for (DrawLabel3D label : labels.values()) label.draw(renderer); super.drawLabel(renderer); }
/** reset the drawable */ public void setWaitForReset() { waitForReset = true; label.setWaitForReset(); setLabelWaitForUpdate(); setWaitForUpdate(); }
/** * draws the label (if any) * * @param renderer 3D renderer * @param forPicking says if this method is called for picking * @return if picking occurred */ private boolean drawLabel(Renderer renderer, boolean forPicking) { if (forPicking) if (!(getGeoElement().isPickable())) return false; if (!isLabelVisible()) return false; label.draw(renderer); return true; }
/** update the label */ protected void updateLabel() { label.update( getGeoElement().getLabelDescription(), getView3D().getApplication().getPlainFont(), getGeoElement().getObjectColor(), getLabelPosition(), getLabelOffsetX(), -getLabelOffsetY()); }
protected void updateLabel() { // draw numbers GeoAxis3D axis = (GeoAxis3D) getGeoElement(); NumberFormat numberFormat = axis.getNumberFormat(); double distance = axis.getNumbersDistance(); // Application.debug("drawMinMax="+getDrawMin()+","+getDrawMax()); double[] minmax = getDrawMinMax(); int iMin = (int) (minmax[0] / distance); int iMax = (int) (minmax[1] / distance); int nb = iMax - iMin + 1; // Application.debug("iMinMax="+iMin+","+iMax); if (nb < 1) { Application.debug("nb=" + nb); // labels = null; return; } // sets all already existing labels not visible for (DrawLabel3D label : labels.values()) label.setIsVisible(false); for (int i = iMin; i <= iMax; i++) { double val = i * distance; Coords origin = ((GeoCoordSys1D) getGeoElement()).getPoint(val); // draw numbers String strNum = getView3D().getKernel().formatPiE(val, numberFormat); // check if the label already exists DrawLabel3D label = labels.get(strNum); if (label != null) { // sets the label visible label.setIsVisible(true); label.update( strNum, 10, getGeoElement().getObjectColor(), origin.copyVector(), axis.getNumbersXOffset(), axis.getNumbersYOffset()); // TODO optimize this } else { // creates new label label = new DrawLabel3D(getView3D()); label.setAnchor(true); label.update( strNum, 10, getGeoElement().getObjectColor(), origin.copyVector(), axis.getNumbersXOffset(), axis.getNumbersYOffset()); labels.put(strNum, label); } } // update end of axis label label.update( ((GeoAxis3D) getGeoElement()).getAxisLabel(), 10, getGeoElement().getObjectColor(), ((GeoCoordSys1D) getGeoElement()).getPoint(minmax[1]), axis.labelOffsetX - 4, axis.labelOffsetY - 6); }
public void setWaitForReset() { super.setWaitForReset(); for (DrawLabel3D label : labels.values()) label.setWaitForReset(); }