Display mesures of mesh quality listed by element types. More...
#include <MeshQuality.h>
Public Slots | |
virtual camitk::Action::ApplyStatus | apply () override |
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 camitk::Action::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... | |
camitk::Action::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... | |
camitk::Action::ApplyStatus | trigger (QWidget *parent=nullptr) |
This method triggers the action. More... | |
Public Member Functions | |
virtual QWidget * | getWidget () override |
method called when the action when the action is triggered (i.e. started) More... | |
MeshQuality (camitk::ActionExtension *) | |
the constructor More... | |
virtual | ~MeshQuality ()=default |
the destructor More... | |
Public Member Functions inherited from camitk::Action | |
Action (ActionExtension *) | |
Default Constructor: the ActionExtension is needed. More... | |
~Action () override | |
Destructor. More... | |
virtual QAction * | getQAction (Component *target=nullptr) |
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... | |
void | updateTargets () |
update the target list using the currently selected components More... | |
bool | getAutoUpdateProperties () const |
void | setAutoUpdateProperties (bool) |
are the properties to be udpated every time the user makes a change in the widget (default is false)? More... | |
virtual Q_INVOKABLE camitk::Property * | getProperty (QString name) |
Get a Property given its name. More... | |
virtual bool | addParameter (Property *) |
Add a new parameter to the action, using the CamiTK property class. More... | |
void | applyTargetPosition (Component *input, Component *target) |
Change the target frame according to the default frame policy regarding the input's one. More... | |
void | applyTargetPosition (Component *input, Component *target, Application::TargetPositionningPolicy policy) |
Change the target frame according to a given frame policy regarding the input's one. More... | |
ApplyStatus | applyInPipeline () |
This method encapsulates the apply() method. 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... | |
void | setInputComponent (Component *input) |
Specify the input Components in case of only one Component. More... | |
ComponentList | getOutputComponents () |
Returns the output Component(s) More... | |
Component * | getOutputComponent () |
Returns the output Components in case of only one Component. 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 = QStringList() << "Diagonal" << "Dimension" << "Distortion" << "Edge Ratio" << "Jacobian" << "Maximum Aspect Frobenius" << "Maximum Edge Ratio" << "Mean Aspect Frobenius" << "Oddy" << "Scaled Jacobian" << "Relative Size Squared" << "Shape" << "Shape and Size" << "Shear" << "Shear and Size" << "Skew" << "Stretch" << "Taper" << "Volume" |
static QStringList | quadsFuncList = QStringList() << "Area" << "Aspect Ratio" << "Condition" << "Distortion" << "Edge Ratio" << "Jacobian" << "Maximum Angle" << "Maximum Aspect Frobenius" << "Maximum Edge Ratio" << "Mean Aspect Frobenius" << "Minimum Angle" << "Oddy" << "Radius Ratio" << "Relative Size Squared" << "Scaled Jacobian" << "Shape" << "Shape and Size" << "Shear" << "Shear and Size" << "Skew" << "Stretch" << "Taper" << "Warpage" |
static QStringList | tetrasFuncList = QStringList() << "Aspect Beta" << "Aspect Frobenius" << "Aspect Gamma" << "Aspect Ratio" << "Collapse Ratio" << "Condition" << "Distortion" << "Edge Ratio" << "Jacobian" << "Minimum Angle" << "Radius Ratio" << "Relative Size Squared" << "Scaled Jacobian" << "Shape" << "Shape and Size" << "Volume" |
static QStringList | trisFuncList = QStringList() << "Area" << "Aspect Frobenius" << "Aspect Ratio" << "Condition" << "Distortion" << "Edge Ratio" << "Maximum Angle" << "Minimum Angle" << "Radius Ratio" << "Relative Size Squared" << "Scaled Jacobian" << "Shape" << "Shape and Size" |
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 } |
Static Public Member Functions inherited from camitk::Action | |
static QString | getStatusAsString (ApplyStatus) |
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... | |
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} }
MeshQuality::MeshQuality | ( | camitk::ActionExtension * | extension | ) |
the constructor
References camitk::Action::addTag(), informationFrame, isConnected, camitk::Action::setComponent(), camitk::Action::setDescription(), camitk::Action::setFamily(), and camitk::Action::setName().
|
virtualdefault |
the destructor
|
overridevirtualslot |
method called when the action is applied
References currentMeshName, getInfos(), camitk::Component::getName(), camitk::Action::getTargets(), informationFrame, informationLabel, and camitk::Action::SUCCESS.
Referenced by getWidget().
|
private |
References camitk::Component::getDataPort, maxAR, maxNR, minAR, and minNR.
Referenced by computeMeasure().
|
slot |
method called when the selected item in qualityMeasureComboBox is changed
References CAMITK_ERROR, computeHexasQuality(), computeQuadsQuality(), computeTetrasQuality(), computeTrisQuality(), elementsComboBox, camitk::Action::getTargets(), updateMeshColor(), and updateTableWidget().
Referenced by getWidget(), and updateComboBox().
|
private |
References camitk::Component::getDataPort, maxAR, maxNR, minAR, and minNR.
Referenced by computeMeasure().
|
private |
References camitk::Component::getDataPort, maxAR, maxNR, minAR, and minNR.
Referenced by computeMeasure().
|
private |
methods to compute the correct quality from a mesh
References camitk::Component::getDataPort, maxAR, maxNR, minAR, and minNR.
Referenced by computeMeasure().
|
private |
return a rich text describing the mesh
meshComponent | input mesh |
References currentMeshName, elementsComboBox, elementsMap, and camitk::InterfaceGeometry::getPointSet().
Referenced by apply().
|
private |
get the appropriate color between [0;1] for a colorScale
val | input value which determinates the color |
minAR | minimum of acceptable range |
maxAR | maximum of acceptable range |
minNR | minimum of normal range (smaller than minAR) |
maxNR | maximum of normal range (greater than maxAR) |
References CAMITK_ERROR, maxAR, maxNR, maxV, minAR, minNR, and minV.
Referenced by updateMeshColor().
|
overridevirtual |
method called when the action when the action is triggered (i.e. started)
Reimplemented from camitk::Action.
References apply(), computeMeasure(), elementInfoLabel, elementsComboBox, informationFrame, informationLabel, isConnected, qualityInfo, qualityMeasureComboBox, and updateComboBox().
|
slot |
method called when the selected item in elementsComboBox is changed
References computeMeasure(), elementsComboBox, hexasFuncList, isConnected, quadsFuncList, qualityMeasureComboBox, tetrasFuncList, and trisFuncList.
Referenced by getWidget().
|
private |
update the mesh to diplay a scalar color to show good and bad elements
References elementsComboBox, elementsMap, camitk::InterfaceGeometry::getPointSet(), getQualityColor(), camitk::Action::getTargets(), maxAR, maxNR, minAR, minNR, and camitk::refresh().
Referenced by computeMeasure().
|
private |
update the table widget to display quality measure for each element
References elementInfoLabel, elementsComboBox, elementsMap, maxV, minV, and qualityInfo.
Referenced by computeMeasure().
|
private |
name of the current mesh (needed as an attribute to avoid recomputing of tableWidget)
Referenced by apply(), and getInfos().
|
private |
text that gives general mesh quality for one type of element (min max avg)
Referenced by getWidget(), and updateTableWidget().
|
private |
list of elements describing the current mesh
Referenced by computeMeasure(), getInfos(), getWidget(), updateComboBox(), updateMeshColor(), and updateTableWidget().
|
private |
map describing index of cell for each type of element (needed as an attribute to update tableWidget)
Referenced by getInfos(), updateMeshColor(), and updateTableWidget().
|
staticprivate |
Referenced by updateComboBox().
|
private |
this action widget (to simplify, it is just a label that gives mesh quality information)
Referenced by apply(), getWidget(), and MeshQuality().
|
private |
the information label (needed as an attributes to update the displayed text)
Referenced by apply(), and getWidget().
|
private |
true, if slots are connected, false otherwise
Referenced by getWidget(), MeshQuality(), and updateComboBox().
|
private |
|
private |
|
private |
Referenced by getQualityColor(), and updateTableWidget().
|
private |
minimum and maximum of acceptable range of a quality measure (included in normal range)
Referenced by computeHexasQuality(), computeQuadsQuality(), computeTetrasQuality(), computeTrisQuality(), getQualityColor(), and updateMeshColor().
|
private |
minimum and maximum of normal range of a quality measure
Referenced by computeHexasQuality(), computeQuadsQuality(), computeTetrasQuality(), computeTrisQuality(), getQualityColor(), and updateMeshColor().
|
private |
minimum and maximum of values found for the concerned mesh. These data are used when ratio are computed or when NormalRange is unbounded
Referenced by getQualityColor(), and updateTableWidget().
|
staticprivate |
Referenced by updateComboBox().
|
private |
the list of quality informations
Referenced by getWidget(), and updateTableWidget().
|
private |
list of measure quality computable for one type of element
Referenced by getWidget(), and updateComboBox().
|
staticprivate |
Referenced by updateComboBox().
|
staticprivate |
lists defining quality methods for each type of element
Referenced by updateComboBox().