Esempio n. 1
0
    /**
     * Actually perform the ruler drawing.
     *
     * @param drawingTools {@link DrawingTools} used to perform the ruler drawing.
     */
    private synchronized void draw(DrawingTools drawingTools) {
      BuffersManager bufferManager = drawingTools.getCanvas().getBuffersManager();
      ElementsBuffer vertices = bufferManager.createElementsBuffer();
      fillVertices(vertices, rulerModel, ticksValue, subTicksValue, canvasProjection);
      DefaultGeometry geometry = new DefaultGeometry();
      geometry.setFillDrawingMode(Geometry.FillDrawingMode.NONE);
      geometry.setLineDrawingMode(Geometry.LineDrawingMode.SEGMENTS);
      geometry.setVertices(vertices);

      Appearance appearance = new Appearance();
      appearance.setLineColor(rulerModel.getColor());
      appearance.setLineWidth((float) rulerModel.getLineWidth());

      drawingTools.getTransformationManager().useWindowCoordinate();
      try {
        for (PositionedSprite positionedSprite : spritesList) {
          drawingTools.draw(
              positionedSprite.getSprite(),
              AnchorPosition.CENTER,
              positionedSprite.getWindowPosition());
        }
        drawingTools.draw(geometry, appearance);
      } catch (SciRendererException ignored) {
      }
      drawingTools.getTransformationManager().useSceneCoordinate();
      bufferManager.dispose(vertices);
    }