/** Transfers internal point data to jReality */
  private void updatePoints() {
    if (pointCoordinates.size() == 0) return;
    psf.setVertexCount(pointCoordinates.size());
    psf.setVertexCoordinates(pointCoordinates.toArray(new double[0][0]));
    psf.setVertexColors(pointColors.toArray(new Color[0]));

    double[] sizesArray = new double[pointSizes.size()];
    for (int i = 0; i < pointSizes.size(); ++i) sizesArray[i] = pointSizes.get(i);

    psf.setVertexRelativeRadii(sizesArray);
    psf.update();
  }
  private void updateCircles() {
    if (circleCenters.size() == 0) return;
    psf2.setVertexCount(circleCenters.size());
    psf2.setVertexCoordinates(circleCenters.toArray(new double[0][0]));
    psf2.setVertexColors(circleColors.toArray(new Color[0]));
    psf2.setVertexNormals(circleNormals.toArray(new double[0][0]));

    double[] radiiArray = new double[circleRadii.size()];
    for (int i = 0; i < circleRadii.size(); ++i) radiiArray[i] = circleRadii.get(i);

    psf2.setVertexRelativeRadii(radiiArray);
    psf2.update();
  }