<br>
In refrence to my recent post I am pasting the source code so that it
can better help in understanding my problem. My vtkActor object is not
visible when vtkVolume is rendered. Is this a vtk limitation? are there
any workarounds? I tired using a vtkTextActor and that did get
overlayed over the volume. However,I want to be able to highlight
points inside the volume dynamically. Any pointers will be deeply
appreciated. Thanks,<br>
<br>
vtkRenderer *aRenderer = vtkRenderer::New();<br>
vtkRenderWindow *renWin = vtkRenderWindow::New();<br>
renWin->AddRenderer(aRenderer);<br>
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();<br>
iren->SetRenderWindow(renWin);<br>
<br>
vtkVolume16Reader *v16 = vtkVolume16Reader::New();<br>
v16->SetDataDimensions (64,64);<br>
v16->SetImageRange (1,93);<br>
v16->SetDataByteOrderToLittleEndian();<br>
v16->SetFilePrefix (argv[1]); //this is the VTKData-release-4-2\Data\headsq\quarter data set<br>
v16->SetDataSpacing (3.2, 3.2, 1.5);<br>
<br>
//Volume Rendering the dataset<br>
vtkPiecewiseFunction* opacityTF = vtkPiecewiseFunction::New();<br>
<br>
opacityTF->AddPoint(0,0);<br>
opacityTF->AddPoint(255,1);<br>
//create the volume property to describe how the volume would look like<br>
vtkVolumeProperty* volumeProperty = vtkVolumeProperty::New();<br>
//set the color and opacity transfer function to the volume property<br>
volumeProperty->SetScalarOpacity(opacityTF);<br>
volumeProperty->ShadeOn();<br>
volumeProperty->SetAmbient(0.1);<br>
volumeProperty->SetDiffuse(0.7);<br>
volumeProperty->SetSpecular(.2);<br>
volumeProperty->SetSpecularPower(10);<br>
//create the ray cast function to render the data<br>
vtkVolumeRayCastCompositeFunction* compositeFunction = vtkVolumeRayCastCompositeFunction::New();<br>
//create the volume mapper<br>
vtkVolumeRayCastMapper* volumeMapper = vtkVolumeRayCastMapper::New();<br>
//set the ray cast function to be used by the volume mapper<br>
volumeMapper->SetVolumeRayCastFunction(compositeFunction);<br>
volumeMapper->SetInput(v16->GetOutput());<br>
volumeMapper->IntermixIntersectingGeometryOn();<br>
//create the volume to hold the volume mapper and the volume property<br>
vtkVolume* volume = vtkVolume::New();<br>
//set the volume mapper and the property<br>
volume->SetMapper(volumeMapper);<br>
volume->SetProperty(volumeProperty);<br>
//add the volume prop to the renderer<br>
<br>
//Add a cone<br>
vtkConeSource *cone = vtkConeSource::New();<br>
cone->SetHeight( 3.0 );<br>
cone->SetRadius( 1.0 );<br>
cone->SetResolution( 10 );<br>
<br>
vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();<br>
coneMapper->SetInput( cone->GetOutput() );<br>
vtkActor *coneActor = vtkActor::New();<br>
coneActor->SetMapper( coneMapper );<br>
vtkCamera *aCamera = vtkCamera::New();<br>
aCamera->SetViewUp (0, 0, -1);<br>
aCamera->SetPosition (0, 1, 0);<br>
aCamera->SetFocalPoint (0, 0, 0);<br>
aCamera->ComputeViewPlaneNormal();<br>
<br>
<br>
aRenderer->AddVolume(volume);<br>
aRenderer->AddActor(coneActor ); <br>
<br>
aRenderer->SetActiveCamera(aCamera);<br>
aRenderer->ResetCamera ();<br>
aCamera->Dolly(1.5);<br>
<br>
// Set a background color for the renderer and set the size of the<br>
// render window (expressed in pixels).<br>
aRenderer->SetBackground(1,1,1);<br>
renWin->SetSize(640, 480);<br>
<br>
aRenderer->ResetCameraClippingRange ();<br>
<br>
// Initialize the event loop and then start it.<br>
iren->Initialize();<br>
iren->Start(); <br clear="all"><br>Cheers,<br>
Abhishek<br>