SMILX  1.01
milxQtDiffusionTensorPlugin.h
1 /*=========================================================================
2  The Software is copyright (c) Commonwealth Scientific and Industrial Research Organisation (CSIRO)
3  ABN 41 687 119 230.
4  All rights reserved.
5 
6  Licensed under the CSIRO BSD 3-Clause License
7  You may not use this file except in compliance with the License.
8  You may obtain a copy of the License in the file LICENSE.md or at
9 
10  https://stash.csiro.au/projects/SMILI/repos/smili/browse/license.txt
11 
12  Unless required by applicable law or agreed to in writing, software
13  distributed under the License is distributed on an "AS IS" BASIS,
14  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  See the License for the specific language governing permissions and
16  limitations under the License.
17 =========================================================================*/
18 #ifndef MILXQTDIFFUSIONTENSORPLUGIN_H
19 #define MILXQTDIFFUSIONTENSORPLUGIN_H
20 
21 #include <QThread>
22 #include <QMenu>
23 #include <QDockWidget>
24 //VTK
25 #include <vtkPolyDataCollection.h>
26 
27 #include "milxQtAliases.h"
28 #include "milxQtPluginInterface.h"
29 #include "milxQtRenderWindow.h"
30 #include "milxQtImage.h"
31 #include "milxQtModel.h"
32 #include "milxQtMain.h"
33 
34 #include "milxQtDiffusionTensorModel.h"
35 #include "milxQtDiffusionTensorImage.h"
36 
45 {
46  Q_OBJECT
47 
48 public:
53  milxQtDiffusionTensorPlugin(QObject *theParent = 0);
54  virtual ~milxQtDiffusionTensorPlugin();
55 
60  virtual QString name();
61 
66  inline virtual bool hasOpenSupport()
67  { return false; }
72  virtual QString openFileSupport();
77  virtual QStringList openExtensions();
82  inline virtual bool hasSaveSupport()
83  { return false; }
88  virtual QString saveFileSupport();
93  virtual QStringList saveExtensions();
94 
99  inline virtual bool hasCollectionSupport()
100  { return false; }
105  virtual void SetInputCollection(vtkPolyDataCollection* collection, QStringList &filenames);
106 
111  virtual void open(QString filename);
116  virtual void save(QString filename);
117 
127  virtual milxQtModel* modelResult();
132  virtual milxQtImage* imageResult();
137  virtual QDockWidget* dockWidget();
138 
143  inline virtual Qt::DockWidgetArea dockDefaultArea()
144  { return Qt::LeftDockWidgetArea; }
145 
150  virtual bool isPluginWindow(QWidget *window);
151 
155  milxQtDiffusionTensorModel* pluginWindow(QWidget *window);
156 
157 public slots:
162  virtual void loadExtension();
170  virtual void update() {}
175  virtual void preStartTasks() {}
180  virtual void postStartTasks() {}
181 
182 protected:
183  QPointer<milxQtDiffusionTensorModel> diffusionModel;
184  QPointer<milxQtDiffusionTensorImage> diffusionImage;
185  QPointer<milxQtMain> MainWindow;
186 
187 private:
188 
189 };
190 
192 {
193  Q_OBJECT
194  Q_INTERFACES(milxQtPluginFactory)
195 
196 public:
197  milxQtPluginInterface* newPlugin(QObject *theParent = 0)
198  { return new milxQtDiffusionTensorPlugin(theParent); }
199 };
200 
201 #endif // MILXQTDIFFUSIONTENSORPLUGIN_H
virtual Qt::DockWidgetArea dockDefaultArea()
Return the default dock widget area (if one is provided by plugin). [Implement this in your plugin]...
virtual QDockWidget * dockWidget()=0
Return the dock widget (if one is provided by plugin). [Implement this in your plugin].
virtual QString saveFileSupport()=0
Get the file support string for saving (extension wildcard list). [Implement this in your plugin]...
virtual milxQtImage * imageResult()=0
Get the image result. The result can then be displayed in milxQtMain etc.[Implement this in your plug...
This file defines all the defines, aliases and frequently used functions and variables.
This class represents the MILX Qt Render Window Display object using QVTK.
virtual QStringList saveExtensions()=0
Get a list of supported file format extensions. [Implement this in your plugin].
This class represents the MILX Qt Image Display object using VTK.
Definition: milxQtImage.h:118
virtual QStringList openExtensions()=0
Get a list of supported file format extensions. [Implement this in your plugin].
virtual void loadExtension()=0
Load the extension. [Implement this in your plugin].
virtual bool hasSaveSupport()
Does the plugin support opening files? [Implement this in your plugin].
The interface for the DTI plugin for milxQt.
virtual QString name()=0
Get the Name of the plugin. [Implement this in your plugin].
This class represents the MILX Qt Model/Mesh Display object using VTK.
Definition: milxQtModel.h:115
virtual void postStartTasks()
Tasks to complete after running or starting the thread. [Implement this].
virtual void SetInputCollection(vtkPolyDataCollection *collection, QStringList &filenames)=0
Pass a collection to internal plugin class. [Implement this in your plugin].
The interface for any plugins that can be made for milxQtMain.
virtual bool isPluginWindow(QWidget *window)=0
Is the window provided a plugin generated window? In this case a milxQtShapeModel window...
virtual milxQtModel * modelResult()=0
Get the model result. The result can then be displayed in milxQtMain etc. [Implement this in your plu...
virtual milxQtRenderWindow * genericResult()=0
Get the generic result, which is a milxQtRenderWindow. The result can then be displayed in milxQtMain...
virtual QString openFileSupport()=0
Get the file support string for opening (extension wildcard list). [Implement this in your plugin]...
virtual void open(QString filename)=0
Open the file using the plugin. [Implement this in your plugin].
#define MILXQT_PLUGIN_EXPORT
Define Windows Plugin DLL importing.
virtual void preStartTasks()
Tasks to complete before running or starting the thread. [Implement this].
QPointer< milxQtDiffusionTensorImage > diffusionImage
Image extension.
virtual bool hasCollectionSupport()
Does the plugin support collections (PolyData collection etc.). [Implement this in your plugin]...
virtual void update()
Update the plugin. [Implement this in your plugin].
virtual void save(QString filename)=0
Save the result as a file using the plugin. [Implement this in your plugin].
QPointer< milxQtDiffusionTensorModel > diffusionModel
Model extension.
virtual bool hasOpenSupport()
Does the plugin support opening files? [Implement this in your plugin].