[vtkusers] vtkusers Digest, Vol 145, Issue 16

Richard Frank rickfrank at me.com
Mon May 16 15:17:26 EDT 2016


Thanks I'll try again - coulda sworn I tried those but if those don't work I must have some other issue going on...

Rick Frank

> On May 16, 2016, at 1:47 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
> 
> Look at
> Common/ComputationalGeometry/Testing/Cxx/UnitTestParametricSpline.cxx
> 
> You can just
> theImageRead =  reader->GetOutput();
> 
>> On Mon, May 16, 2016 at 1:38 PM, Richard Frank <rickfrank at me.com> wrote:
>> Sorry for the blank reply previous.
>> 
>> The Tutorial is great but I don't see an example of the case I'm talking
>> about.
>> 
>> That is, returning a pointer to the caller in such a way that the caller
>> doesn't  have to think about whether they need to explicitly delete.
>> 
>> so, given a function  or method with a signature already returning a bool,
>> and other code already dependent on that return type, I want to return the
>> result of reading a file, for instance:
>> 
>> bool ReadAnImageFile(vtkSmartPointer<vtkImageData> & theImageRead)
>> {
>>   vtkSmartPointer<vtkImageFileReader> reader =
>> vtkSmartPointer<vtkImageFileReader>::New9);
>> 
>> reader->SetFileName("Something.png");
>> reader->Update();
>> 
>> vtkImageData * image =  reader->GetOutput();  How to get image into
>> theImageRead?
>> 
>> // This seems to work
>> 
>> theImageRead->DeepCopy(image);
>> 
>> // but if it's really doing a deep copy and I have a large 3D .mha file or
>> something
>> // it will be slow.....is there a better way?
>> }
>> 
>> 
>> Thanks
>> 
>> Rick
>> 
>> On May 16, 2016, at 12:00 PM, vtkusers-request at vtk.org wrote:
>> 
>> Send vtkusers mailing list submissions to
>>     vtkusers at vtk.org
>> 
>> To subscribe or unsubscribe via the World Wide Web, visit
>> http://public.kitware.com/mailman/listinfo/vtkusers
>> or, via email, send a message with subject or body 'help' to
>>     vtkusers-request at vtk.org
>> 
>> You can reach the person managing the list at
>> vtkusers-owner at vtk.org
>> 
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of vtkusers digest..."
>> 
>> 
>> Today's Topics:
>> 
>> 1. why does the generated 3D model have borken part? (Liu_tj)
>> 2. Re: SmartPointer reference? (Dan Lipsa)
>> 3. Re: vtkBooleanOperationPolyDataFilter creates  non-manifold
>> edges (Andras Lasso)
>> 
>> 
>> ----------------------------------------------------------------------
>> 
>> Message: 1
>> Date: Mon, 16 May 2016 21:11:33 +0800 (CST)
>> From: Liu_tj <tjlp at netease.com>
>> To: vtkusers <vtkusers at vtk.org>
>> Subject: [vtkusers] why does the generated 3D model have borken part?
>> Message-ID: <7543d5b6.11.154b9b16f2f.Coremail.tjlp at netease.com>
>> Content-Type: text/plain; charset="utf-8"
>> 
>> Hi,
>> 
>> I used vtkMarchingCubes, vtkDecimatePro and vtkSmoothPolyDataFilter to
>> generate 3D model for DICOM image. When it is firstly generated, the 3D
>> model is fine (See the attached First.jpg). However, when I store it to STL
>> file and use STLReader to read the STL file and display in vtkRenderWindow,
>> it shows broken part (See loading.jpg). Why?
>> 
>> Thanks
>> Liu Peng
>> 
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL:
>> <http://public.kitware.com/pipermail/vtkusers/attachments/20160516/b1f7bc02/attachment-0001.html>
>> -------------- next part --------------
>> A non-text attachment was scrubbed...
>> Name: First.jpg
>> Type: image/jpeg
>> Size: 36205 bytes
>> Desc: not available
>> URL:
>> <http://public.kitware.com/pipermail/vtkusers/attachments/20160516/b1f7bc02/attachment-0002.jpg>
>> -------------- next part --------------
>> A non-text attachment was scrubbed...
>> Name: loading.jpg
>> Type: image/jpeg
>> Size: 24157 bytes
>> Desc: not available
>> URL:
>> <http://public.kitware.com/pipermail/vtkusers/attachments/20160516/b1f7bc02/attachment-0003.jpg>
>> 
>> ------------------------------
>> 
>> Message: 2
>> Date: Mon, 16 May 2016 10:18:30 -0400
>> From: Dan Lipsa <dan.lipsa at kitware.com>
>> To: Richard Frank <rickfrank at me.com>
>> Cc: VTK Users <vtkusers at vtk.org>
>> Subject: Re: [vtkusers] SmartPointer reference?
>> Message-ID:
>> <CADwGrVq4_tna0Oph5Tqn+m=6Uk4GTn8GJuGBvdfZ8XudbjcsBA at mail.gmail.com>
>> Content-Type: text/plain; charset="utf-8"
>> 
>> Does this help?
>> http://www.vtk.org/Wiki/VTK/Tutorials/SmartPointers
>> 
>> What exactly is the problem you are seeing?
>> Dan
>> 
>> 
>> On Fri, May 13, 2016 at 7:22 PM, Richard Frank <rickfrank at me.com> wrote:
>> 
>> 
>> Hi,
>> 
>> 
>> Is it possible to return a smart pointer by reference?
>> 
>> 
>> I'd like to return an image as a parameter, rather than a return type but
>> 
>> nothing seems to be happy.
>> 
>> 
>> for instance
>> 
>> 
>> bool SomeFunction(vtkSmartPointer<vtkImageData> & outImage)
>> 
>> {
>> 
>> vtkSmartPointer<vtkImageReader> r =
>> 
>> vtkSmartPointer<vtkImageReader>::New();
>> 
>> r->SetFileName("Path");
>> 
>> r->Update();
>> 
>> // What next?
>> 
>> 
>> return true;
>> 
>> }
>> 
>> 
>> I though Take was a possible choice
>> 
>> 
>> outImage = vtkSmartPointer<vtkImageData>::Take(r->GetOutput());
>> 
>> 
>> but no happiness there.
>> 
>> 
>> Any solution?
>> 
>> 
>> Thanks
>> 
>> 
>> Rick
>> 
>> 
>> 
>> 
>> _______________________________________________
>> 
>> Powered by 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
>> 
>> 
>> Search the list archives at: http://markmail.org/search/?q=vtkusers
>> 
>> 
>> Follow this link to subscribe/unsubscribe:
>> 
>> http://public.kitware.com/mailman/listinfo/vtkusers
>> 
>> 
>> 
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL:
>> <http://public.kitware.com/pipermail/vtkusers/attachments/20160516/2787da74/attachment-0001.html>
>> 
>> ------------------------------
>> 
>> Message: 3
>> Date: Mon, 16 May 2016 15:14:15 +0000
>> From: Andras Lasso <lasso at queensu.ca>
>> To: normanius <juch at zhaw.ch>, "vtkusers at vtk.org" <vtkusers at vtk.org>
>> Subject: Re: [vtkusers] vtkBooleanOperationPolyDataFilter creates
>>   non-manifold        edges
>> Message-ID:
>> 
>> <DM2PR07MB350120A5448638CA86B2746D8770 at DM2PR07MB350.namprd07.prod.outlook.com>
>> 
>> Content-Type: text/plain; charset="us-ascii"
>> 
>> but it cannot be that one has to do that extra cleanup step after every such
>> basic operation, right?!
>> 
>> 
>> Performing Boolean operation on meshes may sound easy but is an extremely
>> difficult problem. It would be nice if VTK had a solution that worked
>> reliably, so it's great that you submit reports on specific problems you
>> find.
>> 
>> However, I'm not sure if there is anybody who could work on fixing these
>> issues in the near future. So, if you cannot fix them yourself then most
>> likely your best bet is to work around the problem by converting all meshes
>> to images, combining them, and regenerating a mesh.
>> 
>> Andras
>> 
>> -----Original Message-----
>> From: vtkusers [mailto:vtkusers-bounces at vtk.org] On Behalf Of normanius
>> Sent: May 15, 2016 4:54 AM
>> To: vtkusers at vtk.org
>> Subject: [vtkusers] vtkBooleanOperationPolyDataFilter creates non-manifold
>> edges
>> 
>> Hi all
>> 
>> This is an issue that has been raised already. But I wanted to ask whether
>> there is a workaround or whether it actually is a bug that has been properly
>> reported.
>> 
>> Find attached sample code which reproduces the problem: If I union two
>> overlapping, watertight objects A and B, the resulting object C very likely
>> won't be watertight (it shows border edges and non-manifold edges).
>> 
>> The sample code in essence does this:
>> - create cylinder A as a vtk.vtkCylinderSource
>> - create sphere B as a vtk.vtkSphereSource
>> - extract triangles from A and B
>> - create union C with vtk.vtkBooleanOperationPolyDataFilter() with
>> SetOperationToUnion()
>> 
>> The problem occurs also, if I use other objects than cylinders or spheres.
>> The problem occurs also, if I "clean/condition" the surfaces of A and B
>> before calculating the union. (I tried vtkCleanPolyData(),
>> vtkFillHolesFilter() and addition of small noise on the vertices, which
>> sometimes helps to regularise operations on objects)
>> 
>> In the following two screenshots. The first one indicates the two objects to
>> union. The second one shows the result, with the non-manifold and border
>> edges.
>> 
>> <http://vtk.1045678.n5.nabble.com/file/n5738088/input.png>
>> <http://vtk.1045678.n5.nabble.com/file/n5738088/result.png>
>> 
>> Because I often make use of vtkBooleanOperationPolyDataFilter, the problem
>> is really annoying for me. That's why I thought to seek help in the
>> community. Any ideas of how to handle this?
>> Cleaning the surface (set flag cleanOutputSurface=True in my code) does
>> improve the situation in some cases - but it cannot be that one has to do
>> that extra cleanup step after every such basic operation, right?!
>> 
>> By the way: this problem has been reported already: see here
>> <http://vtk.1045678.n5.nabble.com/Non-manifold-triangles-after-running-vtkBooleanOperationPolydataFilter-td5713964.html>
>> and here
>> <http://vtk.1045678.n5.nabble.com/Broken-surfaces-for-vtkBooleanOperationPolyDataFilter-Bug-td5735413.html>
>> reproduced_problem.py
>> <http://vtk.1045678.n5.nabble.com/file/n5738088/reproduced_problem.py> .
>> 
>> Thanks for any inputs from your side.
>> 
>> 
>> 
>> --
>> View this message in context:
>> http://vtk.1045678.n5.nabble.com/vtkBooleanOperationPolyDataFilter-creates-non-manifold-edges-tp5738088.html
>> Sent from the VTK - Users mailing list archive at Nabble.com.
>> _______________________________________________
>> Powered by 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
>> 
>> Search the list archives at: http://markmail.org/search/?q=vtkusers
>> 
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/vtkusers
>> 
>> 
>> ------------------------------
>> 
>> Subject: Digest Footer
>> 
>> _______________________________________________
>> Powered by 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
>> 
>> Search the list archives at: http://markmail.org/search/?q=vtkusers
>> 
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/vtkusers
>> 
>> ------------------------------
>> 
>> End of vtkusers Digest, Vol 145, Issue 16
>> *****************************************
>> 
>> 
>> _______________________________________________
>> Powered by 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
>> 
>> Search the list archives at: http://markmail.org/search/?q=vtkusers
>> 
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/vtkusers
> 
> 
> 
> -- 
> Unpaid intern in BillsBasement at noware dot com


More information about the vtkusers mailing list