[vtkusers] unable to run example/tutorial code Cone.cxx

David E DeMarle dave.demarle at kitware.com
Thu Apr 23 16:48:42 EDT 2015


Agree with Sean.

Since 6.0, and if you are not using cmake on your own project, you need
some #ifdef's to tell vtk which implementation modules to use.

See How Implementation Modules Are Initialized at the bottom of
http://www.vtk.org/Wiki/VTK/Build_System_Migration

David E DeMarle
Kitware, Inc.
R&D Engineer
21 Corporate Drive
Clifton Park, NY 12065-8662
Phone: 518-881-4909

On Thu, Apr 23, 2015 at 4:44 PM, eric lamar via vtkusers <vtkusers at vtk.org>
wrote:

> Dan:
>
> Thanks for the pointer - however, my need is a little different.  I am
> making a library that uses VTK.   I need to be able to compile this library
> directly - I need to see on the command line all of the arguments to the
> compile.  When I compile the first program, titled "Hello World" (
> http://www.vtk.org/Wiki/VTK/Examples/Cxx/Rendering/Cylinder):
>
>  g++ -g -O0 Cylinder.cxx -I ~/VTK/include/vtk-6.2 -L ~/VTK/lib  -lvtkFiltersSources-6.2
> -lvtkRenderingOpenGL-6.2 -lvtkRenderingCore-6.2
> -lvtkCommonExecutionModel-6.2 -lvtkCommonCore-6.2
>
> The program compiles without errors or warnings.  However, I get the same
> segmentation fault with a null pointer when I run the program.  I've also
> linked against all 117 libraries (rather than just the 5 listed above)
> without any difference.  Note that when I compile with the default
> 'Makefile', it works.   I've examined the 'Makefile's that cmake produces
> to see what it does differently, but I just don't understand what I'm
> seeing in the 'Makefile's.  What is done differently in the 'Makefile's
> that I'm not doing on the command line?
>
> Thank you,
> Eric.
>
>   ------------------------------
>  *From:* Dan Lipsa <dan.lipsa at kitware.com>
> *To:* eric lamar <ec_lamar at yahoo.com>
> *Cc:* "vtkusers at vtk.org" <vtkusers at vtk.org>
> *Sent:* Thursday, April 23, 2015 12:22 PM
> *Subject:* Re: [vtkusers] unable to run example/tutorial code Cone.cxx
>
> 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
>
>
>
>
>
> _______________________________________________
> 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/cdf2894f/attachment.html>


More information about the vtkusers mailing list