Computer Assited Medical Intervention Tool Kit  version 3.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Slots | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
MeshQuality Class Reference

Display mesures of mesh quality listed by element types. More...

#include <MeshQuality.h>

+ Inheritance diagram for MeshQuality:

Public Slots

virtual ApplyStatus apply ()
 method called when the action is applied More...
 
void computeMeasure (int i)
 method called when the selected item in qualityMeasureComboBox is changed More...
 
void updateComboBox (int i)
 method called when the selected item in elementsComboBox is changed More...
 
- Public Slots inherited from camitk::Action
virtual ApplyStatus apply ()=0
 This method is called when the action has to be applied on the target list (get the target lists using getTargets()) It calls the algorithm of your action on the target list of components. More...
 
ApplyStatus applyAndRegister ()
 This method is called whenever the action has to be applied on the target list (like the apply()) method AND registered within the application history of actions. More...
 
ApplyStatus trigger (QWidget *parent=NULL)
 This method triggers the action. More...
 

Public Member Functions

virtual QWidget * getWidget ()
 method called when the action when the action is triggered (i.e. started) More...
 
 MeshQuality (camitk::ActionExtension *)
 the constructor More...
 
virtual ~MeshQuality ()
 the destructor More...
 
- Public Member Functions inherited from camitk::Action
 Action (ActionExtension *)
 Default Constructor: the ActionExtension is needed. More...
 
virtual bool addParameter (Property *)
 Add a new parameter to the action, using the CamiTK property class. More...
 
bool getAutoUpdateProperties () const
 auto update properties More...
 
ComponentgetOutputComponent ()
 Returns the output Components in case of only one Component. More...
 
ComponentList getOutputComponents ()
 Returns the output Component(s) More...
 
virtual Q_INVOKABLE PropertygetProperty (QString name)
 Get a Property given its name. More...
 
void setAutoUpdateProperties (bool)
 are the properties to be udpated every time the user makes a change in the widget (default is false)? More...
 
void setInputComponent (Component *input)
 Specify the input Components in case of only one Component. More...
 
void setInputComponents (ComponentList inputs)
 Specify the input Component(s) Only applyInPipeline() should be called with this method (maybe apply), but not trigger() as its first intruction is to clear the target components list !!! More...
 
virtual ~Action ()
 Destructor. More...
 
QAction * getQAction ()
 Get the corresponding QAction. More...
 
QString getName () const
 get the name of the action More...
 
QString getDescription () const
 the description of the action More...
 
QString getComponent () const
 the name of the component class that can be used by this action More...
 
QString getFamily () const
 the name of the family in which this action is associated More...
 
QString getExtensionName () const
 the name of the extension in the family in which this action is associated More...
 
QStringList getTag () const
 the name of the tag called this action More...
 
bool getEmbedded () const
 argument use to know if the widget is embedded or not More...
 
virtual QPixmap getIcon ()
 the icon to personalize the action (no icon by default) More...
 
const ComponentList getTargets () const
 the currently selected and valid (regarding the component property) components, for which this action is called More...
 
ApplyStatus applyInPipeline ()
 This method encapsulates the apply() method. More...
 

Private Member Functions

vtkSmartPointer< vtkDoubleArray > computeHexasQuality (camitk::MeshComponent *meshComponent, int qualityTest)
 
vtkSmartPointer< vtkDoubleArray > computeQuadsQuality (camitk::MeshComponent *meshComponent, int qualityTest)
 
vtkSmartPointer< vtkDoubleArray > computeTetrasQuality (camitk::MeshComponent *meshComponent, int qualityTest)
 
vtkSmartPointer< vtkDoubleArray > computeTrisQuality (camitk::MeshComponent *meshComponent, int qualityTest)
 methods to compute the correct quality from a mesh More...
 
QString getInfos (camitk::MeshComponent *meshComponent)
 return a rich text describing the mesh More...
 
double getQualityColor (double val, double minAR, double maxAR, double minNR, double maxNR)
 get the appropriate color between [0;1] for a colorScale More...
 
void updateMeshColor (vtkSmartPointer< vtkDoubleArray > qualityArray)
 update the mesh to diplay a scalar color to show good and bad elements More...
 
void updateTableWidget (vtkSmartPointer< vtkDoubleArray > qualityArray)
 update the table widget to display quality measure for each element More...
 

Private Attributes

QString currentMeshName
 name of the current mesh (needed as an attribute to avoid recomputing of tableWidget) More...
 
QLabel * elementInfoLabel
 text that gives general mesh quality for one type of element (min max avg) More...
 
QComboBox * elementsComboBox
 list of elements describing the current mesh More...
 
std::map< unsigned char,
std::vector< vtkIdType > > 
elementsMap
 map describing index of cell for each type of element (needed as an attribute to update tableWidget) More...
 
QFrame * informationFrame
 this action widget (to simplify, it is just a label that gives mesh quality information) More...
 
QLabel * informationLabel
 the information label (needed as an attributes to update the displayed text) More...
 
bool isConnected
 true, if slots are connected, false otherwise More...
 
double maxAR
 
double maxNR
 
double maxV
 
double minAR
 minimum and maximum of acceptable range of a quality measure (included in normal range) More...
 
double minNR
 minimum and maximum of normal range of a quality measure More...
 
double minV
 minimum and maximum of values found for the concerned mesh. These data are used when ratio are computed or when NormalRange is unbounded More...
 
QTableWidget * qualityInfo
 the list of quality informations More...
 
QComboBox * qualityMeasureComboBox
 list of measure quality computable for one type of element More...
 

Static Private Attributes

static QStringList hexasFuncList
 
static QStringList quadsFuncList
 
static QStringList tetrasFuncList
 
static QStringList trisFuncList
 lists defining quality methods for each type of element More...
 

Additional Inherited Members

- Public Types inherited from camitk::Action
enum  ApplyStatus {
  SUCCESS, ERROR, WARNING, ABORTED,
  TRIGGERED
}
 describes what happened during the application of an algorithm (i.e. results of the apply method) More...
 
- Protected Member Functions inherited from camitk::Action
void setName (QString name)
 
void setDescription (QString description)
 the description of the action More...
 
void setComponent (QString component)
 the name of the component class that can be used by this action More...
 
void setFamily (QString family)
 the name of the family in which this action is associated More...
 
void addTag (QString tag)
 add a tag to the tags list of this action More...
 
void setEmbedded (bool isEmbedded)
 set the embedded property (an action is embedded by default, unless specified otherwise by explicitly calling this method with false) More...
 
void setIcon (QPixmap)
 set the Pixmap More...
 
- Protected Attributes inherited from camitk::Action
QWidget * actionWidget
 the action widget More...
 

Detailed Description

Display mesures of mesh quality listed by element types.

@techreport{knupp2006verdict,
title={The verdict geometric quality library.},
author={Knupp, Patrick Michael and Ernst, CD and Thompson, David C and Stimpson, CJ and Pebay, Philippe Pierre},
year={2006},
institution={Sandia National Laboratories}
}
basic_mesh_quality.png
The mesh quality widget.

Constructor & Destructor Documentation

MeshQuality::MeshQuality ( camitk::ActionExtension )

the constructor

virtual MeshQuality::~MeshQuality ( )
inlinevirtual

the destructor

Member Function Documentation

virtual ApplyStatus MeshQuality::apply ( )
virtualslot

method called when the action is applied

vtkSmartPointer<vtkDoubleArray> MeshQuality::computeHexasQuality ( camitk::MeshComponent meshComponent,
int  qualityTest 
)
private
void MeshQuality::computeMeasure ( int  i)
slot

method called when the selected item in qualityMeasureComboBox is changed

vtkSmartPointer<vtkDoubleArray> MeshQuality::computeQuadsQuality ( camitk::MeshComponent meshComponent,
int  qualityTest 
)
private
vtkSmartPointer<vtkDoubleArray> MeshQuality::computeTetrasQuality ( camitk::MeshComponent meshComponent,
int  qualityTest 
)
private
vtkSmartPointer<vtkDoubleArray> MeshQuality::computeTrisQuality ( camitk::MeshComponent meshComponent,
int  qualityTest 
)
private

methods to compute the correct quality from a mesh

QString MeshQuality::getInfos ( camitk::MeshComponent meshComponent)
private

return a rich text describing the mesh

Parameters
meshComponentinput mesh
Returns
QString the text describing the mesh
double MeshQuality::getQualityColor ( double  val,
double  minAR,
double  maxAR,
double  minNR,
double  maxNR 
)
private

get the appropriate color between [0;1] for a colorScale

Parameters
valinput value which determinates the color
minARminimum of acceptable range
maxARmaximum of acceptable range
minNRminimum of normal range (smaller than minAR)
maxNRmaximum of normal range (greater than maxAR)
Returns
double the color. It is a value between [0:1]
virtual QWidget* MeshQuality::getWidget ( )
virtual

method called when the action when the action is triggered (i.e. started)

Reimplemented from camitk::Action.

void MeshQuality::updateComboBox ( int  i)
slot

method called when the selected item in elementsComboBox is changed

void MeshQuality::updateMeshColor ( vtkSmartPointer< vtkDoubleArray >  qualityArray)
private

update the mesh to diplay a scalar color to show good and bad elements

void MeshQuality::updateTableWidget ( vtkSmartPointer< vtkDoubleArray >  qualityArray)
private

update the table widget to display quality measure for each element

Member Data Documentation

QString MeshQuality::currentMeshName
private

name of the current mesh (needed as an attribute to avoid recomputing of tableWidget)

QLabel* MeshQuality::elementInfoLabel
private

text that gives general mesh quality for one type of element (min max avg)

QComboBox* MeshQuality::elementsComboBox
private

list of elements describing the current mesh

std::map<unsigned char, std::vector<vtkIdType> > MeshQuality::elementsMap
private

map describing index of cell for each type of element (needed as an attribute to update tableWidget)

QStringList MeshQuality::hexasFuncList
staticprivate
QFrame* MeshQuality::informationFrame
private

this action widget (to simplify, it is just a label that gives mesh quality information)

QLabel* MeshQuality::informationLabel
private

the information label (needed as an attributes to update the displayed text)

bool MeshQuality::isConnected
private

true, if slots are connected, false otherwise

double MeshQuality::maxAR
private
double MeshQuality::maxNR
private
double MeshQuality::maxV
private
double MeshQuality::minAR
private

minimum and maximum of acceptable range of a quality measure (included in normal range)

double MeshQuality::minNR
private

minimum and maximum of normal range of a quality measure

double MeshQuality::minV
private

minimum and maximum of values found for the concerned mesh. These data are used when ratio are computed or when NormalRange is unbounded

QStringList MeshQuality::quadsFuncList
staticprivate
QTableWidget* MeshQuality::qualityInfo
private

the list of quality informations

QComboBox* MeshQuality::qualityMeasureComboBox
private

list of measure quality computable for one type of element

QStringList MeshQuality::tetrasFuncList
staticprivate
QStringList MeshQuality::trisFuncList
staticprivate

lists defining quality methods for each type of element


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