68 #ifndef _vtkViewImage2D_h_
69 #define _vtkViewImage2D_h_
72 #include "MegaVTK2Configure.h"
77 #include "vtkTransform.h"
78 #include "vtkImageActor.h"
80 #include "vtkSmartPointer.h"
85 class vtkInteractorStyle;
86 class vtkInteractorStyleRubberBandZoom;
88 class vtkPointHandleRepresentation2D;
133 VIEW_ORIENTATION_SAGITTAL = 0,
134 VIEW_ORIENTATION_CORONAL = 1,
135 VIEW_ORIENTATION_AXIAL = 2
143 VIEW_CONVENTION_RADIOLOGICAL = 0,
144 VIEW_CONVENTION_NEUROLOGICAL = 1
154 INTERACTOR_STYLE_NAVIGATION = 0,
155 INTERACTOR_STYLE_RUBBER_ZOOM
209 virtual void SetViewOrientation(
int orientation);
225 virtual void SetViewConvention(
int convention);
231 virtual double * GetWorldCoordinatesForSlice(
int slice);
236 virtual int GetSliceForWorldCoordinates(
double pos[3]);
240 virtual void ResetPosition(
void);
245 virtual void Reset(
void);
266 virtual double *GetWorldCoordinatesFromDisplayPosition(
int xy[2]);
267 virtual double * GetWorldCoordinatesFromDisplayPosition(
const int & x,
284 virtual void SetInterpolate(
const int & val);
291 virtual int GetInterpolate();
308 virtual vtkActor * AddDataSet(vtkPolyData *polydata,
309 vtkProperty *property = NULL,
310 const bool & intersection =
true,
311 const bool & iDataVisibility =
false);
316 vtkSetVector3Macro(CameraMotionVector,
double);
322 vtkGetVector3Macro(CameraMotionVector,
double);
343 void SetCameraFocalAndPosition(
double focal[3],
double pos[3]);
350 void GetCameraFocalAndPosition(
double focal[3],
double pos[3]);
361 vtkGetVector3Macro (ViewCenter,
double);
367 { this->UpdateOrientation(); }
376 void SetDefaultInteractionStyle(
void)
390 void SetZoomInteractionStyle(
void)
404 void SetPanInteractionStyle(
void)
418 void SetPickInteractionStyle(
void)
433 void SynchronizeViews(
bool iSynchronize)
452 template<
class TContourContainer,
453 class TPropertyContainer >
454 void AddContours(TContourContainer & iContours,
455 TPropertyContainer & iProperty,
456 const bool & iIntersection =
true)
458 if ( iContours.size() != iProperty.size() )
460 vtkWarningMacro(<<
"iContours.size() != iProperty.size()");
464 typedef typename TContourContainer::iterator ContourContainerIterator;
465 typedef typename TPropertyContainer::iterator PropertyContainerIterator;
467 ContourContainerIterator contour_it = iContours.begin();
468 ContourContainerIterator contour_end = iContours.end();
470 PropertyContainerIterator prop_it = iProperty.begin();
471 PropertyContainerIterator prop_end = iProperty.end();
473 while ( contour_it != contour_end )
475 this->AddDataSet(*contour_it, *prop_it, iIntersection);
499 std::map<double, vtkActor *> ExtractActors(
500 vtkPolyData *iDataSet, ORIENTATION iOrientation);
507 virtual void UpdateSlicePlane(
void);
509 virtual void UpdateCenter(
void);
511 virtual void UpdateOrientation();
513 virtual void PostUpdateOrientation(
void);
515 virtual void SetSlicePlaneFromOrientation(
void);
517 virtual int SetCameraFromOrientation(
void);
519 virtual void SetAnnotationsFromOrientation(
void);
528 virtual void SetImplicitPlaneFromOrientation(
void);
537 virtual void UpdateCursor(
void);
546 virtual void InitializeSlicePlane(
void);
552 virtual void InstallPipeline(
void);
554 virtual int SetCameraToConvention(
void);
556 virtual void SetAnnotationToConvention(
void);
558 virtual void SetSlicePlaneToConvention(
unsigned int axis);
605 double ViewCenter[3];
607 char SliceAndWindowInformation[64];
608 char ImageInformation[64];
611 double CameraMotionVector[3];