[vtkusers] rendering a sphere problem

Radim Kolář kolarr at feec.vutbr.cz
Tue Mar 11 03:16:53 EST 2003


Hi all,
please could you help me with this simple problem?
I want to render the sphere with the vtkVolumeRayCastMapper. So I create sphere, mapper, volume properties and finally vtkVolume and I render it with vtkRenderWindowInteractor. But the program crash when I call iren->Render(). Bellow is the short C++ code. Are there some mistakes?
I'm using VTK 4.0 and Borland C++ 6
Thanks a lot.
Radim

//---------------------------------------------------------------------------
#include "vtkSphereSource.h"
#include "vtkVolumeRayCastMapper.h"
#include "vtkActor.h"
#include "vtkRenderer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkRenderWindow.h"
#include "vtkVolumeRayCastMIPFunction.h"
#include "vtkImageData.h"
#include "vtkVolumeProperty.h"
#include "vtkPiecewiseFunction.h"

#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
        vtkSphereSource *sphere;        sphere = vtkSphereSource::New();

        vtkVolumeRayCastMIPFunction *RayCastMethod = vtkVolumeRayCastMIPFunction::New();
        vtkVolumeRayCastMapper *mapper = vtkVolumeRayCastMapper::New();

        mapper->SetVolumeRayCastFunction( RayCastMethod );

        vtkImageData *vol;      vol = vtkImageData::New();
        vol->SetSource( sphere );
        mapper->SetInput( vol );

 vtkColorTransferFunction *colorF = vtkColorTransferFunction::New();
    colorF->AddRGBSegment( 0, 0.0, 0.0, 0.0, 255, 0.5, 0.1, 1.0 );

       //-------- Mapping from scalar -> opacity ------------
 vtkPiecewiseFunction *opacityF = vtkPiecewiseFunction::New();
     opacityF->AddPoint( 10, 0.1 );
     opacityF->AddPoint( 200, 0.9 );
     opacityF->ClampingOff();

vtkVolumeProperty *volumeP = vtkVolumeProperty::New();
    volumeP->SetColor( colorF );
     volumeP->SetScalarOpacity( opacityF );

 vtkVolume *volume = vtkVolume::New();
     volume->SetMapper( mapper );
     volume->SetProperty( volumeP );


vtkRenderer *ren1;      ren1 = vtkRenderer::New();
    ren1->AddProp( volume );

vtkRenderWindow *renWin; renWin = vtkRenderWindow::New();
    renWin->AddRenderer( ren1 );

vtkRenderWindowInteractor *iren; iren = vtkRenderWindowInteractor::New();
    iren->SetRenderWindow( renWin );

        iren->Render();     //here it crash
        iren->Start();

        iren->Delete();
        renWin->Delete();
        ren1->Delete();
        RayCastMethod->Delete();
        volume->Delete();
        vol->Delete();
        mapper->Delete();
        sphere->Delete();

        return 0;
}
//---------------------------------------------------------------------------

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20030311/7d033fe7/attachment.htm>


More information about the vtkusers mailing list