15 #ifndef niftkPaintbrushTool_h
16 #define niftkPaintbrushTool_h
18 #include "niftkMIDASExports.h"
22 #include <mitkGeometry3D.h>
23 #include <mitkImage.h>
24 #include <mitkOperation.h>
25 #include <mitkOperationActor.h>
26 #include <mitkSegTool2D.h>
28 #include <usServiceReference.h>
78 DILATIONS_SUBTRACTIONS
100 virtual
void InitializeStateMachine();
103 virtual const
char* GetName() const;
104 virtual const
char** GetXPM() const;
107 static const
std::
string REGION_PROPERTY_NAME;
111 int GetCursorSize() const;
114 void SetCursorSize(
int cursorSize);
118 bool GetErosionMode() const;
122 void SetErosionMode(
bool erosionMode);
125 mitk::Message1<
int> CursorSizeChanged;
128 virtual
void ExecuteOperation(
mitk::Operation* operation);
131 virtual
bool StartAddingAddition(
mitk::StateMachineAction* action,
mitk::InteractionEvent*
event);
132 virtual
bool KeepAddingAddition(
mitk::StateMachineAction* action,
mitk::InteractionEvent* event);
133 virtual
bool StopAddingAddition(
mitk::StateMachineAction* action,
mitk::InteractionEvent* event);
134 virtual
bool StartAddingSubtraction(
mitk::StateMachineAction* action,
mitk::InteractionEvent* event);
135 virtual
bool KeepAddingSubtraction(
mitk::StateMachineAction* action,
mitk::InteractionEvent* event);
136 virtual
bool StopAddingSubtraction(
mitk::StateMachineAction* action,
mitk::InteractionEvent* event);
137 virtual
bool StartRemovingSubtraction(
mitk::StateMachineAction* action,
mitk::InteractionEvent* event);
138 virtual
bool KeepRemovingSubtraction(
mitk::StateMachineAction* action,
mitk::InteractionEvent* event);
139 virtual
bool StopRemovingSubtraction(
mitk::StateMachineAction* action,
mitk::InteractionEvent* event);
142 mitk::Message1<
int> SegmentationEdited;
147 virtual ~PaintbrushTool();
150 virtual
void ConnectActionsAndFunctions();
160 bool FilterEvents(
mitk::InteractionEvent* event,
mitk::DataNode* dataNode);
167 virtual
void Activated();
174 virtual
void Deactivated();
179 static const
mitk::OperationType MIDAS_PAINTBRUSH_TOOL_OP_EDIT_IMAGE;
187 void GetListOfAffectedVoxels(
188 const
mitk::PlaneGeometry& planeGeometry,
189 mitk::Point3D& currentPoint,
190 mitk::Point3D& previousPoint,
191 ProcessorType &processor);
194 bool MarkInitialPosition(
unsigned int dataIndex,
mitk::StateMachineAction* action,
mitk::InteractionEvent* event);
197 void SetInvalidRegion(
unsigned int dataIndex);
200 void SetValidRegion(
unsigned int dataIndex, const
std::vector<
int>& boundingBox);
203 void SetRegion(
unsigned int dataIndex,
bool valid, const
std::vector<
int>& boundingBox =
std::vector<
int>());
206 bool DoMouseMoved(
mitk::StateMachineAction* action,
mitk::InteractionEvent* event,
208 unsigned char valueForRedo,
209 unsigned char valueForUndo
213 template<typename TPixel,
unsigned int VImageDimension>
214 void RunITKProcessor(
215 itk::
Image<TPixel, VImageDimension>* itkImage,
216 ProcessorType::Pointer processor,
218 unsigned char valueToWrite
225 int GetDataIndex(
bool isLeftMouseButton);
231 mitk::BaseGeometry* m_WorkingImageGeometry;
237 mitk::Point3D m_MostRecentPointInMillimetres;
244 std::map<us::ServiceReferenceU,
mitk::EventConfig> m_DisplayInteractorConfigs;
Definition: niftkMeshSmoother.cxx:19
Definition: ReceptorMemberCommandTest.cxx:25
Definition: niftkITKAffineResampleImage.cxx:74
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
cl_event event
Definition: glew.h:3231
Class to support undo/redo of an operation that takes a list of pixels, and sets them all to a given ...
Definition: itkMIDASImageUpdatePixelWiseSingleValueProcessor.h:32
Definition: niftkExceptionObject.h:21
GLsizei const GLcharARB ** string
Definition: glew.h:5194
Common base class for segmentor tools and interactors.
Definition: niftkFilteringStateMachine.h:49