[vtkusers] some problems upgraded to VTK 5.2 plus QT 4.4.
Eric E. Monson
emonson at cs.duke.edu
Fri Nov 14 18:11:59 EST 2008
Hey Dongqing,
I'm not sure if this is the problem, but it sounds quite similar to a
recent thread:
http://www.vtk.org/pipermail/vtkusers/2008-November/098266.html
In her reply, Amy Squillacote pointed the user to:
http://www.vtk.org/Wiki/VTK_FAQ#The_C.2B.2B_compiler_cannot_convert_some_pointer_type_to_another_pointer_type_in_my_little_program
See if putting in #include "vtkImageData.h" helps.
-Eric
On Nov 14, 2008, at 8:41 PM, Dongqing Chen wrote:
> Dear All:
>
> During the past two days, I got really nice from this group list
> and finally installed the VTK 5.2 (upgraded from VTK 5.0) and QT 4.4.
>
> Since it is my first time to use QT to design GUI, I tried two
> simple examples recommended by Dr. Eric E Monson at Duke University,
> and both run very well.
>
> Now, I copy and paste some simple codes from my previous program,,
> which worked very well under VTK 5.0.
>
> But I do not know why those two problems appeared. Any hint or
> clue should be highly appreciated.
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------
> SimpleView4.cxx
> E:\QT_Practice\QT_SimpleView\src\SimpleView4.cxx(93) : error C2664:
> 'void __thiscall vtkPolyDataAlgorithm::SetInput(class vtkDataObject
> *)' : cannot convert parameter 1 from 'class vtkImageData *' to
> 'class vtkDataObject *'
> Types pointed to are unrelated; conversion requires
> reinterpret_cast, C-style cast or function-style cast
> E:\QT_Practice\QT_SimpleView\src\SimpleView4.cxx(136) : error C2664:
> 'void __thiscall vtkAlgorithm::SetInputConnection(class
> vtkAlgorithmOutput *)' : cannot convert parameter 1 from 'class
> vtkPolyData *' to 'class vtkAlgorithmOutput *'
> Types pointed to are unrelated; conversion requires
> reinterpret_cast, C-style cast or function-style cast
> Error executing cl.exe.
>
> The first error refers to isoSurface->SetInput(readerSegmented-
> >GetOutput());
> while the second error refers to mapper->SetInputConnection(normals-
> >GetOutput());
> ------------------------------------------Directly modify the
> SimpleView
> code-------------------------------------------------------------
> void SimpleView::fileOpen()
> {
> // Geometry
> //source = vtkCylinderSource::New();
>
> //starting from here, modified by Dongqing Chen,
> //load in pgm firstly, then dicom
>
> // Load Segmented Volume
> int N1, N2, m_Slices, m_X, m_Y, m_Z;
> char SourcePath[256];
>
> vtkPNMReader *readerSegmented = vtkPNMReader::New();
> readerSegmented->SetDataExtent(0, N1-1, 0, N2-1, 1, m_Slices);
> readerSegmented->SetDataSpacing(m_X, m_Y, m_Z);
> readerSegmented->SetFilePrefix (SourcePath);
> readerSegmented->SetFilePattern("%s.%03d.pgm"); // %s is
> prefix, '.', then number taken from DataExtent (1, Slices).
>
> // Create IsoSurface
> vtkMarchingCubes *isoSurface = vtkMarchingCubes::New();
> isoSurface->SetInput(readerSegmented->GetOutput());
> isoSurface->SetValue(0, 200); //you need to change this value to
> get the good result
>
> //Clean the Data
> vtkCleanPolyData *cleaner = vtkCleanPolyData::New();
> cleaner->SetInput(isoSurface->GetOutput());
>
> //Decimate the volume
> vtkDecimatePro *deci = vtkDecimatePro::New();
> deci->SetInput(cleaner->GetOutput());
> deci->SetTargetReduction(0.25);
> deci->PreserveTopologyOn();
>
> //Linear SubdivisionFilter to make the mesh surface more denser
> vtkLinearSubdivisionFilter *linear =
> vtkLinearSubdivisionFilter::New();
> linear->SetInput(cleaner->GetOutput());
> int times=0; //iteration times,
> //Each subdivision iteration create
> //4 new triangles for each triangle in the polydata.
> linear->SetNumberOfSubdivisions(times);
>
> //Smooth the volume
> int m_SmoothIterations=20;
>
> vtkWindowedSincPolyDataFilter *smooth =
> vtkWindowedSincPolyDataFilter::New();
> smooth->SetInput(linear->GetOutput());
> smooth->SetNumberOfIterations(m_SmoothIterations);
> smooth->BoundarySmoothingOn();
> smooth->SetFeatureAngle(120);
> smooth->SetEdgeAngle(90);
> smooth->SetPassBand(0.01);
>
> //Create Normal Vectors to enhance smoothness & illumination
> vtkPolyDataNormals *normals = vtkPolyDataNormals::New();
> normals->SetInput(smooth->GetOutput());
> normals->SetFeatureAngle(60.0);
> normals->FlipNormalsOff();
> normals->ComputePointNormalsOn();
>
> // Mapper
> mapper = vtkPolyDataMapper::New();
> mapper->ImmediateModeRenderingOn();
> //mapper->SetInputConnection(source->GetOutputPort());
> mapper->SetInputConnection(normals->GetOutput());
> mapper->ScalarVisibilityOff();
>
> // Actor in scene
> actor = vtkActor::New();
> actor->SetMapper(mapper);
>
> // Add Actor to renderer
> ren->AddActor(actor);
>
> // Reset camera
> ren->ResetCamera();
>
> ren->GetRenderWindow()->Render();
> }
>
> void SimpleView::fileExit() {
> qApp->exit();
> }
> ------------------------------------------------------------------------------------------------------------------------------------
>
>
>
>
> Best Wishes,
> -----------------------------------------------------------------------------
> Dongqing Chen, Ph.D.
> Computer Vision & Image Processing (CVIP) Lab
> Department of Electrical & Computer Engineering
> Speed School of Engineering
> University of Louisville
> Louisville, KY, 40292
> U.S.A
> email: dqchen at cvip.louisville.edu
> phone: 1-502-852-2789 (Lab)
> 1-502-852-6130 (Office)
> ----------------------------------------------------------------------------
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20081114/44ddae73/attachment.htm>
More information about the vtkusers
mailing list