_interpolation=false;
_shade=false;
+ _volumerendererdata = VolumeRendererData::New();
_volumeMapper = vtkVolumeRayCastMapper::New();
_newvol = vtkVolume::New();
_volumeProperty = vtkVolumeProperty::New();
+ _compositeFunction = vtkVolumeRayCastCompositeFunction::New();
+ _compositeFunctionMIP = vtkVolumeRayCastMIPFunction::New();
+
}
//-------------------------------------------------------------------
vtkClipping3DDataViewer::~vtkClipping3DDataViewer()
_visibleVolume = visiblevolume;
}
+bool vtkClipping3DDataViewer::GetVisibleVolumeBox()
+{
+ return _visibleVolumeBox;
+}
+//-------------------------------------------------------------------
+void vtkClipping3DDataViewer::SetVisibleVolumeBox(bool visibleBox)
+{
+ _visibleVolumeBox = visibleBox;
+}
//-------------------------------------------------------------------
void vtkClipping3DDataViewer::Configure_Tissue()
double range[2];
this->_vtkmprbasedata->GetImageData()->GetScalarRange(range);
double max = range[1];
+
+ printf("EED::vtkClipping3DDataViewer::Configure_Volume max=%f \n",max);
/*
adding the poinst of the transference function
// EED 13/03/2011
- _compositeFunction = vtkVolumeRayCastCompositeFunction::New();
- vtkVolumeRayCastMIPFunction* _compositeFunctionMIP = vtkVolumeRayCastMIPFunction::New();
// _volumeMapper = vtkVolumeRayCastMapper::New();
_volumeMapper->SetInput( this->GetVtkMPRBaseData()->GetImageData() );
-if(_isRayCasting)
-{
- cout<<"JPRG::vtkClipping3DDataViewer::Configure_Volume::isRayCasting"<<endl;
+
+
_volumeMapper->SetVolumeRayCastFunction(_compositeFunction);
-}
-else if(_isMIP)
-{
- cout<<"JPRG::vtkClipping3DDataViewer::Configure_Volume::isMIP"<<endl;
- _volumeMapper->SetVolumeRayCastFunction(_compositeFunctionMIP);
-}
+
+ // _volumeMapper->SetVolumeRayCastFunction(_compositeFunctionMIP);
//
_volumeMapper->SetClippingPlanes( _volumePlanes );
_volumeMapper->AutoAdjustSampleDistancesOn();
+ _volumeProperty->SetInterpolationTypeToNearest();
//_volumeProperty = vtkVolumeProperty::New();
_volumeProperty->SetColor(_ctfun);
_volumeProperty->SetScalarOpacity( _tfun );
_volumeProperty->DisableGradientOpacityOn();
-if(_interpolation)
-{
- _volumeProperty->SetInterpolationTypeToLinear();
-}
-else
-{
- _volumeProperty->SetInterpolationTypeToNearest();
-}
-if(_shade)
-{
- _volumeProperty->ShadeOn();
-}
-else
-{
- _volumeProperty->ShadeOff();
-}
// _
}
+void vtkClipping3DDataViewer::Configure_VolumeBox()
+{
+ cout<<"EED::JPRG::vtkClipping3DDataViewer::Configure_VolumeBox() start"<<endl;
+
+ _volumerendererdata->SetImageData(_vtkmprbasedata->GetImageData());
+
+
+ vector<double> *gv = this->GetGreyValuesTransferenceFVector();
+ vector<double> *op = this->GetIntensityValuesTransferenceFVector();
+
+ printf("EED::vtkClipping3DDataViewer::Configure_VolumeBox _ctfun=%p \n",_ctfun);
+
+
+ _volumerendererdata->SetLookUpTable((vtkLookupTable*)(_ctfun));
+ _volumerendererdata->OpacityChanged(*gv, *op);
+
+ //_wxvtkclipping3Dview->VisibleVolumeActor( false );
+ //_volumerendererdata->ShowVolume(event.IsChecked() );
+ //_volumerendererdata->BoundingBoxChanged(event.IsChecked() );
+
+ cout<<"EED::JPRG::vtkClipping3DDataViewer::Configure_VolumeBox() end"<<endl;
+}
+
+void vtkClipping3DDataViewer::SetRenderer(vtkRenderer* renderer)
+{
+ _volumerendererdata->SetRenderer(renderer);
+
+}
+
+void vtkClipping3DDataViewer::SetInteractor(vtkRenderWindowInteractor* interactor)
+{
+
+ _volumerendererdata->SetInteractor(interactor);
+}
+
+
+void vtkClipping3DDataViewer::BoxActorChanged(bool changed)
+{
+ vector<double> *gv = this->GetGreyValuesTransferenceFVector();
+ vector<double> *op = this->GetIntensityValuesTransferenceFVector();
+
+ _volumerendererdata->ShowVolume(changed);
+ _volumerendererdata->OpacityChanged(*gv, *op);
+ _volumerendererdata->BoundingBoxChanged(changed);
+
+}
+
+void vtkClipping3DDataViewer::UpdateVolumeBox(vector<double> gf, vector<double> vf, vtkColorTransferFunction* ctfun)
+{
+ _volumerendererdata->SetLookUpTable((vtkLookupTable*)(ctfun));
+ _volumerendererdata->OpacityChanged(gf, vf);
+}
+
+
+void vtkClipping3DDataViewer::updateVolume()
+{
+
+ if(_isRayCasting)
+ {
+ _volumeMapper->SetVolumeRayCastFunction(_compositeFunction);
+ _volumerendererdata->changeCompositeMIPFunction(0);
+ }
+ else if(_isMIP)
+ {
+ _volumeMapper->SetVolumeRayCastFunction(_compositeFunctionMIP);
+ _volumerendererdata->changeCompositeMIPFunction(1);
+ }
+
+ if(_interpolation)
+ {
+ _volumeProperty->SetInterpolationTypeToLinear();
+ }
+ else
+ {
+ _volumeProperty->SetInterpolationTypeToNearest();
+ }
+
+ if(_shade)
+ {
+ _volumeProperty->ShadeOn();
+ }
+ else
+ {
+ _volumeProperty->ShadeOff();
+ }
+
+}
+
//-------------------------------------------------------------------
void vtkClipping3DDataViewer::Configure()
{
Configure_Tissue();
Configure_Volume();
-
+ Configure_VolumeBox();
// An outline provides context around the data.
//
_outlineData = vtkOutlineFilter::New();