#include <vtkSmartPointer.h>
#include <cpExtensions/Visualization/ImageSliceActors.h>
-/*
- #include <string>
- #include <vtkSmartPointer.h>
- #include <vtkImageData.h>
- #include <vtkPolyDataMapper.h>
- #include <vtkPolyDataNormals.h>
- #include <vtkQuadricLODActor.h>
- #include <vtkStripper.h>
- #include <cpExtensions/Visualization/MPRObjects.h>
-*/
+#define cpExtensions_MAX_POLYS 65535
// -------------------------------------------------------------------------
-// TODO: class QTreeWidgetItem;
class QVTKWidget;
namespace Ui
typedef SimpleMPRWidget Self;
typedef cpExtensions::Visualization::ImageSliceActors TActors;
- /* TODO
- typedef cpExtensions::Visualization::MPRObjects TMPRObjects;
- typedef TMPRObjects::TStyle TStyle;
- typedef TMPRObjects::TMouseCommand TMouseCommand;
- typedef TMPRObjects::TMouseWheelCommand TMouseWheelCommand;
- typedef TMPRObjects::TKeyCommand TKeyCommand;
- typedef TMPRObjects::TVoidCommand TVoidCommand;
- typedef TMPRObjects::TMouseMoveCommand TMouseMoveCommand;
- typedef TMPRObjects::TMouseClickCommand TMouseClickCommand;
- typedef TMPRObjects::TMouseDoubleClickCommand TMouseDoubleClickCommand;
- typedef TMPRObjects::TExposeCommand TExposeCommand;
- typedef TMPRObjects::TConfigureCommand TConfigureCommand;
- typedef TMPRObjects::TEnterCommand TEnterCommand;
- typedef TMPRObjects::TLeaveCommand TLeaveCommand;
- */
+ /**
+ */
struct PolyDataActor
{
vtkSmartPointer< vtkPolyData > Data;
vtkSmartPointer< vtkPolyDataNormals > Normals;
vtkSmartPointer< vtkStripper > Stripper;
vtkSmartPointer< vtkPolyDataMapper > Mapper;
- vtkSmartPointer< vtkQuadricLODActor > Actor;
+ vtkSmartPointer< vtkActor > Actor;
void Configure( vtkPolyData* data )
{
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->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( );
+ this->Mapper->SetScalarRange( r[ 0 ], r[ 1 ] );
+
+ unsigned long nPolys = this->Data->GetNumberOfPolys( );
+ if( nPolys < cpExtensions_MAX_POLYS )
+ {
+ this->Actor = vtkSmartPointer< vtkActor >::New( );
+ this->Actor->SetMapper( this->Mapper );
+ }
+ else
+ {
+ vtkSmartPointer< vtkQuadricLODActor > actor =
+ vtkSmartPointer< vtkQuadricLODActor >::New( );
+ actor->SetMapper( this->Mapper );
+ actor->DeferLODConstructionOff( );
+ this->Actor = actor.GetPointer( );
+
+ } // fi
}
};
// Visual objects
vtkRenderWindowInteractor* GetInteractor( unsigned int i );
-
- /* TODO
- unsigned int GetNumberOfData( ) const;
- bool AddData(
- vtkImageData* data, const std::string& name,
- const std::string& parent
- );
- bool AddData(
- vtkPolyData* data, const std::string& name
- );
- const std::string& GetMainImage( ) const;
- bool SetMainImage( const std::string& name );
- void DeleteData( const std::string& name );
- void DeleteAllData( );
-
- // Some qt accessors
- void SetDataColor(
- const std::string& name,
- const double& r, const double& g, const double& b
- );
- void ShowData( const std::string& name );
- void HideData( const std::string& name );
- void SetWindowLevel( const double& w, const double& l );
- double GetWindow( ) const;
- double GetLevel( ) const;
-
- // Visual objects accessors
- std::string GetSelectedData( ) const;
- vtkProp* GetProp( const std::string& name );
- */
-
private slots:
void _SyncBottom( int a, int b );
void _SyncTop( int a, int b );
vtkSmartPointer< TActors > m_3DSlices[ 3 ];
std::map< vtkPolyData*, PolyDataActor > m_PolyDatas;
-
- /* TODO
- static double cm_Colors[ 8 ][ 3 ];
- vtkSmartPointer< TMPRObjects > m_MPRObjects;
- struct PolyDataActor
- {
- vtkPolyData* Mesh;
- vtkPolyDataNormals* Normals;
- vtkStripper* Stripper;
- vtkPolyDataMapper* Mapper;
- vtkQuadricLODActor* Actor;
-
- PolyDataActor( );
- virtual ~PolyDataActor( );
- void Configure( vtkPolyData* pd );
- };
-
- struct Data
- {
- enum { IMAGE, MESH } Tag;
- vtkImageData* Image;
- PolyDataActor Mesh;
- Data( );
- virtual ~Data( );
- Data& operator=( const Data& data );
- void SetImageData( vtkImageData* data );
- void SetPolyData( vtkPolyData* data );
- vtkImageData* GetImage( );
- vtkPolyData* GetMesh( );
- vtkProp* GetMeshActor( );
- };
- std::string m_MainImage;
- std::map< std::string, Data > m_Data;
- std::map< std::string, std::string > m_Tree;
- */
};
} // ecapseman