Skip to content


# ColoredSphere

VTKEx/Java/Rendering/ColoredSphere

### Description

This demonstrates a simple visualization pipeline. A polygonal representation of a sphere is created with the source object vtkSphereSource). The sphere is passed through a filter vtkElevationFilter) that computes the height of each point of the sphere above a plane. The plane is perpendicular to the z-axis, and passes through the point (0,0,-1). The data is finally mapped vtkDataSetMapper) through a lookup table. The mapping process converts height value into colors, and interfaces the sphere geometry to the rendering library. The mapper is assigned to an actor, and then the actor is displayed.

The execution of the pipeline occurs implicitly when we render the actor. Each actor asks its mapper to update itself. The mapper in turn asks its input to update itself. This process continues until a source object is encountered. Then the source will execute if modified since the last render.

Info

See Figure 4-19 in Chapter 4 the VTK Textbook.

Other languages

See (Cxx), (Python)

Question

If you have a simple question about this example contact us at VTKExProject If your question is more complex and may require extended discussion, please use the VTK Discourse Forum

### Code

ColoredSphere.java

    import vtk.vtkNativeLibrary;
    import vtk.vtkRenderWindow;
    import vtk.vtkRenderWindowInteractor;
    import vtk.vtkRenderer;
    import vtk.vtkActor;
    import vtk.vtkNamedColors;
    import vtk.vtkPolyDataMapper;
    import vtk.vtkSphereSource;
    import vtk.vtkElevationFilter;

    public class ColoredSphere
    {
      // -----------------------------------------------------------------
      // Load VTK library and print which library was not properly loaded
      static
      {
        if (!vtkNativeLibrary.LoadAllNativeLibraries())
        {
          for (vtkNativeLibrary lib : vtkNativeLibrary.values())
          {
            if (!lib.IsLoaded())
            {
              System.out.println(lib.GetLibraryName() + " not loaded");
            }
          }
        }
        vtkNativeLibrary.DisableOutputWindow(null);
      }
      // -----------------------------------------------------------------

      public static void main(String args[])
      {
        vtkNamedColors Color = new vtkNamedColors();

         //Renderer Background Color
        double BgColor[] = new double[4];

        //Change Color Name to Use your own Color for Renderer Background
        Color.GetColor("SlateGray",BgColor);

        //  Create the renderer, render window and interactor.
        vtkRenderer ren = new vtkRenderer();
        vtkRenderWindow renWin = new vtkRenderWindow();
        renWin.AddRenderer(ren);
        vtkRenderWindowInteractor iren = new vtkRenderWindowInteractor();
        iren.SetRenderWindow(renWin);

        vtkSphereSource sphere = new vtkSphereSource();
        sphere.SetPhiResolution(12);
        sphere.SetThetaResolution(12);

        vtkElevationFilter colorIt = new vtkElevationFilter();
        colorIt.SetInputConnection(sphere.GetOutputPort());
        colorIt.SetLowPoint(0,0,-1);
        colorIt.SetHighPoint(0,0,1);

        //Create a mapper and actor
        vtkPolyDataMapper mapper = new vtkPolyDataMapper();
        mapper.SetInputConnection(colorIt.GetOutputPort());

        vtkActor actor = new vtkActor();
        actor.SetMapper(mapper);

        ren.AddActor(actor);
        ren.SetBackground(BgColor);

        renWin.SetSize(300,300);
        renWin.Render();

        iren.Initialize();
        iren.Start();

      }
    }