#ifndef __CPEXTENSIONS__VISUALIZATION__MPROBJECTS__H__ #define __CPEXTENSIONS__VISUALIZATION__MPROBJECTS__H__ #include #include #include #include #include namespace cpExtensions { namespace Visualization { /** */ class cpExtensions_EXPORT MPRObjects : public vtkObject { public: typedef MPRObjects Self; typedef cpExtensions::Visualization::MPRActors TMPRActors; typedef TMPRActors::TCursorCommand TCursorCommand; typedef TMPRActors::TMouseCommand TMouseCommand; typedef TMPRActors::TMouseWheelCommand TMouseWheelCommand; typedef TMPRActors::TKeyCommand TKeyCommand; public: vtkTypeMacro( MPRObjects, vtkObject ); public: // Creation static MPRObjects* New( ); void AddCursorCommand( TCursorCommand command, void* data ) { this->m_MPRActors->AddCursorCommand( command, data ); } void SetRenderWindows( vtkRenderWindow* wx, vtkRenderWindow* wy, vtkRenderWindow* wz, vtkRenderWindow* w3D ); void AddImage( vtkImageData* image ); void ClearAll( ); void ResetCamera( const int& id ); void ResetCameras( ); void Render( const int& id ); void RenderAll( ); vtkRenderer* GetXRenderer( ); vtkRenderer* GetYRenderer( ); vtkRenderer* GetZRenderer( ); vtkRenderer* Get3DRenderer( ); const vtkRenderer* GetXRenderer( ) const; const vtkRenderer* GetYRenderer( ) const; const vtkRenderer* GetZRenderer( ) const; const vtkRenderer* Get3DRenderer( ) const; TMPRActors* GetMPRActors( ); const TMPRActors* GetMPRActors( ) const; double GetWindow( ) const { return( this->m_MPRActors->GetWindow( ) ); } double GetLevel( ) const { return( this->m_MPRActors->GetLevel( ) ); } protected: MPRObjects( ); virtual ~MPRObjects( ); private: // Purposely not implemented MPRObjects( const Self& ); Self& operator=( const Self& ); protected: // Inputs vtkSmartPointer< vtkRenderWindow > m_Windows[ 4 ]; // Internal pipelines vtkSmartPointer< TMPRActors > m_MPRActors; vtkSmartPointer< vtkRenderer > m_Renderers[ 4 ]; std::vector< TCursorCommand > CursorCommands; std::vector< TMouseCommand > MouseCommands; std::vector< TMouseCommand > MouseClickCommands; std::vector< TMouseCommand > MouseDoubleClickCommands; std::vector< TMouseWheelCommand > MouseWheelCommands; std::vector< TKeyCommand > KeyCommands; }; } // ecapseman } // ecapseman #endif // __CPEXTENSIONS__VISUALIZATION__MPROBJECTS__H__ // eof - $RCSfile$