3
* $Id: gvistacompleja.h 3662 2011-04-08 09:03:14Z tovar $
6
* Copyright 2008-10 MetaEmotion S.L. All rights reserved.
7
* http://ginkgo-cadx.com
9
* This file is licensed under LGPL v3 license.
10
* See License.txt for details
16
#include <wx/aui/auibar.h>
17
#include "visualizatorviews.h"
18
#include <export/icontratoscore.h>
19
#include "../exportacion/icontratosaprimaria.h"
20
#include <api/icontroladoreventos.h>
21
#include "../estudios/overlay.h"
22
#include <api/ianotador.h>
24
#include <vtkCommand.h>
26
namespace GNKVisualizator{
27
class VisualizatorStudy;
34
class BarraHerramientasBotones;
36
class vtkScalarsToColors;
37
class vtkAlgorithmOutput;
38
class GVistaCompleja: public VistaComplejaBase, public GNKVisualizator::IContratoMapaColor, public GNC::GCS::IContratoWidgets, public GNC::GCS::IContratoWindowLevel, public GNKVisualizator::IReconstructionContract, public GNC::GCS::IObservador, public GNKVisualizator::IContratoOverlays, public GNC::GCS::IAnotador, public GNC::GCS::IContratoLayoutVentana {
42
GVistaCompleja( GNKVisualizator::Vista2D* pIVista);
46
virtual void OnEraseBackground( wxEraseEvent& event ) { event.Skip(false); }
48
void AddVistaSimple();
50
void IniciarPipeline();
52
void DetenerPipeline();
54
virtual void OnCargaFinalizada();
56
void SetOverlays(GNKVisualizator::TListaOverlays* pListaOverlays);
58
bool GetManipulacionEnabled()
60
return m_pPanelManipulacion->IsEnabled();
64
virtual void OnPaint(wxPaintEvent& evt);
66
void OnMenuVerClick(wxCommandEvent& event);
67
void OnMenuCineClick(wxAuiToolBarEvent& evt);
68
void OnMenuLayout(wxCommandEvent &event);
69
void OnDesencajar(wxCommandEvent &event);
70
void OnInvertColorMap(wxCommandEvent &event);
71
void OnRotateLeft(wxCommandEvent &event);
72
void OnRotateRight(wxCommandEvent &event);
73
void OnFlipVertical(wxCommandEvent &event);
74
void OnFlipHorizontal(wxCommandEvent &event);
76
void ActualizarMaxMinSlider();
78
void OnFocus(wxChildFocusEvent &event);
80
void SetPeriodo(int milisegundos);
82
void OnSize(wxSizeEvent &event);
84
void OnZSliderScroll (wxScrollEvent& event);
86
void OnKeyDown( wxKeyEvent& event );
88
void OnMouseWheel( wxMouseEvent& event );
90
void OnPlayStopClick(wxCommandEvent &event);
95
void OnBucleClick(wxCommandEvent &event);
99
void OnSincronizarClick(wxCommandEvent &event);
101
void Sincronizar(bool sincronizar);
103
void GoToSlice(int posicion, bool relativa = true, bool propagar = true, bool render= true);
105
void PreProcesarEvento(GNC::GCS::Eventos::IEvento* evt, GNC::GCS::IControladorEventos::TipoListaPunterosEventos& lista);
107
void ProcesarEvento(GNC::GCS::Eventos::IEvento *evt) ;
109
typedef std::vector<GNKVisualizator::Vista2D*> TipoListaVista2D;
110
void Sincronizar(const TipoListaVista2D& lista);
111
void DesSincronizar();
112
bool EsSincronizable();
117
virtual vtkGinkgoImageViewer* GetViewer();
119
//region "Realizacion de la interfaz IAnnotator"
120
virtual std::string GetTopLeftAnnotation(GNC::GCS::Contexto3D* c);
121
virtual std::string GetTopRightAnnotation(GNC::GCS::Contexto3D* c);
122
virtual std::string GetBottomLeftAnnotation(GNC::GCS::Contexto3D* c);
123
virtual std::string GetBottomRightAnnotation(GNC::GCS::Contexto3D* c);
124
virtual std::string GetAnotacionPosicion(GNC::GCS::Vector* pPosicion);
127
// Asigna los valores de los apuntadores a la la imagen y el slice actual
128
void AsignarConexionesDeFiltrado(vtkImageData** pImagen, int* slice, vtkImageData** pChroma);
129
void ActualizarImagen();
131
//contrato mapa de color
132
virtual void SetMapaColor(vtkLookupTable* pTabla, int idLookupTable);
135
virtual void SetLayoutVentana(int filas, int columnas);
136
virtual int GetColumnas();
137
virtual int GetFilas();
139
//region "IContratoExportacionImagenes interface realization"
140
void GetImage(GNC::GCS::IContratoExportacionImages::ImageType::Pointer& img, int index, bool conWidgets, const GNC::GCS::Vector& size);
142
//region "IReconstructionContract interface realization"
143
void SetReconstructionMode(GNKVisualizator::Reconstruction::ReconstructionMode mode);
145
vtkScalarsToColors* GetLookupTable();
148
GNKVisualizator::Vista2D* IVista;
149
TimerPlay* m_playTimer;
150
BarraHerramientasBotones* m_pBarraIzquierda;
151
BarraHerramientasBotones* m_pBarraCine;
152
BarraHerramientasBotones* m_pBarraDerecha;
155
TipoListaVista2D m_ListaSincronizacion;
157
bool m_ReproducirBucle;
159
typedef std::vector<GVistaSimple*> TListaGVistasSimples;
160
TListaGVistasSimples m_VistasSimples;
162
//TipoFicherosGNKVisualizator* m_pFicherosAprimaria;
166
bool m_hasBeenRendered;
168
friend class GNKVisualizator::Vista2D;