[vtkusers] [EXTERNAL] Re: Java vtkPointToCellData
James Labiak
jim at jslengineeringsoftware.com
Fri Sep 25 11:38:42 EDT 2015
Hi Gerrick and Seb,
Thanks for all of your help so far, I appreciate it. I did try the
vtkSurfaceReconstructionFilter. The resultant surface was kind of weird,
but it had the basic shape. I will definitely experiment more with that.
I will report back on that and a couple of other approaches.
Regards,
Jim
On 9/25/2015 10:11 AM, Gerrick Bivins wrote:
>
> Hi James
>
> Glad you got that part working.
>
> It sounds like you want to do something like this:
>
> http://www.vtk.org/Wiki/VTK/Examples/Cxx/Filtering/SurfaceFromUnorganizedPoints
>
> Gerrick
>
> *From:*James Labiak [mailto:jim at jslengineeringsoftware.com]
> *Sent:* Friday, September 25, 2015 8:55 AM
> *To:* Sebastien Jourdain; Gerrick Bivins
> *Cc:* vtkusers
> *Subject:* Re: [EXTERNAL] Re: [vtkusers] Java vtkPointToCellData
>
> I got the verts to work and can plot the points, but am struggling to
> create a surface through the points. Any recommendations on an
> approach? The geometry is similar to: cut a rectangle through a sphere
> and slide the piece out; the sphere faces that remain are similar to
> my geometry (just small deviations), but I am focusing on simply
> trying to create one surface on one face.
>
> On 9/22/2015 9:36 AM, Sebastien Jourdain wrote:
>
> I wasn't sure at first based on your comment, but I don't
> think vtkPointDataToCellData is meant to create Cells.
>
> And if you don't create any cell, then you won't be able to see
> anything.
>
> You can create a single polyverts with all the points ids.
>
> vtkCellArray verts = new vtkCellArray();
>
> verts.InsertNextCell( points.GetNumberOfPoints() );
>
> for(int i=0; i < points.GetNumberOfPoints(); i++) {
>
> verts.InsertNextPoint(i);
>
> }
>
> polyDataWithCells.SetVerts(verts)
>
> The code above, should create the expected cells. Just be aware
> that it was written in a mail with uncertainty regarding the
> method names and class names.
>
> But that should be enough to get you started with an appropriate IDE.
>
> Seb
>
> On Tue, Sep 22, 2015 at 6:35 AM, Gerrick Bivins
> <Gerrick.Bivins at halliburton.com
> <mailto:Gerrick.Bivins at halliburton.com>> 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
> <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
>
> 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
>
> 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/20150925/07cd8c59/attachment-0001.html>
More information about the vtkusers
mailing list