[vtkusers] can't add PropAssembly to PropAssembly
Christopher.Moore at noaa.gov
Christopher.Moore at noaa.gov
Thu Mar 17 17:47:01 EST 2005
The documentation says that a PropAssembly can contain other PropAssemblies, but
my code seg faults when I try this.
I create two PropAssemblies, one with a ConeSource and one with a SphereSource,
add them to the render, this works.
I create two PropAssemblies, one with a ConeSource AND a SphereSource, and then
add this to the second PropAssembly -> run-time error "segmentation fault".
Any ideas? Short code segment below.
Cheers,
Chris
__________________________________________________________________
Christopher Moore email: Christopher.Moore at noaa.gov
Research Scientist, Oceanography tel: 206.526.6779
University of Washington/JISAO/NOAA-PMEL fax: 206.526.6744
------------------------------------------------------------------
#include "vtkConeSource.h"
#include "vtkSphereSource.h"
#include "vtkPolyDataMapper.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkCamera.h"
#include "vtkPropAssembly.h"
#include "vtkActor.h"
#include "vtkRenderer.h"
int main( int argc, char *argv[] )
{
vtkRenderer *ren1= vtkRenderer::New();
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer( ren1 );
renWin->SetSize( 300, 300 );
iren->SetRenderWindow( renWin );
// make a cone
vtkConeSource *cone = vtkConeSource::New();
vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();
coneMapper->SetInput( cone->GetOutput() );
vtkActor *coneActor = vtkActor::New();
coneActor->SetMapper( coneMapper );
// make a sphere
vtkSphereSource *sphere = vtkSphereSource::New();
vtkPolyDataMapper *sphereMapper = vtkPolyDataMapper::New();
sphereMapper->SetInput( sphere->GetOutput() );
vtkActor *sphereActor = vtkActor::New();
sphereActor->SetMapper( sphereMapper );
// this works:
// ren1->AddProp( coneActor );
// ren1->AddProp( sphereActor );
// this works:
// vtkPropAssembly *pa1 = vtkPropAssembly::New();
// pa1->AddPart(coneActor);
// vtkPropAssembly *pa2 = vtkPropAssembly::New();
// pa2->AddPart(sphereActor);
// ren1->AddProp(pa1);
// ren1->AddProp(pa2);
// this doesnt (seg faults):
vtkPropAssembly *pa1 = vtkPropAssembly::New();
pa1->AddPart(coneActor);
pa1->AddPart(sphereActor);
vtkPropAssembly *pa2 = vtkPropAssembly::New();
pa2->AddPart(pa1);
ren1->AddProp(pa2);
iren->Start();
}
More information about the vtkusers
mailing list