[vtkusers] vtkDICOMImageReader -> vtkCutter -> vtkMarchingCubes

David Doria daviddoria+vtk at gmail.com
Thu Dec 24 08:23:22 EST 2009


On Thu, Dec 24, 2009 at 8:04 AM, Jinyoung Hwang <hwangjinyoung at gmail.com> wrote:
> To David,
>
> How can I send my codes and data?
>
> Jinyoung
>
>
> 2009/12/24 KS Jothybasu <jothybasu at gmail.com>
>>
>> Thanks Jinyoung!
>>
>> I wish all the vtkusers list members a  Merry Christmas and a very happy
>> New Year!
>>
>> Best regards
>>
>> Jothy
>>
>> On Thu, Dec 24, 2009 at 10:09 AM, KS Jothybasu <jothybasu at gmail.com>
>> wrote:
>>>
>>> Thanks!
>>>
>>> Does the SetOrigin(100,0,0) mean a sagitall cut or cut in the X-plane at
>>> 100th pixel and what does SetValue(0, 0.5) mean?
>>>
>>> Many thanks again
>>>
>>> Jothy
>>>
>>> On Thu, Dec 24, 2009 at 3:50 AM, Jinyoung Hwang <hwangjinyoung at gmail.com>
>>> wrote:
>>>>
>>>> Hello,
>>>>
>>>> I made an example you want, but it may not be.
>>>> If not, repost again, then other will help you.
>>>>
>>>> Jinyoung
>>>>
>>>>
>>>> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>>>  // data load
>>>>  vtkSmartPointer<vtkStructuredPointsReader> reader =
>>>> vtkSmartPointer<vtkStructuredPointsReader>::New();
>>>>  reader->SetFileName("test.vtk");
>>>>  reader->Update();
>>>>  // MC is used to display in 3D
>>>>  vtkSmartPointer<vtkMarchingCubes> cubes =
>>>> vtkSmartPointer<vtkMarchingCubes>::New();
>>>>  cubes->SetInputConnection(reader->GetOutputPort());
>>>>  cubes->ComputeNormalsOn();
>>>>  cubes->ComputeGradientsOn();
>>>>  cubes->SetValue(0, 20);
>>>>  cubes->Update();
>>>> // create a plane, and specify it
>>>>  vtkSmartPointer<vtkPlane> plane = vtkSmartPointer<vtkPlane>::New();
>>>>  plane->SetOrigin(100,0,0);
>>>>  plane->SetNormal(1,0,0);
>>>> // create a cutter
>>>>  vtkSmartPointer<vtkCutter> cutter = vtkSmartPointer<vtkCutter>::New();
>>>>  cutter->SetInputConnection(cubes->GetOutputPort());
>>>>  cutter->SetCutFunction(plane);
>>>>  cutter->GenerateCutScalarsOn();
>>>>  cutter->SetValue(0, 0.5);
>>>>  // create a mapper
>>>>  vtkSmartPointer<vtkPolyDataMapper> mapper =
>>>> vtkSmartPointer<vtkPolyDataMapper>::New();
>>>>  mapper->SetInputConnection(cutter->GetOutputPort());
>>>>  mapper->ScalarVisibilityOn();
>>>>  mapper->Update();
>>>>
>>>> _______________________________________________
>>>> 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
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>>
>>>
>>
>
>
> _______________________________________________
> 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
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
>

There are a few options.
1) upload them to an ftp server somewhere and send us the link
2) email the code and attach the file (this is not preferred)
3) (preferred) create an example at http://www.cmake.org/Wiki/VTK/Examples

I actually just realized we already have an example of vtkCutter
(http://www.cmake.org/Wiki/VTK/Examples/vtkCutter), so I'm not sure if
you need to send this anymore unless you think it adds something new
:)

Thanks,

David



More information about the vtkusers mailing list