[vtkusers] [EXTERNAL] Re: Java vtkPointToCellData

James Labiak jim at jslengineeringsoftware.com
Tue Sep 22 09:35:12 EDT 2015


Hi Gerrick,
Yes, this is the problem; my cells are not being created by the 
vtkPointDataToCellData filter. I'm trying to figure out why that filter 
is not creating the cells from the point data that I supply it.

For the .vtp file, I was just trying to simplify the code sample. For 
reference, to create it, I created vtkPoints with a sequential index 
number + x,y,z coordinate values. Note that the index number has no 
obvious relation to the ordering of points (ID's) that would create a 
cell. However, it seems to me like this should be a common scenario in 
the field. I also create a vtkFloatArray scalars array called 
colorsScalars. Then, I do this:

         // Create a new, empty polyData
         polyData = new vtkPolyData();

         // populate the polyData with the points
         polyData.SetPoints(points);

         // populate the polyData with the scalars
         polyData.GetPointData().SetScalars(this.colorsScalars);

         // Write the polyData to an XML-based ".vtp" format
         // This gives an input file for a simpler test class
         vtkXMLPolyDataWriter xmlWriter = new vtkXMLPolyDataWriter();
         xmlWriter.SetInputData(polyData);
         xmlWriter.SetFileName("C:\\vtk123\\test_data.vtp");
         xmlWriter.Write();

Regards,
Jim

On 9/22/2015 8:35 AM, Gerrick Bivins wrote:
>
> The vtp file seems invalid. It looks like the cells aren’t defined.
>
> Even if the polydata is just points, I think you still have to define the
>
> “Verts” cell array of the polydata.
>
> Gerrick
>
> *From:*vtkusers [mailto:vtkusers-bounces at vtk.org] *On Behalf Of *James 
> Labiak
> *Sent:* Monday, September 21, 2015 8:05 PM
> *To:* Sebastien Jourdain
> *Cc:* vtkusers
> *Subject:* [EXTERNAL] Re: [vtkusers] Java vtkPointToCellData
>
> Hi Sebastien,
> I made the change, but it still seems not to be running the filter. 
> Attached is a java file and a .vtp data file to see what's happening. 
> Also below is the code.
> Thanks,
> Jim
>
> package com.profiles;
>
> import vtk.*;
>
> public class PlotSomePolyDataFromFileRead {
>
>     public static void main(String[] args) {
>         try {
>             new PlotSomePolyDataFromFileRead();
>         } catch (Exception ex_new_PlotSomePolyDataFromFileRead) {
>             System.out.println("[main] Exception at new 
> PlotSomePolyDataFromFileRead()");
> ex_new_PlotSomePolyDataFromFileRead.printStackTrace();
>         }
>     }
>
>     // Load VTK libraries
>     static {
>         if (!vtkNativeLibrary.LoadAllNativeLibraries()) {
>             {
>                 for (vtkNativeLibrary lib : vtkNativeLibrary.values()) {
>                     if (!lib.IsLoaded())
>                         System.out
> .println(lib.GetLibraryName() + " not loaded");
>                 }
>                 System.out.println("Make sure the search path is 
> correct: ");
> System.out.println(System.getProperty("java.library.path"));
>             }
>             vtkNativeLibrary.DisableOutputWindow(null);
>         }
>     }
>
>     private PlotSomePolyDataFromFileRead() {
>
>         // Read the polyData from the data file
>         vtkXMLPolyDataReader xmlReader = new vtkXMLPolyDataReader();
>         xmlReader.SetFileName("C:\\vtk123\\test_data.vtp");
>         xmlReader.Update();
>
>         // Use the filter vtkPointDataToCellData to create the
>         // cells from the point data that's in the vtkPolyData from 
> the reader
>         // *The vtkPolyData from the reader intentionally only 
> includes vtkPoints
>         // and their scalars (that's the given data from the 
> application output)
>         vtkPointDataToCellData polyDataCreateCells = new 
> vtkPointDataToCellData();
> polyDataCreateCells.SetInputConnection(xmlReader.GetOutputPort());
>         polyDataCreateCells.PassPointDataOn();
>         polyDataCreateCells.Update();
>
>         // In order to check if the vtkPointDataToCellData filter worked:
>         // Create new polyData, retrieve polyData (with cells now) from
>         // polyDataCreateCells filter, check values during debug operation
>         vtkPolyData polyDataWithCells = new vtkPolyData();
>         polyDataWithCells = polyDataCreateCells.GetPolyDataOutput();
>         // At this point, polyDataWithCells has (when I run it)
>         // point data but not cell data, nor scalar data
>         // and it should have all 3
>
>         vtkPolyDataMapper polyMapper = new vtkPolyDataMapper();
> polyMapper.SetInputData(polyDataCreateCells.GetPolyDataOutput());
>         polyMapper.Update();
>
>         vtkActor polyActor = new vtkActor();
>         polyActor.SetMapper(polyMapper);
>         polyActor.GetProperty().SetColor(1.0, 1.0, 1.0);
>
>         vtkRenderer renderer = new vtkRenderer();
>         renderer.AddActor(polyActor);
>         renderer.SetBackground(0.0, 0.0, 0.0);
>
>         vtkRenderWindow renderWindow = new vtkRenderWindow();
>         renderWindow.AddRenderer(renderer);
>         renderWindow.SetSize(800, 800);
>
>         vtkRenderWindowInteractor renderWindowInteractor = new 
> vtkRenderWindowInteractor();
> renderWindowInteractor.SetRenderWindow(renderWindow);
>
>         renderWindow.Render();
>         renderWindowInteractor.Start();
>     }
> }
>
> On 9/21/2015 10:38 AM, Sebastien Jourdain wrote:
>
>     Try that
>
>     vtkPointDataToCellData polyDataCreateCells = new
>     vtkPointDataToCellData();
>     polyDataCreateCells.SetInputData(polyData);
>     polyDataCreateCells.PassPointDataOn();
>     polyDataCreateCells.Update();  // <==== For the execution of the
>     filter
>
>
>     // Create new polyData, retrieve completed polyData from
>     polyDataCreateCells
>     vtkPolyData polyDataComplete =
>     polyDataCreateCells.GetPolyDataOutput(); // No need to create a
>     polydata just get a ref from the filter
>
>     On Mon, Sep 21, 2015 at 8:20 AM, James Labiak
>     <jim at jslengineeringsoftware.com
>     <mailto:jim at jslengineeringsoftware.com>> wrote:
>
>     Hello all,
>     I created a pipeline that seems to make sense to me, but always my
>     polyDataComplete is empty. Any ideas why this code doesn't work?
>     The only vtkPointToCellData example on the web that I can find
>     uses blow.vtk, which doesn't exist on my 6.0.0 installation
>     anywhere. The polyData variable gets correctly populated with the
>     points and their scalars below.
>
>             // Create a new, empty polyData
>             polyData = new vtkPolyData();
>
>             // populate the polyData points
>             polyData.SetPoints(points);
>
>             // populate the polyData scalars
>     polyData.GetPointData().SetScalars(colorsScalars);
>
>             vtkPointDataToCellData polyDataCreateCells = new
>     vtkPointDataToCellData();
>             polyDataCreateCells.SetInputData(polyData);
>             polyDataCreateCells.PassPointDataOn();
>
>             // Create new polyData, retrieve completed polyData from
>     polyDataCreateCells
>             vtkPolyData polyDataComplete = new vtkPolyData();
>             polyDataComplete = polyDataCreateCells.GetPolyDataOutput();
>
>             vtkPolyDataMapper polyMapper = new vtkPolyDataMapper();
>             polyMapper.SetInputData(polyDataComplete);
>             polyMapper.ScalarVisibilityOn();
>             polyMapper.SetScalarRange(scalarMin, scalarMax);
>             polyMapper.Update();
>
>             vtkActor polyActor = new vtkActor();
>             polyActor.SetMapper(polyMapper);
>             polyActor.GetProperty().SetColor(1.0, 1.0, 1.0);
>
>     // ...Usual render stuff...
>
>     Thanks,
>     Jim
>
>
>     _______________________________________________
>     Powered by www.kitware.com <http://www.kitware.com>
>
>     Visit other Kitware open-source projects at
>     http://www.kitware.com/opensource/opensource.html
>     <http://www.kitware.com/opensource/opensource.html>
>
>     Please keep messages on-topic and check the VTK FAQ at:
>     http://www.vtk.org/Wiki/VTK_FAQ <http://www.vtk.org/Wiki/VTK_FAQ>
>
>     Search the list archives at:
>     http://markmail.org/search/?q=vtkusers
>     <http://markmail.org/search/?q=vtkusers>
>
>     Follow this link to subscribe/unsubscribe:
>     http://public.kitware.com/mailman/listinfo/vtkusers
>
> ------------------------------------------------------------------------
> This e-mail, including any attached files, may contain confidential 
> and privileged information for the sole use of the intended recipient. 
> Any review, use, distribution, or disclosure by others is strictly 
> prohibited. If you are not the intended recipient (or authorized to 
> receive information for the intended recipient), please contact the 
> sender by reply e-mail and delete all copies of this message.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20150922/f1637f33/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/jpeg
Size: 91063 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20150922/f1637f33/attachment.jpe>


More information about the vtkusers mailing list