1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
/*=========================================================================
Copyright (c) Kitware, Inc.
All rights reserved.
See Copyright.txt or http://www.kitware.com/VolViewCopyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkVVLesionSizingInterface - Measurement user interface panel customized for lesion sizing
// .SECTION Description
// .SECTION See Also
#ifndef __vtkVVLesionSizingInterface_h
#define __vtkVVLesionSizingInterface_h
#include "vtkVVUserInterfacePanel.h"
class vtkKWSeparator;
class vtkKWFrame;
class vtkKWLabel;
class vtkKWMessage;
class vtkKWMessageWithLabel;
class vtkKWLabelWithLabel;
class vtkKWLabelWithLabelSet;
class vtkKWMenuButtonWithLabel;
class vtkKWFrameWithLabel;
class vtkKWMultiColumnListWithScrollbars;
class vtkKWEntryWithLabel;
class vtkKWMenuButtonWithSpinButtons;
class vtkKWPushButton;
class vtkKWRadioButtonSet;
class vtkVVContourSelector;
class vtkVVDataItemVolume;
class vtkImageData;
class vtkActor;
class vtkCutter;
class vtkITKLesionSegmentationImageFilterBase;
class vtkVVDataItemVolumeContour;
class vtkVVDataItem;
class VTK_EXPORT vtkVVLesionSizingInterface : public vtkVVUserInterfacePanel
{
public:
static vtkVVLesionSizingInterface* New();
vtkTypeRevisionMacro(vtkVVLesionSizingInterface,vtkVVUserInterfacePanel);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Create the interface objects.
virtual void Create();
// Description:
// Refresh the interface given the current value of the Window and its
// views/composites/widgets.
virtual void Update();
// Description:
// Update the "enable" state of the object and its internal parts.
// Depending on different Ivars (this->Enabled, the application's
// Limited Edition Mode, etc.), the "enable" state of the object is updated
// and propagated to its internal parts/subwidgets. This will, for example,
// enable/disable parts of the widget UI, enable/disable the visibility
// of 3D widgets, etc.
virtual void UpdateEnableState();
// Description:
// Callbacks
void StartCallback();
void NextCallback();
void CancelCallback();
protected:
vtkVVLesionSizingInterface();
~vtkVVLesionSizingInterface();
virtual void UpdateInternal();
// Description:
virtual void Segment();
virtual vtkVVDataItemVolumeContour * Segment( vtkVVDataItemVolume * );
virtual int DisplayErrorMessage( const char *text );
// Description:
// Processes the events that are passed through CallbackCommand (or others).
// Subclasses can oberride this method to process their own events, but
// should call the superclass too.
virtual void ProcessCallbackCommandEvents(
vtkObject *caller, unsigned long event, void *calldata);
// Description:
virtual void SetInstructionsText( const char * string );
virtual void SetInstructionsIconToPredefinedIcon(int icon_index);
virtual void PopulateOptions();
// Description:
virtual void CreateNewLesionSegmentationStrategy( bool partsolid );
// Description:
// Sanity checks to ensure that the dataset is 3D etc should be placed here
int IsSupported( vtkVVDataItem* data );
vtkKWFrame * ButtonFrame;
vtkKWPushButton * StartButton;
vtkKWPushButton * NextButton;
vtkKWPushButton * CancelButton;
vtkKWFrameWithLabel * LesionSizingFrame;
vtkKWFrameWithLabel * ContourListFrame;
vtkKWFrame * InstructionsFrame;
vtkKWLabelWithLabel * InstructionsMessage;
vtkKWFrame * OptionsFrame;
vtkKWFrameWithLabel * AdvancedOptionsFrame;
vtkKWSeparator * Sep1;
vtkKWRadioButtonSet * OptionsRadioButtonSet;
vtkKWRadioButtonSet * SegmentationAlgorithmRadioButtonSet;
vtkVVContourSelector * ContourSelector;
int State;
//BTX
enum { Start = 0, DefiningBoundingBox, DefiningSeeds, Segmenting, Segmented, Cancelling };
//ETX
private:
vtkVVLesionSizingInterface(const vtkVVLesionSizingInterface&); // Not implemented
void operator=(const vtkVVLesionSizingInterface&); // Not Implemented
vtkITKLesionSegmentationImageFilterBase * LesionSegmentationFilter;
};
#endif
|