public Content addDiscsTo3DViewer(final Image3DUniverse univ, final Color3f c, final ImagePlus colorImage) {
if (!hasCircles())
return null;
final Color3f[] originalColors = Pipe.getPointColors(precise_x_positions, precise_y_positions,
precise_z_positions, c, colorImage);
final List<Color3f> meshColors = new ArrayList<>();
final int edges = 8;
final List<Point3f> allTriangles = new ArrayList<>(edges * points);
for (int i = 0; i < points; ++i) {
final List<Point3f> discMesh = customnode.MeshMaker.createDisc(precise_x_positions[i],
precise_y_positions[i], precise_z_positions[i], tangents_x[i], tangents_y[i], tangents_z[i],
radiuses[i], 8);
final int pointsInDiscMesh = discMesh.size();
for (int j = 0; j < pointsInDiscMesh; ++j)
meshColors.add(originalColors[i]);
allTriangles.addAll(discMesh);
}
return univ.addTriangleMesh(allTriangles, meshColors, univ.getSafeContentName("Discs for path " + getName()));
}