#ifdef cpExtensions_QT4
+#include <map>
#include <QWidget>
-
-#include <cpExtensions/Visualization/ImageSliceActors.h>
+#include <vtkPolyDataNormals.h>
+#include <vtkQuadricLODActor.h>
#include <vtkRenderer.h>
+#include <vtkStripper.h>
#include <vtkSmartPointer.h>
+#include <cpExtensions/Visualization/ImageSliceActors.h>
/*
- #include <map>
#include <string>
#include <vtkSmartPointer.h>
#include <vtkImageData.h>
typedef TMPRObjects::TLeaveCommand TLeaveCommand;
*/
+ struct PolyDataActor
+ {
+ vtkSmartPointer< vtkPolyData > Data;
+ vtkSmartPointer< vtkPolyDataNormals > Normals;
+ vtkSmartPointer< vtkStripper > Stripper;
+ vtkSmartPointer< vtkPolyDataMapper > Mapper;
+ vtkSmartPointer< vtkQuadricLODActor > Actor;
+
+ void Configure( vtkPolyData* data )
+ {
+ this->Data = data;
+ double r[ 2 ];
+ this->Data->GetScalarRange( r );
+
+ this->Normals = vtkSmartPointer< vtkPolyDataNormals >::New( );
+ this->Stripper = vtkSmartPointer< vtkStripper >::New( );
+ this->Mapper = vtkSmartPointer< vtkPolyDataMapper >::New( );
+ this->Actor = vtkSmartPointer< vtkQuadricLODActor >::New( );
+
+ this->Normals->SetInputData( this->Data );
+ this->Normals->SetFeatureAngle( 60.0 );
+ this->Stripper->SetInputConnection(
+ this->Normals->GetOutputPort( )
+ );
+ this->Mapper->SetInputConnection(
+ this->Stripper->GetOutputPort( )
+ );
+ this->Mapper->UseLookupTableScalarRangeOff( );
+ this->Mapper->SetScalarRange(
+ r[ 0 ], ( ( r[ 1 ] - r[ 0 ] ) * 0.75 ) + r[ 0 ]
+ );
+ this->Actor->SetMapper( this->Mapper );
+ this->Actor->DeferLODConstructionOff( );
+ }
+ };
+
public:
explicit SimpleMPRWidget( QWidget* parent = 0 );
virtual ~SimpleMPRWidget( );
// Data management
+ void Clear( );
void SetMainImage( vtkImageData* image );
-
+ void AddMesh( vtkPolyData* mesh );
+
+ // Visual objects
+ vtkRenderWindowInteractor* GetInteractor( unsigned int i );
+
+
/* TODO
unsigned int GetNumberOfData( ) const;
bool AddData(
double GetWindow( ) const;
double GetLevel( ) const;
- vtkRenderWindowInteractor* GetInteractor( unsigned int i );
-
// Visual objects accessors
std::string GetSelectedData( ) const;
vtkProp* GetProp( const std::string& name );
vtkSmartPointer< TActors > m_2DSlices[ 3 ];
vtkSmartPointer< TActors > m_3DSlices[ 3 ];
+ std::map< vtkPolyData*, PolyDataActor > m_PolyDatas;
+
/* TODO
static double cm_Colors[ 8 ][ 3 ];
vtkSmartPointer< TMPRObjects > m_MPRObjects;