[vtkusers] unable to run example/tutorial code Cone.cxx
Dan Lipsa
dan.lipsa at kitware.com
Thu Apr 23 15:22:31 EDT 2015
Try using an example and the cmake file from
http://www.vtk.org/Wiki/VTK/Examples/Cxx
Dan
On Thu, Apr 23, 2015 at 3:14 PM, eric lamar via vtkusers <vtkusers at vtk.org>
wrote:
> Hello!
>
> I am attempting to run VTK 6.2's example/tutorial code Cone.cxx. It
> compiles, however I get a segmentation fault.
>
> My environment: iMac i7 quad coe, oS X 10.10, VTK 6.2
>
> -------------
> The listing:
> -------------
>
> /*=========================================================================
>
> Program: Visualization Toolkit
> Module: Cone.cxx
>
> Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
> All rights reserved.
> See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
>
> This software is distributed WITHOUT ANY WARRANTY; without even
> the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
> PURPOSE. See the above copyright notice for more information.
>
> =========================================================================*/
> //
> // This example creates a polygonal model of a cone, and then renders it to
> // the screen. It will rotate the cone 360 degrees and then exit. The basic
> // setup of source -> mapper -> actor -> renderer -> renderwindow is
> // typical of most VTK programs.
> //
>
> // First include the required header files for the VTK classes we are
> using.
> #include "vtkConeSource.h"
> #include "vtkPolyDataMapper.h"
> #include "vtkRenderWindow.h"
> #include "vtkCamera.h"
> #include "vtkActor.h"
> #include "vtkRenderer.h"
>
> int main()
> {
> //
> // Next we create an instance of vtkConeSource and set some of its
> // properties. The instance of vtkConeSource "cone" is part of a
> // visualization pipeline (it is a source process object); it produces
> data
> // (output type is vtkPolyData) which other filters may process.
> //
> vtkConeSource *cone = vtkConeSource::New();
> cone->SetHeight( 3.0 );
> cone->SetRadius( 1.0 );
> cone->SetResolution( 10 );
>
> //
> // In this example we terminate the pipeline with a mapper process
> object.
> // (Intermediate filters such as vtkShrinkPolyData could be inserted in
> // between the source and the mapper.) We create an instance of
> // vtkPolyDataMapper to map the polygonal data into graphics primitives.
> We
> // connect the output of the cone souece to the input of this mapper.
> //
> vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();
> coneMapper->SetInputConnection( cone->GetOutputPort() );
>
> //
> // Create an actor to represent the cone. The actor orchestrates
> rendering
> // of the mapper's graphics primitives. An actor also refers to
> properties
> // via a vtkProperty instance, and includes an internal transformation
> // matrix. We set this actor's mapper to be coneMapper which we created
> // above.
> //
> vtkActor *coneActor = vtkActor::New();
> coneActor->SetMapper( coneMapper );
>
> //
> // Create the Renderer and assign actors to it. A renderer is like a
> // viewport. It is part or all of a window on the screen and it is
> // responsible for drawing the actors it has. We also set the background
> // color here.
> //
> vtkRenderer *ren1= vtkRenderer::New();
> ren1->AddActor( coneActor );
> ren1->SetBackground( 0.1, 0.2, 0.4 );
>
> //
> // Finally we create the render window which will show up on the screen.
> // We put our renderer into the render window using AddRenderer. We also
> // set the size to be 300 pixels by 300.
> //
> vtkRenderWindow *renWin = vtkRenderWindow::New();
> renWin->AddRenderer( ren1 );
> renWin->SetSize( 300, 300 );
>
> //
> // Now we loop over 360 degreeees and render the cone each time.
> //
> int i;
> for (i = 0; i < 360; ++i)
> {
> // render the image
> renWin->Render();
> // rotate the active camera by one degree
> ren1->GetActiveCamera()->Azimuth( 1 );
> }
>
> //
> // Free up any objects we created. All instances in VTK are deleted by
> // using the Delete() method.
> //
> cone->Delete();
> coneMapper->Delete();
> coneActor->Delete();
> ren1->Delete();
> renWin->Delete();
>
> return 0;
> }
>
> -------------
> I compile it:
> -------------
> g++ -g -O0 Cone.cxx -I /Users/Eric/VTK/include/vtk-6.2/ -L
> /Users/Eric/VTK/lib -lvtkFiltersSources-6.2 -lvtkRenderingOpenGL-6.2
> -lvtkRenderingCore-6.2 -lvtkCommonExecutionModel-6.2
>
> ------------
> And run it:
> ------------
> ./a.out
> Generic Warning: In
> /Users/Eric/Work/VTK-6.2.0/Rendering/Core/vtkPolyDataMapper.cxx, line 28
> Error: no override found for 'vtkPolyDataMapper'.
>
> Segmentation fault: 11
>
> ---------------
> And debug it:
> ---------------
> lldb a.out
> (lldb) target create "a.out"
> Current executable set to 'a.out' (x86_64).
> (lldb) run
> Process 64007 launched:
> '/Users/Eric/Work/VTK-6.2.0/Examples/Tutorial/Step1/Cxx/a.out' (x86_64)
> Generic Warning: In
> /Users/Eric/Work/VTK-6.2.0/Rendering/Core/vtkPolyDataMapper.cxx, line 28
> Error: no override found for 'vtkPolyDataMapper'.
>
> Process 64007 stopped
> * thread #1: tid = 0x42e799, 0x0000000100000d3e a.out`main + 142 at
> Cone.cxx:51, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS
> (code=1, address=0x0)
> frame #0: 0x0000000100000d3e a.out`main + 142 at Cone.cxx:51
> 48 // connect the output of the cone souece to the input of this
> mapper.
> 49 //
> 50 vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();
> -> 51 coneMapper->SetInputConnection( cone->GetOutputPort() );
> 52
> 53 //
> 54 // Create an actor to represent the cone. The actor orchestrates
> rendering
> (lldb) p coneMapper
> (vtkPolyDataMapper *) $0 = 0x0000000000000000
> (lldb)
>
> -----------
> So, why does the code complain about "no override found ..."? Why does
> the 'codeMapper' get assigned NULL? What am I missing? What do I need to
> change?
>
> Thank you,
> Eric.
>
> _______________________________________________
> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20150423/3257b45c/attachment.html>
More information about the vtkusers
mailing list