SMILX  1.01
Public Slots | Signals | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
milxQtShapeModel Class Reference
Inheritance diagram for milxQtShapeModel:
milxQtRenderWindow milxQtWindow milxQtRobustShapeModel

Public Slots

void LoadModel (const QString filename)
 Loads a model as an SSM (*.ssm) file. MILX-MSK like call. More...
 
virtual void openModel (const QString filename)
 Loads a model as an SSM (*.ssm) file. Alias same as LoadModel(). More...
 
virtual void SaveModel (const QString filename)
 Saves a model as an SSM (*.ssm) file. MILX-MSK like call. More...
 
virtual void saveModel (const QString filename)
 Saves a model as an SSM (*.ssm) file. More...
 
virtual void SetInputCollection (vtkPolyDataCollection *meshes)
 Uses the collection of polydata to create shape model. More...
 
virtual void SetInputCollection (vtkPolyDataCollection *meshes, QStringList &filenames)
 Uses the collection of polydata to create shape model. More...
 
void SetPrecision (float modePrecision)
 Assigns the reduction factor of the modes, i.e the number of modes required to quantify modePrecision percent of the model.
 
void AddShape (vtkPolyData *shape)
 Adds the shape to the SSM, once done adding shapes, call generateSSM() to get the SSM.
 
vtkPolyData * GetShape (unsigned int index)
 Gets the shape at index in the SSM.
 
vtkPolyData * GetAlignedShape (unsigned int index)
 Gets the shape at index in the SSM.
 
vtkPolyData * GetProcrustesAlignedSurface (unsigned int index)
 Gets the shape at index in the SSM. Same as GetAlignedShape().
 
vtkPolyData * GetMeanShape ()
 Returns the mean shape of the Statistical Shape Model. Assumes SSM has been generated (via generateSSM()).
 
QPointer< milxQtModelgetMeanModel ()
 Returns the mean model of the Statistical Shape Model. Assumes SSM has been generated (via generateSSM()). More...
 
int GetNumberOfModes ()
 Returns the number of modes in the Statistical Shape Model according to the precision set. Assumes SSM has been generated (via generateSSM()).
 
int GetNumberOfShapes ()
 Returns the number of shapes in the Statistical Shape Model. Assumes SSM has been generated (via generateSSM()).
 
QList< int > getCaseIDs ()
 Returns the case IDs for the SSM. Assumes that an SSM has been loaded.
 
virtual vtkDataSet * GetDataSet ()
 Get the data, depending on whats been generated, return that dataset.
 
virtual void createMenu (QMenu *menu)
 Create the menu for the data in this object. Used for context menu and file menus. More...
 
virtual void generateSSM ()
 
virtual void generateMeanModel (vtkSmartPointer< vtkPolyData > shape=NULL)
 
void generateModels (const bool display=true)
 
void generateAlignedModels (const bool display=true)
 
virtual void generateModes ()
 
virtual void generateCollectionBasedOnMode ()
 
void generateVectorField ()
 
void generateTensorField ()
 
void generateCorrespondences ()
 
void mean ()
 Show the mean model in the window. More...
 
void aligned ()
 Show the aligned models in the window as a set of coloured point clouds. More...
 
void original ()
 Show the original models in the window as a set of coloured point clouds. More...
 
void modesAsVectors ()
 Show the modes variation as a vector field.
 
void modesAsTensors ()
 Show the modes variation as a ellipsoidal tensor field.
 
void modesAsCollection ()
 Show the modes variation as a collection of surfaces.
 
void procrustes ()
 Change the procrustes mode of the SSM (causes recomputation of the model).
 
void alignment ()
 Output each aligned shape as a PNG image in a directory and prefix provided by the user (internally via file dialog). More...
 
void alignedMeshes ()
 Output each aligned shape as a poly data file in a directory and prefix provided by the user (internally via file dialog). More...
 
void originalMeshes ()
 Output each original shape as a poly data file in a directory and prefix provided by the user (internally via file dialog). More...
 
void pointIds ()
 Output each aligned shape coloured by the point IDs as a PNG image in a directory and prefix provided by the user (internally via file dialog). More...
 
void coordinates ()
 Output each aligned shape coloured by the coordinates as a PNG image in a directory and prefix provided by the user (internally via file dialog). More...
 
void replaceOriginal ()
 Replace the original (unaligned) meshes with the aligned ones. The new meshes are unnormalised as compared to the aligned meshes which are normalised. More...
 
void correspondences ()
 Compare points from each shape to measure the correspondence as a hedgehog plot. More...
 
void compactness ()
 Plot the compactness of the SSM. More...
 
void specificity ()
 Plot the specificity of the SSM. More...
 
void generalisability ()
 Plot the generalisability of the SSM. More...
 
void eigenvalues ()
 Plot the eigenvalues of the model. More...
 
void eigenmodes ()
 Plot the primary eigenmodes of the model for each training shape. More...
 
void parameters ()
 Plot the training shape parameters of the model for each training shape (leave 1 out). More...
 
- Public Slots inherited from milxQtRenderWindow
void addModelActor (vtkSmartPointer< vtkActor > mdlActor)
 Directly add model actor to generic view. More...
 
void removeModelActor (vtkSmartPointer< vtkActor > mdlActor)
 Directly remove model actor from generic view. More...
 
void addActor (vtkSmartPointer< vtkActor > imgActor, vtkMatrix4x4 *transformMatrix=NULL)
 Directly add actor to generic view with transform matrix. More...
 
void addImageActor (vtkSmartPointer< vtkImageActor > imgActor, vtkMatrix4x4 *transformMatrix=NULL)
 Directly add image actor to generic view. More...
 
void removeImageActor (vtkSmartPointer< vtkImageActor > imgActor)
 Directly remove image actor from generic view. More...
 
void importFrom (milxQtRenderWindow *windowToImportFrom)
 Import actors/scene directly from another renderwindow. More...
 
void importViewFrom (milxQtRenderWindow *windowToImportFrom)
 Same as importFrom()
 
virtual void updateTextActor (vtkObject *obj, unsigned long, void *client_data, void *, vtkCommand *command)
 Update any text actors in display to current slice.
 
virtual void updateImageActor (vtkObject *obj, unsigned long, void *client_data, void *, vtkCommand *command)
 Update any image actors in display to current slice when slice number changes.
 
virtual void updateImageActor (vtkSmartPointer< vtkImageActor > actor)
 
void userEvent (QMouseEvent *event=NULL)
 
void userEvent (QKeyEvent *event)
 
void userEvent (QWheelEvent *event)
 
void refresh ()
 Refresh the display of the model including widgets. Camera remains as is.
 
vtkSmartPointer< vtkMatrix4x4 > getTransformMatrix ()
 Internal transform matrix used to transform actors appropriately for direction and coordinate systems.
 
void reset ()
 Reset the rendering, camera and windowing.
 
bool isLoaded ()
 Is the data successfully loaded? Use this to check if all is ok with data display.
 
void linkProgressEventOf (vtkObject *obj)
 Link the progress of filters etc to keep the UI responsive.
 
virtual void updateCoords (vtkObject *obj)
 Picks the coordinates and pixel value from the current mouse position in the window. More...
 
virtual void contour ()
 Draw contour interactively.
 
void contourAsPolyData ()
 Save contour as polydata/model. This saves all intermediate points, not just what the user places.
 
void contourAsNodePolyData ()
 Save contour as polydata/model. This only saves the points the user has placed.
 
void contourInitFromPolyData (QString filename="")
 Load contour from polydata/model. More...
 
void enableAxes (float xScale=1.0, float yScale=1.0, float zScale=1.0)
 Enable axes display with each arrow for dimension scaled as provided.
 
void disableAxes ()
 Disables the axes display.
 
void axesDisplay ()
 Toggles the axes display.
 
void disableOrient ()
 Disables orientation marker.
 
void orientDisplay ()
 Toggles orientation marker.
 
virtual void background (bool white=false)
 Changes background to white.
 
void lighting ()
 Toggles two sided lighting in display.
 
void textDisplay ()
 Toggles text in display.
 
void crosshair ()
 Toggles corsshair.
 
virtual void viewToXYPlane ()
 Change view to xy-plane.
 
void viewToAxial ()
 
virtual void viewToZXPlane ()
 Change view to zx-plane.
 
void viewToCoronal ()
 
virtual void viewToZYPlane ()
 Change view to zy-plane.
 
void viewToSagittal ()
 
int getDefaultOrientation ()
 Get the orientation mode to one of the supported standards. More...
 
void setDefaultOrientation (int orientMode)
 Change orientation mode to one of the supported standards. Default: Radiological. More...
 
int getView ()
 Return current view mode identified by number. 0-axial, 1-coronal, 2-sagittal.
 
void setView (int viewMode)
 Change view to view mode identified by number. 0-axial, 1-coronal, 2-sagittal. More...
 
void enableActionBasedOnView ()
 Enables the view actions corresponding to current view set.
 
void disableDefaultView ()
 Disables the default view whenever data is process or displayed. Enabled by default. More...
 
void enableDefaultView ()
 
void setDefaultView (int viewMode)
 Change default view to view mode identified by number. 0-axial, 1-coronal, 2-sagittal.
 
void saveView (QString filename="")
 
void saveViewFile ()
 
void loadView (QString filename="")
 Saves the camera details to internal variables that can be restore anytime with loadView().
 
void loadViewFile ()
 
virtual void enableScale (QString title="", const bool quiet=false, double minRange=0.0, double maxRange=0.0, int noOfLabels=3)
 Enable scale bar display with the title provided. More...
 
virtual void disableScale ()
 Disables the scale bar display.
 
virtual void enableCrosshair ()
 Enables the mouse pointer as a crosshair instead. Scene must be rendered before calling.
 
virtual void disableCrosshair ()
 Restores the mouse pointer to default.
 
virtual void scaleDisplay (const bool forceDisplay=false)
 Toggles the scale bar display. More...
 
virtual void colourMapToRainbow (double minRange=0.0, double maxRange=0.0)
 Change the colour map to default VTK which is rainbow.
 
virtual void colourMapToVTK (double minRange=0.0, double maxRange=0.0)
 Change the colour map to inverse of default VTK.
 
virtual void colourMapToGray (double minRange=0.0, double maxRange=0.0)
 Change the colour map to Gray.
 
virtual void colourMapToSeismic (double minRange=0.0, double maxRange=0.0)
 Change the colour map to Seismic.
 
virtual void colourMapToLogGray (double minRange=0.0, double maxRange=0.0)
 Change the colour map to Logarithmic (base 10) Gray.
 
virtual void colourMapToJet (double minRange=0.0, double maxRange=0.0)
 Change the colour map to Jet.
 
virtual void colourMapToNIH (double minRange=0.0, double maxRange=0.0)
 Change the colour map to NIH.
 
virtual void colourMapToNIH_Fire (double minRange=0.0, double maxRange=0.0)
 Change the colour map to NIH Fire.
 
virtual void colourMapToAAL (double minRange=0.0, double maxRange=0.0)
 Change the colour map to AAL.
 
virtual void colourMapToFS (double minRange=0.0, double maxRange=0.0)
 Change the colour map to FS (FreeSurfer)
 
virtual void colourMapToHOT (double minRange=0.0, double maxRange=0.0)
 Change the colour map to HOT.
 
virtual void colourMapToCOOL (double minRange=0.0, double maxRange=0.0)
 Change the colour map to COOL.
 
virtual void colourMapToCOOLWARM (double minRange=0.0, double maxRange=0.0)
 Change the colour map to COOL.
 
virtual void colourMapToKnee (double minRange=0.0, double maxRange=0.0)
 Change the colour map to Knee.
 
virtual void colourMapToBone (double minRange=0.0, double maxRange=0.0)
 Change the colour map to Bone.
 
virtual void colourMapToSpectral (double minRange=0.0, double maxRange=0.0)
 Change the colour map to Spectral.
 
virtual void colourMapToGNUPlot (double minRange=0.0, double maxRange=0.0)
 Change the colour map to GNUPlot.
 
virtual void colourMapToCubeHelix (double minRange=0.0, double maxRange=0.0)
 Change the colour map to CubeHelix.
 
virtual void colourMapToHSV (double minRange=0.0, double maxRange=0.0)
 Change the colour map to HSV.
 
void generateRender ()
 Generate the render so it is ready for display. Should be called before showing the window. More...
 
void setCustomActionGroup (QActionGroup *actionGrp)
 Set the action group for the menu with custom connections.
 
void createCustomConnections (QList< QAction *> actionsInMenu)
 
void createCustomConnections (QMenu *fromMenu)
 Create a series of connections on each action in group which will be placed into the context menu.
 
virtual void customOperation ()
 Custom operation, data dependent for viewing in unified environment. By default, this allows importing of actors into the current views. More...
 
virtual void createMenu (QMenu *menu)
 Create the menu for the data in this object. Used for context menu and file menus. More...
 
bool openModelUsingQt (const QString filename, vtkSmartPointer< vtkPolyData > &data)
 Opens a model file using Qt file objects, which can be a Wavefront Object file (*.obj) only. This member is intended to be used with the Qt resource system. More...
 
- Public Slots inherited from milxQtWindow
void setName (const QString filename)
 Set the name of the data.
 
QString getName ()
 Returns the name of the data.
 
void rename ()
 Renames the data.
 
QString strippedName ()
 Returns the stripped (path removed) name of the data.
 
QString strippedBaseName ()
 Returns the stripped (path removed) base (no suffix) name of the data.
 
virtual QString strippedNamePrefix ()
 Returns the stripped (path removed) name of the data with "Generic" prefix. More...
 
void setNamePrefix (const QString newPrefix)
 Sets the prefix of the name of the data provided.
 
void addToContextMenu (QAction *act)
 Adds (prepends) the action to the context menu. Connections are assumed to be made before hand.
 
void appendToContextMenu (QAction *act)
 Adds (appends) the action to the context menu. Connections are assumed to be made before hand.
 
void addToContextMenu (QMenu *newMenu)
 Adds the menu to the context menu. Connections are assumed to be made before hand.
 
void addExtensionAction (QAction *act)
 Adds (in extension section) the action as an extension action. Connections are assumed to be made before hand.
 
void addMenuToContextMenu (QMenu *newMenu)
 Adds (prepends) the menu to the context menu. Connections are assumed to be made before hand.
 
void appendMenuToContextMenu (QMenu *newMenu)
 Adds (appends) the menu to the context menu. Connections are assumed to be made before hand.
 
virtual void copyToContextMenu (QMenu *copyMenu)
 Copies the menu, by duplicating the entries, to the context menu. Connections are assumed to be made before hand.
 
void setVerboseMode (bool verbose)
 Verbose mode for message output.
 
void setDeletableOnClose (bool delOnClose)
 Set if the window deletable on close. Default is true.
 
bool isDeletableOnClose ()
 Is the window deletable on close?
 
void setConsole (milxQtConsole *con)
 Set the console for log output.
 
void consumeVTKEvent (vtkObject *obj, unsigned long, void *client_data, void *, vtkCommand *command)
 Consume the event so that VTK interactor style doesn't get it. Safeguard for if remove observer directives have missed some bindings.
 
void updateQtEvents ()
 Update the Qt events, used to keep UI responsive.
 

Signals

void collectionAvailable (vtkPolyDataCollection *, QStringList &)
 
void resultAvailable (milxQtRenderWindow *)
 Send signal that Resultant render window is available for showing.
 
void resultAvailable (milxQtModel *)
 Send signal that Resultant model is available for showing.
 
- Signals inherited from milxQtRenderWindow
void imageAvailable (vtkImageData *, QString)
 Send signal that an image is available for showing.
 
void modelAvailable (vtkPolyData *, QString)
 Send signal that an surface etc. is available for showing.
 
void tableToPlot (vtkSmartPointer< vtkTable >, QString)
 Emit signal to show the table as a plot.
 
void modified (vtkSmartPointer< vtkImageActor >)
 Emit signal to allow updating of image actors if present.
 
- Signals inherited from milxQtWindow
void closing (QWidget *win)
 Send signal that the window is closing.
 
void nameChanged (const QString newName)
 Send signal that the data has been renamed.
 
void working (int value)
 Send signal that computation is in progress. Value carries the progress,.
 
void done (int value)
 Send signal that computation is done. Value carries the progress,.
 

Public Member Functions

 milxQtShapeModel (QWidget *theParent=0, bool contextSystem=true)
 
virtual ~milxQtShapeModel ()
 
virtual bool isLoaded ()
 Is the model loaded successfully?
 
- Public Member Functions inherited from milxQtRenderWindow
 milxQtRenderWindow (QWidget *theParent=0, bool contextSystem=true)
 The standard constructor. More...
 
virtual ~milxQtRenderWindow ()
 The standard destructor.
 
void contextMenuSystem (bool context)
 Disable/enable context menu system, should be on by default otherwise VTK will steal all right click events. More...
 
void AddActor (vtkSmartPointer< vtkProp > actor)
 Add a VTK actor to this window.
 
void AddVolume (vtkSmartPointer< vtkVolume > actor)
 Add a VTK volume to this window.
 
void AddActor2D (vtkSmartPointer< vtkProp > actor)
 Add a VTK actor to this window.
 
void SetActor (vtkSmartPointer< vtkProp > actor)
 Add a VTK actor to this window. Alias for AddActor.
 
void SetActor2D (vtkSmartPointer< vtkProp > actor)
 Add a VTK actor to this window. Alias for AddActor2D.
 
void SetBackground (double red, double green, double blue)
 Set the background of the display window.
 
void SetSize (int height, int width)
 Set the size of the display window.
 
void SetLookupTable (vtkSmartPointer< vtkLookupTable > lut)
 Set the lookup table of the colours in display window.
 
void RemoveAllActors ()
 Remove all VTK actors from this window.
 
void RemoveActor (vtkSmartPointer< vtkProp > actor)
 Remove the VTK actor from this window.
 
void RemoveActor2D (vtkSmartPointer< vtkProp > actor)
 Remove the VTK 2D actor from this window.
 
vtkActorCollection * GetActors ()
 Get all the actors in the render window.
 
vtkVolumeCollection * GetVolumes ()
 Get all the actors in the render window.
 
virtual vtkImageActor * GetImageActor ()
 Get the image actors, Implement in derived class that uses images.
 
vtkLookupTable * GetLookupTable ()
 Get the lookup table of the colours in display window.
 
void SetScalarBar (vtkScalarBarActor *bar)
 Get the scalar bar of the display window.
 
vtkScalarBarActor * GetScalarBar ()
 Get the scalar bar of the display window.
 
void GetBackground (double &red, double &green, double &blue)
 Get the background of the display window.
 
virtual vtkDataSet * GetDataSet ()
 Get the data, Implement in derived class that uses data derived from vtkDataSet, like vtkPolyData or vtkImageData. More...
 
void SetRenderer (vtkRenderer *rnder)
 Assigns a VTK Renderer object.
 
vtkRenderer * GetRenderer ()
 Returns the VTK Renderer object.
 
virtual vtkRenderWindowInteractor * GetVTKInteractor ()
 Get the interactor associated with the view rendering.
 
void OffScreenRenderingOn ()
 Enable off-screen rendering, which is faster for large datasets in some instances.
 
void OffScreenRenderingOff ()
 Disable off-screen rendering, which is faster for large datasets in some instances.
 
void Render ()
 Force Render or Update of the display.
 
void enableUpdates (QStatusBar *bar)
 Enables the update of coordinates to the status bar provided directly. Update is done on mouse movement.
 
- Public Member Functions inherited from milxQtWindow
 milxQtWindow (QWidget *theParent=0)
 The standard constructor. More...
 
virtual ~milxQtWindow ()
 The standard destructor.
 

Protected Member Functions

virtual void updateLookupTable ()
 Update the colour maps depending on whats been generated for the model.
 
virtual void reset ()
 
void outputSnapshots (const QString filename)
 
void createActions ()
 Create the actions for context menu etc. More...
 
void createConnections ()
 Create the connections for context menu etc.
 
void setupTooltips ()
 Assign tooltips to each action for users benefit. The tooltips explains the function of each action.
 
void contextMenuEvent (QContextMenuEvent *event)
 The context menu setup member.
 
- Protected Member Functions inherited from milxQtRenderWindow
void createActions ()
 Create the actions for context menu etc.
 
void createConnections ()
 Create the connections for context menu etc.
 
void contextMenuEvent (QContextMenuEvent *event)
 The context menu setup member. More...
 
QMenu * colourMapsMenu ()
 Return the colourmaps menu with the milxQtRenderWindow class ordering. This is for the benefit of derived class context menus and/or extensions.
 
void dragMoveEvent (QDragMoveEvent *event)
 Part of the Drag and Drop feature members. Accepts drags.
 
void dragLeaveEvent (QDragLeaveEvent *event)
 Part of the Drag and Drop feature members. Accepts drags.
 
void dragEnterEvent (QDragEnterEvent *event)
 Part of the Drag and Drop feature members. Tells what drags to accept.
 
void mouseDoubleClickEvent (QMouseEvent *event)
 Part of the Drag and Drop feature members. Triggers the dragging on double click.
 
void dropEvent (QDropEvent *event)
 Part of the Drag and Drop feature members. Opens the dropped files.
 
virtual void SetupWidgets (vtkRenderWindowInteractor *interactor)
 Update the interactor so that the widgets are usable. Call this if you change the render window or interator manually.
 
void setupHumanGlyph (vtkSmartPointer< vtkMatrix4x4 > mat=NULL)
 Setup the human orientation glyph even if some transform if present between glyph and view.
 
- Protected Member Functions inherited from milxQtWindow
void createConnections ()
 Create the connections for context menu etc.
 
void closeEvent (QCloseEvent *clEvent)
 When closing, execute this member.
 
void printError (QString msg)
 Error message wrapper for console.
 
void printWarning (QString msg)
 Warning message wrapper for console.
 
void printDebug (QString msg)
 Debug message wrapper for console.
 
void printInfo (QString msg)
 Info message wrapper for console.
 

Protected Attributes

bool m_loaded
 Shapes loaded?
 
bool m_modelled
 SSM Modelled?
 
bool m_meaned
 Mean generated?
 
bool m_shapesModelled
 Shapes were generated?
 
bool m_alignedShapesModelled
 Shapes were generated?
 
bool m_modes
 Modes been generated?
 
bool m_vector
 Vectors generated?
 
bool m_tensor
 Tensors generated?
 
bool m_correspond
 Hedgehog generated?
 
int m_mode
 Mode being viewed.
 
QAction * actionMean
 mean action
 
QAction * actionAligned
 aligned points action
 
QAction * actionOriginal
 original points action
 
QAction * actionModesAsVectors
 modes action
 
QAction * actionModesAsTensors
 modes action
 
QAction * actionModesAsCollection
 modes collection action
 
QAction * actionAlignment
 alignment check action
 
QAction * actionOriginalMeshes
 original meshes output action
 
QAction * actionAlignedMeshes
 alignmed meshes output action
 
QAction * actionPointIDs
 point ids check action
 
QAction * actionCoordinates
 coordinates check action
 
QAction * actionCorrespond
 correspondence check action
 
QAction * actionReplaceOriginal
 correspondence check action
 
QMenu * plotMenu
 Plot menu for SSM analysis.
 
QAction * actionCompact
 compactness plot action
 
QAction * actionSpecificity
 specificity plot action
 
QAction * actionGeneralise
 generalisibility error plot action
 
QAction * actionValues
 primary modes plot action
 
QAction * actionModes
 primary modes plot action
 
QAction * actionParameters
 training shape parameters plot action
 
QMenu * alignMenu
 Plot menu for SSM alignment.
 
QActionGroup * alignGroup
 Procrustes align gp action.
 
QAction * actionRigid
 rigid Procrustes action
 
QAction * actionSimilarity
 similarity Procrustes action
 
QAction * actionAffine
 affine Procrustes action
 
ShapeModelType::Pointer m_StandardSSM
 The Statistical Shape Model.
 
ShapeModelBaseType::Pointer m_SSM
 The Statistical Shape Model Base Class.
 
QList< int > m_caseIDs
 A list of case IDs corresponding to the models in the SSM.
 
QList< QPointer< milxQtModel > > m_models
 Original Models in the SSM.
 
QList< QPointer< milxQtModel > > m_alignedModels
 Aligned Models in the SSM.
 
QPointer< milxQtModelm_meanModel
 Model of the mean.
 
QPointer< milxQtModelm_modesVectorModel
 Vector Model of the modes.
 
QPointer< milxQtModelm_modesTensorModel
 Tensor Model of the modes.
 
QPointer< milxQtModelm_correspondences
 Hedgehog display of the correspondences.
 
- Protected Attributes inherited from milxQtRenderWindow
bool loaded
 Loaded Image from file?
 
bool rendered
 Scene as been setup for rendering? (by generateRender())
 
bool axesBefore
 Axes displayed?
 
bool scaleBefore
 scale displayed?
 
bool customScalarBar
 
bool logScale
 Using custom scalar bar?
 
bool useDefaultView
 Using log scalar map? More...
 
bool orientationAxes
 Display orientation (posterior etc.) axes?
 
bool contextMenuEnabled
 Display orientation (posterior etc.) axes?
 
int defaultView
 Default view for data (default is axial)
 
int currentView
 Current view for data.
 
int orientationView
 view orientation standard
 
QMenu * windowPropertiesMenu
 Context Menu.
 
QAction * backgroundAct
 Action for axes of the display.
 
QAction * axesAct
 Action for axes of the display.
 
QAction * lightingAct
 Action for two-sided lighting of the display.
 
QAction * lineAct
 Action for distance measuring display.
 
QAction * distanceAct
 Action for distance measuring display.
 
QAction * biDirectionAct
 Action for cross distance measuring display.
 
QAction * angleAct
 Action for angle measuring display.
 
QAction * planeAct
 Action for drawing planes.
 
QAction * boxAct
 Action for box drawing display.
 
QAction * sphereAct
 Action for sphere annotate display.
 
QAction * humanAct
 Show human view orientation glyph?
 
QAction * textAct
 Action for angle measuring display.
 
QAction * crosshairAct
 Action for crosshair.
 
QMenu * contourMenu
 Contour Menu.
 
QAction * contourAct
 Action for contouring surface points using Dijkstras algorithm.
 
QAction * contourPolyDataAct
 Save contour surface points as polydata.
 
QAction * contourNodePolyDataAct
 Save contour surface nodes as polydata.
 
QAction * contourInitAct
 Load contour surface points from polydata.
 
QMenu * viewMenu
 Context Menu.
 
QActionGroup * viewGroup
 Grouping for check boxes.
 
QAction * viewXY
 Change view to xy-plane (Axial)
 
QAction * viewZY
 Change view to zy-plane (Coronal)
 
QAction * viewZX
 Change view to zx-plane (Sagittal)
 
QAction * saveViewAct
 Save camera view.
 
QAction * loadViewAct
 Load camera view.
 
QAction * saveViewFileAct
 Save camera view to file.
 
QAction * loadViewFileAct
 Load camera view to file.
 
QAction * scaleAct
 Action for the scale bar of the display.
 
QMenu * colourMapMenu
 Colour map menu.
 
QActionGroup * mapGroup
 Grouping for check boxes.
 
QAction * actionDefault
 Default colours.
 
QAction * actionJet
 Jet colours.
 
QAction * actionRainbow
 Default colours.
 
QAction * actionInvRainbow
 Inv Default colours.
 
LabelledActionactionGray
 Gray colours.
 
LabelledActionactionSeismic
 Gray2 colours.
 
QAction * actionLogGray
 Logarithmic Gray colours.
 
QAction * actionNIH
 NIH colours.
 
QAction * actionNIH_FIRE
 NIH_FIRE colours.
 
QAction * actionAAL
 AAL colours.
 
QAction * actionFS
 FS colours.
 
LabelledActionactionHOT
 HOT colours.
 
QAction * actionCOOL
 COOL colours.
 
LabelledActionactionCOOLWARM
 COOL colours.
 
QAction * actionKnee
 Knee colours.
 
LabelledActionactionBone
 Spectral colours.
 
LabelledActionactionSpectral
 Spectral colours.
 
LabelledActionactionGNUPlot
 GNUPlot colours.
 
LabelledActionactionCubeHelix
 Cube Helix colours.
 
LabelledActionactionHSV
 Cube Helix colours.
 
QAction * resetAct
 Action for refreshing the display.
 
QAction * refreshAct
 Action for refreshing the display.
 
QPoint dragStartPosition
 Dragging helper variable.
 
vtkSmartPointer< vtkEventQtSlotConnect > Connector
 VTK Events to slots convertor.
 
vtkSmartPointer< vtkMatrix4x4 > transformMatrix
 Transform matrix for actor(s)
 
vtkSmartPointer< vtkRenderer > renderer
 Renderer for the data.
 
vtkSmartPointer< vtkRenderWindow > renderWindow
 Render Window used if no other set, only for deletion, access through QVTKWidget members.
 
vtkSmartPointer< vtkLookupTable > lookupTable
 Lookup table for the shapes/images, base class is used to allow references to different look up table types.
 
vtkSmartPointer< vtkCamera > camera
 camera for the view
 
vtkSmartPointer< vtkScalarBarActor > scale
 Scale for the display.
 
vtkSmartPointer< vtkScalarBarWidget > scalarBar
 Scalar Bar Widget for the display.
 
vtkSmartPointer< vtkAxesActor > axes
 Axes for the model.
 
vtkSmartPointer< vtkAxesActor > orientAxes
 Orientation (posterior etc.) axes for the orientation marker.
 
vtkSmartPointer< vtkPointPicker > dataPicker
 For determining coordinates and points from the window.
 
vtkSmartPointer< vtkContourWidget > contourWidget
 contour interaction
 
vtkSmartPointer< vtkLineWidget2 > lineWidget
 Used for drawing lines.
 
vtkSmartPointer< vtkDistanceWidget > distanceWidget
 Used for measuring distances.
 
vtkSmartPointer< vtkBiDimensionalWidget > biDirectionWidget
 Used for measuring cross distances.
 
vtkSmartPointer< vtkAngleWidget > angleWidget
 Used for measuring angles.
 
vtkSmartPointer< vtkPlaneWidget > planeWidget
 Used for drawing planes.
 
vtkSmartPointer< vtkBoxWidget2 > boxWidget
 Used for measuring angles.
 
vtkSmartPointer< vtkSphereRepresentation > sphereRep
 Sphere for widgets.
 
vtkSmartPointer< vtkSphereWidget2 > sphereWidget
 Used for measuring angles.
 
vtkSmartPointer< vtkOrientationMarkerWidget > humanGlyph
 Glyph for showing equivalent view on human.
 
QList< vtkSmartPointer< vtkTextWidget > > textWidgets
 Used for displaying movable texts in render window.
 
QList< vtkSmartPointer< vtkTextActor > > textActors
 text actors for text widgets
 
QList< ImageActorItemimageActors
 Images actors being displayed in model view.
 
QStatusBar * updateBar
 Pointer to bar, not allocated or deleted. To be passed to only.
 
QActionGroup * windowActionGroup
 used for the custom menu
 
- Protected Attributes inherited from milxQtWindow
QString name
 Name of the data.
 
QString prefix
 Prefix of the data.
 
bool verboseMode
 Verbose message output mode.
 
bool deletableOnClose
 Delete on close allowed? Allowed by default.
 
bool consoleAssigned
 Console assigned for output?
 
QMenu * contextMenu
 Context Menu.
 
QList< QAction * > actionsToAdd
 Context actions to add.
 
QList< QAction * > actionsToAppend
 Context actions to append.
 
QList< QAction * > extActionsToAdd
 Extension actions to add.
 
QList< QMenu * > menusToAdd
 Context Menu's to add.
 
QList< QMenu * > menusToAppend
 Context Menu's to append.
 
milxQtConsoleconsole
 Console for log outputs.
 

Detailed Description

Definition at line 31 of file milxQtShapeModel.h.

Constructor & Destructor Documentation

◆ milxQtShapeModel()

milxQtShapeModel::milxQtShapeModel ( QWidget *  theParent = 0,
bool  contextSystem = true 
)

Default constructor

Set strings

Definition at line 41 of file milxQtShapeModel.cpp.

◆ ~milxQtShapeModel()

milxQtShapeModel::~milxQtShapeModel ( )
virtual

Default destructor

Definition at line 61 of file milxQtShapeModel.cpp.

Member Function Documentation

◆ aligned

milxQtShapeModel::aligned ( )
slot

Show the aligned models in the window as a set of coloured point clouds.

< Add data to general display

Definition at line 782 of file milxQtShapeModel.cpp.

◆ alignedMeshes

milxQtShapeModel::alignedMeshes ( )
slot

Output each aligned shape as a poly data file in a directory and prefix provided by the user (internally via file dialog).

< Strip the extension

For all shapes

Show as surface

Keep UI responsive

Definition at line 1338 of file milxQtShapeModel.cpp.

◆ alignment

milxQtShapeModel::alignment ( )
slot

Output each aligned shape as a PNG image in a directory and prefix provided by the user (internally via file dialog).

<Pause interaction so camera position is fixed

<Resume interaction

< Strip the extension

For all shapes

Show as surface

Keep UI responsive

<Resume interaction

Definition at line 1282 of file milxQtShapeModel.cpp.

◆ compactness

milxQtShapeModel::compactness ( )
slot

Plot the compactness of the SSM.

The compactness is basically how many modes are needed to represent what proportion of the model. High compactness is having a small number of modes representing a large amount of the model.

Init table

Set column names

Compute total of eigenvalues

Compute compactness

Definition at line 909 of file milxQtShapeModel.cpp.

◆ coordinates

milxQtShapeModel::coordinates ( )
slot

Output each aligned shape coloured by the coordinates as a PNG image in a directory and prefix provided by the user (internally via file dialog).

Same regions (i.e. regions with correspondences) will have the same colour so that mis-matched points show up as coloured points in the wrong areas of the model.

<Pause interaction so camera position is fixed

<Resume interaction

< Strip the extension

Create scalars based on the point ids

For all shapes

Set the point ID colours

Show as surface

Keep UI responsive

<Resume interaction

Definition at line 1528 of file milxQtShapeModel.cpp.

◆ correspondences

milxQtShapeModel::correspondences ( )
slot

Compare points from each shape to measure the correspondence as a hedgehog plot.

< Add data to general display

Definition at line 888 of file milxQtShapeModel.cpp.

◆ createActions()

milxQtShapeModel::createActions ( )
protected

Create the actions for context menu etc.

< Only exists for the duration of the context selection

Definition at line 1734 of file milxQtShapeModel.cpp.

◆ createMenu

milxQtShapeModel::createMenu ( QMenu *  menu)
virtualslot

Create the menu for the data in this object. Used for context menu and file menus.

Change View of Volume

Definition at line 195 of file milxQtShapeModel.cpp.

◆ eigenmodes

milxQtShapeModel::eigenmodes ( )
slot

Plot the primary eigenmodes of the model for each training shape.

Init table

Definition at line 1166 of file milxQtShapeModel.cpp.

◆ eigenvalues

milxQtShapeModel::eigenvalues ( )
slot

Plot the eigenvalues of the model.

Init table

Set column names

Compute total of eigenvalues

Compute compactness

Definition at line 1109 of file milxQtShapeModel.cpp.

◆ generalisability

milxQtShapeModel::generalisability ( )
slot

Plot the generalisability of the SSM.

The generalisability is basically how good the model is at reconstruction using leave-one-out approach.

Init table

Set column names

Leave one out experiment

Definition at line 1042 of file milxQtShapeModel.cpp.

◆ generateAlignedModels

milxQtShapeModel::generateAlignedModels ( const bool  display = true)
slot

Generate the display of the aligned Models within the SSM framework. Assumes generateSSM() has already been called.

If display is true, all the models are rendered into window. Could be slow for a large set of models.

< Pull colour for data

Build model

< Add data to general display

Keep UI responsive

Definition at line 383 of file milxQtShapeModel.cpp.

◆ generateCollectionBasedOnMode

void milxQtShapeModel::generateCollectionBasedOnMode ( )
virtualslot

< View mode

Definition at line 593 of file milxQtShapeModel.cpp.

◆ generateCorrespondences

milxQtShapeModel::generateCorrespondences ( )
slot

Generate the display of the correspondences within the SSM framework as a hedgehog plot. Assumes atleast generateSSM() has already been called.

Todo:
Assume all shapes have the smae number of points

Initialise deviation array

For all shapes

For all shapes

For each shape

For all shapes

Keep UI responsive

Definition at line 695 of file milxQtShapeModel.cpp.

◆ generateMeanModel

milxQtShapeModel::generateMeanModel ( vtkSmartPointer< vtkPolyData >  shape = NULL)
virtualslot

Generates the display of the mean Model. Assumes generateSSM() has already been called.

< Add data to general display

Definition at line 307 of file milxQtShapeModel.cpp.

◆ generateModels

milxQtShapeModel::generateModels ( const bool  display = true)
slot

Generate the display of the original Models. Assumes generateSSM() has already been called.

< Pull colour for data

Build model

< Add data to general display

Keep UI responsive

Definition at line 339 of file milxQtShapeModel.cpp.

◆ generateModes

milxQtShapeModel::generateModes ( )
virtualslot

Generate the display of the PCA modes within the SSM framework. Assumes atleast generateSSM() has already been called.

Code for this member was contributed by Kaikai Shen, 2010.

Code contributed by Kaikai Shen, 2010. Smart Pointered and Modified by Shekhar Chandra, 2010.

< View mode

Keep UI responsive

Definition at line 432 of file milxQtShapeModel.cpp.

◆ generateSSM

milxQtShapeModel::generateSSM ( )
virtualslot

Generate the Statistical Shape Model. Assumes SetInputCollection() has already been called.

Compute SSM

Compute the sum of eigenvalues, which is a measure of the variation of the modelling

Build colour lookup table

Definition at line 247 of file milxQtShapeModel.cpp.

◆ generateTensorField

milxQtShapeModel::generateTensorField ( )
slot

Generate the display of the PCA modes within the SSM framework as a tensor field. Assumes atleast generateModes() has already been called.

Code for this member was contributed by Kaikai Shen, 2010.

Definition at line 670 of file milxQtShapeModel.cpp.

◆ generateVectorField

milxQtShapeModel::generateVectorField ( )
slot

Generate the display of the PCA modes within the SSM framework as a vector field. Assumes atleast generateModes() has already been called.

Code for this member was contributed by Kaikai Shen, 2010.

Definition at line 643 of file milxQtShapeModel.cpp.

◆ getMeanModel

milxQtShapeModel::getMeanModel ( )
slot

Returns the mean model of the Statistical Shape Model. Assumes SSM has been generated (via generateSSM()).

Displays Mean mesh so

Dont display mean mesh

Definition at line 168 of file milxQtShapeModel.cpp.

◆ LoadModel

milxQtShapeModel::LoadModel ( const QString  filename)
slot

Loads a model as an SSM (*.ssm) file. MILX-MSK like call.

See itkStatisticalShapeModel.h for SSM file format details.

Definition at line 66 of file milxQtShapeModel.cpp.

◆ mean

milxQtShapeModel::mean ( )
slot

Show the mean model in the window.

< Add data to general display

Definition at line 761 of file milxQtShapeModel.cpp.

◆ openModel

milxQtShapeModel::openModel ( const QString  filename)
inlinevirtualslot

Loads a model as an SSM (*.ssm) file. Alias same as LoadModel().

See itkStatisticalShapeModel.h for SSM file format details.

Definition at line 62 of file milxQtShapeModel.h.

◆ original

milxQtShapeModel::original ( )
slot

Show the original models in the window as a set of coloured point clouds.

< Add data to general display

Definition at line 809 of file milxQtShapeModel.cpp.

◆ originalMeshes

milxQtShapeModel::originalMeshes ( )
slot

Output each original shape as a poly data file in a directory and prefix provided by the user (internally via file dialog).

< Strip the extension

For all shapes

Show as surface

Keep UI responsive

Definition at line 1388 of file milxQtShapeModel.cpp.

◆ outputSnapshots()

void milxQtShapeModel::outputSnapshots ( const QString  filename)
protected

<transfer fixed camera setup

For all shapes

< Add data to general display

Keep UI responsive

< Write PNG image

< Remove data from general display

Keep UI responsive

Definition at line 1697 of file milxQtShapeModel.cpp.

◆ parameters

milxQtShapeModel::parameters ( )
slot

Plot the training shape parameters of the model for each training shape (leave 1 out).

Init table

Definition at line 1213 of file milxQtShapeModel.cpp.

◆ pointIds

milxQtShapeModel::pointIds ( )
slot

Output each aligned shape coloured by the point IDs as a PNG image in a directory and prefix provided by the user (internally via file dialog).

<Pause interaction so camera position is fixed

<Resume interaction

< Strip the extension

Create scalars based on the point ids

For all shapes

Set the point ID colours

Show as surface

Keep UI responsive

For all shapes

Revert to points

Keep UI responsive

<Resume interaction

Definition at line 1438 of file milxQtShapeModel.cpp.

◆ replaceOriginal

milxQtShapeModel::replaceOriginal ( )
slot

Replace the original (unaligned) meshes with the aligned ones. The new meshes are unnormalised as compared to the aligned meshes which are normalised.

Useful when aligned meshes are accessed by GetShape() of the SSM class or unnormalised results are required. The rescaling of each aligned mesh is done based on the centroid size of the corresponding original mesh.

< Set model to shape filter

Keep UI responsive

Definition at line 1623 of file milxQtShapeModel.cpp.

◆ SaveModel

milxQtShapeModel::SaveModel ( const QString  filename)
inlinevirtualslot

Saves a model as an SSM (*.ssm) file. MILX-MSK like call.

See itkStatisticalShapeModel.h for SSM file format details.

Definition at line 72 of file milxQtShapeModel.h.

◆ saveModel

milxQtShapeModel::saveModel ( const QString  filename)
inlinevirtualslot

Saves a model as an SSM (*.ssm) file.

See itkStatisticalShapeModel.h for SSM file format details.

Definition at line 83 of file milxQtShapeModel.h.

◆ SetInputCollection [1/2]

milxQtShapeModel::SetInputCollection ( vtkPolyDataCollection *  meshes)
virtualslot

Uses the collection of polydata to create shape model.

< Set model to shape filter

Keep UI responsive

Definition at line 81 of file milxQtShapeModel.cpp.

◆ SetInputCollection [2/2]

milxQtShapeModel::SetInputCollection ( vtkPolyDataCollection *  meshes,
QStringList &  filenames 
)
virtualslot

Uses the collection of polydata to create shape model.

This version extracts case IDs from the filenames provided and displays them in the case browser.

Setup temporary combo widget for selecting case ids when there are Multiple integer matches in the filename

Capture integer expression

Read all integers from filename and save in list

If more than one integer in filename, ask user to select correct integer

< Extract case ID from filename by using integer user provided (or only one present)

< Add case ID to list

< Set model to shape filter

Keep UI responsive

Definition at line 100 of file milxQtShapeModel.cpp.

◆ specificity

milxQtShapeModel::specificity ( )
slot

Plot the specificity of the SSM.

The specificity is given a randoming generated b-vector (shape parameters), how close would it be to the training population?

Init table

Set column names

Definition at line 966 of file milxQtShapeModel.cpp.


The documentation for this class was generated from the following files: