Ejemplo n.º 1
0
  /** 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);
  }
Ejemplo n.º 2
0
  /** reset the drawable */
  public void setWaitForReset() {

    waitForReset = true;
    label.setWaitForReset();
    setLabelWaitForUpdate();
    setWaitForUpdate();
  }
Ejemplo n.º 3
0
  /**
   * 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;
  }
Ejemplo n.º 4
0
  /** update the label */
  protected void updateLabel() {

    label.update(
        getGeoElement().getLabelDescription(),
        getView3D().getApplication().getPlainFont(),
        getGeoElement().getObjectColor(),
        getLabelPosition(),
        getLabelOffsetX(),
        -getLabelOffsetY());
  }
Ejemplo n.º 5
0
  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);
  }
Ejemplo n.º 6
0
 public void setWaitForReset() {
   super.setWaitForReset();
   for (DrawLabel3D label : labels.values()) label.setWaitForReset();
 }