This class manages a physical model (PML) CamiTK component. More...
#include <PMLComponent.h>
Public Member Functions | |
virtual QPixmap | getIcon () |
get the pixmap for physical model component More... | |
PMLComponent (const QString &file) | |
Construct the PML component directly from the .pml xml file. More... | |
PMLComponent (PhysicalModel *p, const QString &originalFile) | |
Create the PML component directly from the PhysicalModel (also have to give the original pml filename) More... | |
virtual void | setSelected (const bool b, const bool recursive=true) |
Update the selection flag (this method is overridden in order to show the default modeling action when the component is selected for the first time). More... | |
virtual void | updateProperty (QString name, QVariant value) |
update top-level properties and synchronize the physical model values More... | |
virtual | ~PMLComponent () |
destructor More... | |
Specific methods for PML component | |
Return the Physical Model object associated to the component | |
PhysicalModel * | getPhysicalModel () |
vtkIdType | getPointId (const Atom *a) |
get the point Id from the corresponding atom, this is the opposite of pml->getAtom(id) More... | |
void | init () |
initialize information (properties) and geometric representation from the physical model More... | |
Selection methods | |
void | selectCell (Cell *cell, bool showAtomGlyph) |
Select the given cell in the 3D structure. More... | |
void | selectAtom (const Atom *atom) |
Select the given atom in the 3D structure. More... | |
void | selectSC (StructuralComponent *sc, bool showAtomGlyph) |
Select the given structural component in the 3D structure by highlighting all its atoms and cells. More... | |
void | selectMC (MultiComponent *mc, bool showAtomGlyph) |
Select the given multi component in the 3D structure by highlighting all its structural components. More... | |
void | unselectItems () |
Unselect all the SC, MC, Atoms and Cells previously selected on the 3D structure. More... | |
void | updateSelection () |
Update the POINTS and CELLS selection for the whole 3D structure by telling the corresponding extractors new vtkIds have been added to the selection lists. More... | |
void | refreshDisplay () |
Refresh the display of the component according to the selected 3D items by the user. More... | |
virtual int | addSelection (const QString &name, int fieldType, int contentType, vtkSmartPointer< vtkAbstractArray > array, camitk::MeshSelectionModel::InsertionPolicy policy=camitk::MeshSelectionModel::REPLACE) |
Add a selection (inherited from MeshComponent inorder to show a glyph on selected atoms). More... | |
Public Member Functions inherited from camitk::MeshComponent | |
void | cellPicked (vtkIdType cellId, bool) override |
reimplemented to save the last pick point id More... | |
unsigned int | getNumberOfPropertyWidget () override |
there is more than one property widgets (to view as tabs in the property explorer) More... | |
vtkIdType | getPickedCellId () |
get the last pick point id, More... | |
vtkIdType | getPickedPointId () |
get the last pick point id, More... | |
QWidget * | getPropertyWidgetAt (unsigned int i=0) override |
the proprety widgets are: default property widget, selection view and data view More... | |
MeshComponent (Component *parentComponent, vtkSmartPointer< vtkPointSet > aPointSet, const QString &name) | |
Creates a MeshComponent as a sub component of another Component using a vtkPointSet (and instantiate its 3D representation). More... | |
MeshComponent (const QString &file) | |
Creates a top-level MeshComponent from a file. More... | |
MeshComponent (vtkSmartPointer< vtkPointSet > aPointSet, const QString &name) | |
Creates a top-level MeshComponent from a vtkPointSet (and instantiate its 3D representation). More... | |
void | pointPicked (vtkIdType pointId, bool) override |
reimplemented to save the last pick point id More... | |
~MeshComponent () override | |
Destructor. More... | |
QList< vtkSmartPointer< vtkSelectionNode > > & | getSelections () |
Get the selection list. More... | |
unsigned int | getNumberOfSelections () const |
Get the number of selections. More... | |
vtkSmartPointer< vtkSelection > | getActiveSelection () const |
Get active selections. More... | |
vtkSmartPointer< vtkSelectionNode > | getSelection (const QString &name) const |
Get a selection from its name. More... | |
vtkSmartPointer< vtkSelectionNode > | getSelectionAt (unsigned int index) const |
Get a selection from its index in the list. More... | |
int | getSelectionIndex (const QString &name) const |
Get the selection index in the list from its name. More... | |
virtual int | addToSelectedSelection (int fieldType, int contentType, vtkSmartPointer< vtkAbstractArray > array, MeshSelectionModel::InsertionPolicy policy=MeshSelectionModel::REPLACE) |
Add a selection to the currently selected selection. More... | |
int | getNumberOfDataArray (int fieldFlag=POINTS|CELLS) |
Get the number of data arrays of a given type without taking the specific representation into account. More... | |
vtkSmartPointer< vtkDataArray > | getDataArray (FieldType fieldType, const QString &arrayName) |
Get the data array of specified field type and name. More... | |
vtkSmartPointer< vtkDataArray > | getDataArray (FieldType fieldType, int index) |
Get the data array of specified field type and index. More... | |
void | addDataArray (FieldType fieldType, const QString &name, vtkSmartPointer< vtkDataArray > data) |
Add a data array. More... | |
void | removeDataArray (FieldType fieldType, const QString &name) |
Remove a data array. More... | |
void | addPointData (const QString &name, vtkSmartPointer< vtkDataArray > data) |
Add a data array linked to the points. More... | |
void | addCellData (const QString &name, vtkSmartPointer< vtkDataArray > data) |
Add a data array linked to the cells. More... | |
MeshDataModel * | getDataModel () |
Returns the current data view model (model as the M in Qt MVC design pattern) More... | |
vtkSmartPointer< vtkFieldData > | getFieldData (FieldType) |
Returns the corresponding vtkFieldData (point data, cell data or field data) More... | |
bool | getDataRepresentationVisibility (FieldType, const QString &) |
get the current visibility status of a given data (identified with its name) of a given field type More... | |
void | setDataRepresentationVisibility (FieldType, const QString &, bool) |
set the visibility of a given representation for a given data (identified with its name) of a given field type (create it if needed) More... | |
void | setDataRepresentationOff (int dataType=SCALARS|VECTORS|TENSORS) |
hide all the data representation of a given data type (hide all by default) More... | |
void | setVectorRepresentation (VectorRepresentation) |
set the current mode of visualisation of 3D data vector (default is ARROW) More... | |
Public Member Functions inherited from camitk::Component | |
Component (QString file, QString name, Representation rep=NO_REPRESENTATION) | |
Component constructor for top-level component (please use the other constructor for sub-level components). More... | |
Component (Component *parentComponent, const QString &name, Representation rep=NO_REPRESENTATION) | |
Component constructor for a Component that is a child of another Component You should not use this constructor for a top-level component. More... | |
~Component () override | |
default destructor. More... | |
Representation | getRepresentation () const |
return the type of representation concretely implemented by this Component in the InteractiveViewer. More... | |
bool | isTopLevel () const |
return true if this component is a top-level component More... | |
Component * | getParentComponent () |
get the parent component More... | |
Component * | getTopLevelComponent () |
get the top-level component More... | |
InterfaceFrame * | getFrame () |
get the associated frame More... | |
virtual void | setModified (bool modified=true) |
set the modified flag More... | |
virtual bool | getModified () const |
set the modified flag More... | |
virtual void | setVisibility (QString, bool) |
set the visibility inside the viewer of the given name (the viewer needs to be a registered viewer) More... | |
virtual bool | getVisibility (QString) const |
get the visibility inside the viewer of the given name More... | |
virtual void | refresh () |
refresh all the viewer that are currently displaying this Component At the end the InterfaceNode modification flag is reset. More... | |
virtual bool | isSelected () const |
Check if this data component is selected. More... | |
const QString | getFileName () const |
get the file name where the data have to be stored/were stored More... | |
void | setFileName (const QString &) |
set the file name where the data have to be stored More... | |
bool | event (QEvent *e) override |
Overriden from QObject, this one is only intercepting signal for dynamic property changed (see constructor). More... | |
QMenu * | getActionMenu () |
Get a QMenu that contains all the action that can be applied to this component. More... | |
QStringList | getHierarchy () const override |
bool | isInstanceOf (QString className) const override |
Assert that a Component instance really inherits from a given className. More... | |
QObject * | getPropertyObject () override |
Get the property object that could be understood by PropertyEditor. More... | |
void | setIndexOfPropertyExplorerTab (unsigned int index) override final |
Set the index of the tab in the ProperlyExplorer to select for display. More... | |
unsigned int | getIndexOfPropertyExplorerTab () override |
Get the index of the tab in the ProperlyExplorer to select for display. More... | |
Q_INVOKABLE camitk::Property * | getProperty (QString name) override |
Get a Property given its name. More... | |
bool | addProperty (Property *) override |
Add a new CamiTK property to the component. More... | |
void | removeChild (InterfaceNode *) override |
remove a child node. More... | |
void | setParent (InterfaceNode *) override |
set the parent Component. More... | |
bool | doubleClicked () override |
This method is called each time the InterfaceNode is double clicked by the user. More... | |
void | addChild (InterfaceNode *) override |
add a child Component (sub item in the hierarchy), and modify the child's parent to be equal to this instance More... | |
void | attachChild (InterfaceNode *) override |
add a child Component (but leave its parent unchanged) More... | |
void | deleteChildren () override final |
delete all sub Component, but do not delete the pointer (only the top-level component has the right to do that) More... | |
QString | getName () const override |
get the name to be displayed More... | |
void | setName (const QString &) override |
set the name to be displayed More... | |
const ComponentList & | getChildren () override |
get the list of the InterfaceNode children (sub items in the hierarchy) More... | |
InterfaceNode * | getParent () override |
get the parent Component More... | |
void | setNodeModified (bool) override final |
Set up the node modification flag. More... | |
bool | getNodeModified () const override |
Get the current modification flag. More... | |
bool | inItalic () const override |
A component name is not displayed in italic by default. More... | |
QMenu * | getPopupMenu (QWidget *parent=nullptr) override |
get the popup menu to display (always return nullptr, overwrite this method if you want to give here you own popup) More... | |
const QString | getLabel () const override |
void | setLabel (QString newName) override |
set the string used to display the label, do the same as setName More... | |
delegateGet0 (myGeometry, getPointSet, vtkSmartPointer< vtkPointSet >) delegate1(myGeometry | |
vtkSmartPointer< vtkPointSet > | delegate1 (myGeometry, setPointData, vtkSmartPointer< vtkDataArray >) delegateConstGet0(myGeometry |
vtkSmartPointer< vtkPointSet > vtkSmartPointer< vtkAlgorithmOutput > | delegate1 (myGeometry, setDataConnection, vtkSmartPointer< vtkAlgorithmOutput >) delegateGet1(myGeometry |
vtkSmartPointer< vtkPointSet > vtkSmartPointer< vtkAlgorithmOutput > const RenderingModes vtkSmartPointer< vtkProp > | getProp (const QString ¶m) override |
Return the vtkProp (actors, volumes and annotations) corresponding to the given name. More... | |
unsigned int | getNumberOfProp () const override |
return the number of additional prop More... | |
vtkSmartPointer< vtkProp > | getProp (unsigned int index) override |
return an additional prop by its index More... | |
bool | addProp (const QString &name, vtkSmartPointer< vtkProp > prop) override |
insert an additional prop, defining it by its name (default visibility = false) More... | |
bool | removeProp (const QString &name) override |
remove a given additional prop. More... | |
void | getBounds (double *bounds) override |
compute the object's bounding box [xmin,xmax, ymin,ymax, zmin,zmax], see Component.cpp More... | |
double | getBoundingRadius () override |
compute the object's bounding sphere radius, More... | |
delegate4 (myGeometry, setPointPosition, const unsigned int, const double, const double, const double) delegateAndInvokeChildren1(myGeometry | |
const const RenderingModes InterfaceGeometry::RenderingModes | getRenderingModes () const override |
see Component.cpp More... | |
delegateAndInvokeChildren1 (myGeometry, setEnhancedModes, const EnhancedModes) virtual const EnhancedModes getEnhancedModes() const override | |
delegateAndInvokeChildren1Array (myGeometry, setActorColor, const RenderingModes, double, 4) delegateAndInvokeChildren4(myGeometry | |
const const const const double void | getActorColor (const RenderingModes, double[4]) override |
see Component.cpp More... | |
delegateAndInvokeChildren3 (myGeometry, setColor, const double, const double, const double) delegateAndInvokeChildren4(myGeometry | |
const const const const double | delegateAndInvokeChildren2 (myGeometry, setActorOpacity, const RenderingModes, const double) delegateConstGet1(myGeometry |
const const const const double const RenderingModes | delegateAndInvokeChildren1 (myGeometry, setOpacity, const double) delegate2(myGeometry |
const const const const double const RenderingModes double | delegate1 (myGeometry, setTexture, vtkSmartPointer< vtkTexture >) void setGlyphType(const GlyphTypes type |
delegate1 (myGeometry, setLinesAsTubes, bool) delegate1(myGeometry | |
delegateConstGet0 (mySlice, getImageData, vtkSmartPointer< vtkImageData >) delegate1(mySlice | |
vtkSmartPointer< vtkImageData > | delegateConstGet0 (mySlice, get2DImageActor, vtkSmartPointer< vtkImageActor >) delegateConstGet0(mySlice |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > | delegateConstGet0 (mySlice, getPickPlaneActor, vtkSmartPointer< vtkActor >) delegateGet0(mySlice |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > | delegate3 (mySlice, pixelPicked, double, double, double) delegate0(mySlice |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane | delegate1 (mySlice, setSlice, int) delegate3(mySlice |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane double | delegateConstGet0 (mySlice, getNumberOfColors, int) delegate3(mySlice |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane double double | delegate1 (mySlice, setImageWorldTransform, vtkSmartPointer< vtkTransform >) delegate1(mySlice |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane double double vtkSmartPointer< vtkTransform > int | getNumberOfSlices () const override |
see Component.cpp More... | |
int | getSlice () const override |
see Component.cpp More... | |
const QString & | getFrameName () const override |
Hierarchy accessors / Modifyers. More... | |
delegate1 (myFrame, setFrameName, QString) InterfaceFrame *getParentFrame() const override | |
void | setParentFrame (InterfaceFrame *frame, bool keepTransform=true) override |
Set the parent frame and update or not its transform during the parent transition. More... | |
const QVector< InterfaceFrame * > & | getChildrenFrame () const override |
Get the Children Frames from the current Frame in the Frame Hierarchy The Frame hierarchy may not be the same as the Component Hierarchy. More... | |
const vtkSmartPointer< vtkTransform > | getTransformFromWorld () const override |
Transforms accessors / Modifyers. More... | |
const vtkSmartPointer< vtkTransform > | getTransform () const override |
Get the transformation with respect to the parent frame. More... | |
const vtkSmartPointer< vtkTransform > | getTransformFromFrame (InterfaceFrame *frame) const override |
Compute the transformation from any other frame to the current frame. More... | |
delegate1 (myFrame, setTransform, vtkSmartPointer< vtkTransform >) delegate0(myFrame | |
resetTransform | delegate3 (myFrame, translate, double, double, double) delegate3(myFrame |
resetTransform double | delegate3 (myFrame, rotateVTK, double, double, double) delegate3(myFrame |
resetTransform double double | delegate3 (myFrame, setTransformTranslationVTK, double, double, double) delegate3(myFrame |
resetTransform double double double | delegate3 (myFrame, setTransformRotationVTK, double, double, double) vtkSmartPointer< vtkAxesActor > getFrameAxisActor() override |
delegate2 (myFrame, setFrameVisibility, QString, bool) bool getFrameVisibility(QString) const override | |
delegate1 (myFrame, addFrameChild, InterfaceFrame *) delegate1(myFrame | |
Public Member Functions inherited from camitk::InterfaceProperty | |
~InterfaceProperty ()=default | |
empty virtual destructor, to avoid memory leak More... | |
Public Member Functions inherited from camitk::InterfaceNode | |
virtual | ~InterfaceNode ()=default |
empty virtual destructor, to avoid memory leak More... | |
Public Member Functions inherited from camitk::InterfaceGeometry | |
virtual | ~InterfaceGeometry ()=default |
empty virtual destructor, to avoid memory leak More... | |
virtual vtkSmartPointer< vtkPointSet > | getPointSet ()=0 |
virtual void | setPointSet (vtkSmartPointer< vtkPointSet >)=0 |
set the low-level data set. More... | |
virtual void | setPointData (vtkSmartPointer< vtkDataArray >)=0 |
set the point data (may contains a lookup table). More... | |
virtual void | setMeshWorldTransform (vtkSmartPointer< vtkTransform >)=0 |
set the transformation for 3D representation More... | |
virtual vtkSmartPointer< vtkAlgorithmOutput > | getDataPort () const =0 |
get the custom algorithm pipeline input. More... | |
virtual void | setDataConnection (vtkSmartPointer< vtkAlgorithmOutput >)=0 |
Set/reset the connection for the InterfaceGeometry internal algorithm. More... | |
virtual void | setTexture (vtkSmartPointer< vtkTexture >)=0 |
Set a texture to this object. More... | |
virtual vtkSmartPointer< vtkActor > | getActor (const RenderingModes)=0 |
Return the actor for the representation mode, NULL if the actor doesn't exist. More... | |
virtual void | setPointPosition (const unsigned int orderNumber, const double x, const double y, const double z)=0 |
set a given point position More... | |
virtual void | setRenderingModes (const RenderingModes)=0 |
virtual void | setEnhancedModes (const EnhancedModes)=0 |
set the enhanced mode More... | |
virtual const EnhancedModes | getEnhancedModes () const =0 |
get the current enhanced mode More... | |
virtual void | setActorColor (const RenderingModes, double *color)=0 |
Set the color of given representation modes. More... | |
virtual void | setActorColor (const RenderingModes, const double, const double, const double)=0 |
Set the color of given representation modes. More... | |
virtual void | getActorColor (const RenderingModes mode, double *color)=0 |
Get the color of given representation modes in the second parameter. More... | |
virtual void | setColor (const double, const double, const double)=0 |
Set an (r,g,b) color to all representation modes, without changing the opacity. More... | |
virtual void | setColor (const double, const double, const double, const double)=0 |
Set an (r,g,b,a) color to all representation modes. More... | |
virtual void | setActorOpacity (const RenderingModes, const double)=0 |
Set the opacity of this representation modes. WARNING color field (surfaceColor, ...) are not modified! More... | |
virtual double | getActorOpacity (const RenderingModes) const =0 |
Return the opacity of a given renderng mode. More... | |
virtual void | setOpacity (const double)=0 |
Set the opacity of this object. WARNING color field (surfaceColor, ...) are not modified! More... | |
virtual void | setMapperScalarRange (double min, double max)=0 |
Set the mapper scalar range. More... | |
virtual void | setGlyphType (const GlyphTypes type, const double size=0.0)=0 |
Set the glyph type (a glyph is a geometric representation attached to every point in the input dataset). More... | |
virtual void | setLinesAsTubes (bool)=0 |
set the lines as tubes (works only for vtkDataSet representation that contains lines) More... | |
Public Member Functions inherited from camitk::InterfaceBitMap | |
virtual vtkSmartPointer< vtkImageActor > | get2DImageActor () const =0 |
Return the vtkImageActor (vtkProp) representing a slice to be displayed in 2D viewers. More... | |
virtual vtkSmartPointer< vtkImageActor > | get3DImageActor () const =0 |
Return the vtkImageActor (vtkProp) representing a slice to be displayed in 3D viewers. More... | |
virtual vtkSmartPointer< vtkImageData > | getImageData () const =0 |
Returns the encapsultaed data structure: the image as a vtkImageData. More... | |
virtual int | getNumberOfColors () const =0 |
Return the number of colors in the images. More... | |
virtual vtkSmartPointer< vtkActor > | getPickPlaneActor () const =0 |
Return the vtkActor used to pick pixels in the slices. More... | |
virtual vtkSmartPointer< vtkActor > | getPixelActor ()=0 |
Return the vtkActor used to pick pixels in the slices. More... | |
virtual void | pixelPicked (double, double, double)=0 |
This method is called when the associated plane has been picked in the InteractiveViewer, the given coordinates is position where the plane was picked. More... | |
virtual void | setArbitraryTransform (vtkSmartPointer< vtkTransform >)=0 |
Set the pointer to the image transformation. More... | |
virtual void | setImageWorldTransform (vtkSmartPointer< vtkTransform >)=0 |
set the transformation for 3D image representation More... | |
virtual void | setOriginalVolume (vtkSmartPointer< vtkImageData >)=0 |
set the original volume image data (the source vtkImageData before any reslice) and refresh the vtk pipeline More... | |
virtual void | setPixelRealPosition (double, double, double)=0 |
move the pixel selection green indicator (pixelActor) to the given real position More... | |
virtual void | setSlice (double x, double y, double z)=0 |
Set the slice corresponding to the given image coordinates (in RAI convention) More... | |
virtual void | setSlice (int s)=0 |
Set the current slice index. More... | |
virtual void | updatePickPlane ()=0 |
update the position of the plane surrounding the currently selected slice More... | |
virtual | ~InterfaceBitMap ()=default |
virtual destructor More... | |
Public Member Functions inherited from camitk::InterfaceFrame | |
virtual void | addFrameChild (InterfaceFrame *frame)=0 |
Add the input frame as a child of the current frame. More... | |
virtual vtkSmartPointer< vtkAxesActor > | getFrameAxisActor ()=0 |
Gives the 3D representation of the frame (based on xyz arrows) More... | |
virtual bool | getFrameVisibility (QString) const =0 |
Get the Component Frame visibility for a given viewer. More... | |
virtual void | removeFrameChild (InterfaceFrame *frame)=0 |
Remove the input frame as a child of the current frame. More... | |
virtual void | setFrameVisibility (QString, bool)=0 |
Set the Component Frame visible for a given viewer. More... | |
virtual | ~InterfaceFrame ()=default |
empty virtual destructor, to avoid memory leak More... | |
virtual void | setFrameName (QString name)=0 |
Set the Frame Unique identifyer. More... | |
virtual InterfaceFrame * | getParentFrame () const =0 |
Get the parent frame. More... | |
virtual void | setTransform (vtkSmartPointer< vtkTransform > transform)=0 |
Set the current input frame position (according to its parent Frame) More... | |
virtual void | resetTransform ()=0 |
Set the current frame transform to identity. More... | |
virtual void | translate (double x, double y, double z)=0 |
Apply a translation relative to the current position. More... | |
virtual void | rotate (double aroundX, double aroundY, double aroundZ)=0 |
Apply rotations relative to the current position in the alphabetical order (X, Y, Z). More... | |
virtual void | rotateVTK (double aroundX, double aroundY, double aroundZ)=0 |
Apply a rotation relative to the current position, using the VTK rotation order (Z, X, Y) More... | |
virtual void | setTransformTranslation (double x, double y, double z)=0 |
Set the translation part of the 3D space transformation of the current frame. More... | |
virtual void | setTransformTranslationVTK (double x, double y, double z)=0 |
Set the translation part of the 3D space transformation of the current frame. More... | |
virtual void | setTransformRotation (double aroundX, double aroundY, double aroundZ)=0 |
Set the rotation part of the 3D space transformation of the current frame. More... | |
virtual void | setTransformRotationVTK (double aroundX, double aroundY, double aroundZ)=0 |
Set the rotation part of the 3D space transformation of the current frame. More... | |
Protected Member Functions | |
virtual void | initDynamicProperties () |
create and initialize dynamic properties using the global xml attributes from the PhysicalModel object More... | |
Protected Member Functions inherited from camitk::MeshComponent | |
void | initData () |
initialize data More... | |
void | initDynamicProperties () |
create and initialize dynamic properties More... | |
void | initRepresentation (vtkSmartPointer< vtkPointSet >) |
void | initSelection () |
initialize selections More... | |
Private Attributes | |
bool | neverSelected |
the first selection should trigger the pml exporer action (default action) More... | |
PhysicalModel * | physicalModel |
The library pml object that uses pmlschema to read the pml information for the xml file. More... | |
Static Private Attributes | |
static QPixmap * | myPixmap = nullptr |
the PMLComponent icon More... | |
3D structure creation | |
vtkSmartPointer< vtkPoints > | thePoints |
The 3D VTK cloud points of the atoms read. More... | |
vtkSmartPointer< vtkUnstructuredGrid > | mainGrid |
The 3D grid containing all the cells of the PML. More... | |
std::AtomPointIdMap | atomPointIdMap |
the Atom / vtkPoint Id map More... | |
void | create3DStructure () |
Create the 3D VTK structure representing the mesh. More... | |
void | parseMultiComponent (MultiComponent *mc) |
Create the 3D structure of the given MultiComponent and its children (recursively). More... | |
vtkSmartPointer< vtkCell > | cellToVTK (Cell *cell) |
Create a 3D vtkCell corresponding to a structural component's cell. More... | |
vtkSmartPointer< vtkPolyVertex > | atomSCToVTK (StructuralComponent *sc) |
Create a 3D vtkPolyVertex of a structural component which ONLY contains atoms ref. More... | |
3D structure element selection | |
vtkSmartPointer< vtkIdTypeArray > | selectedAtomIdArray |
The vtkIdTypeArray for atom selection (contains all the id array that corresponds to a selected atom) More... | |
vtkSmartPointer< vtkSelection > | selectedAtomSelection |
The vtkSelection for atom selection. More... | |
QMap< QString, vtkSmartPointer< vtkIdTypeArray > > | scCellIdArrayMap |
The association structural component <-> vtkIdTypeArray for Cells selection. More... | |
QMap< QString, vtkSmartPointer< vtkSelection > > | scCellSelectionMap |
The association structural component <-> vtkSelection for Cells selection. More... | |
void | createCellSelectionVTKPipeline (const StructuralComponent *sc) |
Create a new VTK selection pipeline (selection, extractor, mapper, actor) for a given SC if it does not allready exists. More... | |
void | createAtomSelectionVTKPipeline () |
Create the VTK selection pipeline (selection, extractor, mapper, actor) needed to represent the selection of atoms. More... | |
Additional Inherited Members | |
Public Types inherited from camitk::MeshComponent | |
enum | DataType { SCALARS = 1, VECTORS = 2, TENSORS = 4, OTHERS = 8 } |
enum | FieldType { POINTS = 1, CELLS = 2, MESH = 4 } |
enum | SpecificRepresentation { VECTOR_3D, NORM, FIRST_COMPONENT, SECOND_COMPONENT, THIRD_COMPONENT } |
enum | VectorRepresentation { HEDGE_HOG, ARROW, UNSCALED_ARROW } |
Public Types inherited from camitk::Component | |
enum | Representation { GEOMETRY, SLICE, NO_REPRESENTATION } |
Public Types inherited from camitk::InterfaceGeometry | |
enum | EnhancedMode { Normal = 0x0, Hidden = 0x1, Shaded = 0x2, Highlighted = 0x4 } |
enum | GlyphType { NoGlyph = 0x0, Sphere = 0x1 } |
enum | RenderingMode { None = 0x0, Surface = 0x1, Wireframe = 0x2, Points = 0x4 } |
Static Public Member Functions inherited from camitk::MeshComponent | |
static const QMap< int, QString > & | getFieldNames () |
static method that returns the FieldType enum as a QString More... | |
static const QString | getFieldName (const FieldType) |
helper method that returns the field type as a string More... | |
static const QMap< int, QString > & | getDataTypeNames () |
static method that returns the DataType enum as a QString More... | |
static const QString | getDataTypeName (const DataType) |
Helper method that returns the datatype as a string. More... | |
static const DataType | getDataType (vtkSmartPointer< vtkDataArray >) |
Returns the data type of a data array depending on the number of components of the given data array: More... | |
static const QString | getDataTypeName (vtkSmartPointer< vtkDataArray >) |
Returns the data type string of an data array depending on the number of components of the given data array: If the number of components is different than 1, 3 and 9 (the managed type SCALARS, VECTORS, TENSORS) then the method returns a string equals to the number of components. More... | |
static const QString | getSpecificRepresentationName (const SpecificRepresentation) |
Helper method that returns the SpecificRepresentation as a QString. More... | |
Public Attributes inherited from camitk::Component | |
setPointSet | |
vtkSmartPointer< vtkPointSet > | getDataPort |
vtkSmartPointer< vtkPointSet > vtkSmartPointer< vtkAlgorithmOutput > | getActor |
vtkSmartPointer< vtkPointSet > vtkSmartPointer< vtkAlgorithmOutput > | vtkSmartPointer< vtkActor > |
setRenderingModes | |
setActorColor | |
const | RenderingModes |
const const | double |
const const const | double |
setColor | |
const | double |
const const const const double | getActorOpacity |
const const const const double | double |
const const const const double const RenderingModes | setMapperScalarRange |
const const const const double const RenderingModes | double |
const const const const double const RenderingModes double const double | size = 0.0) override |
setMeshWorldTransform | |
setOriginalVolume | |
vtkSmartPointer< vtkImageData > | get3DImageActor |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > | getPixelActor |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane | setSlice |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane | double |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane double | setPixelRealPosition |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane double | double |
vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > updatePickPlane double double | setArbitraryTransform |
resetTransform | rotate |
resetTransform | double |
resetTransform double | setTransformTranslation |
resetTransform double | double |
resetTransform double double | setTransformRotation |
resetTransform double double | double |
removeFrameChild | |
Protected Slots inherited from camitk::MeshComponent | |
void | changeSelectedSelection (const QItemSelection &selected, const QItemSelection &deselected) |
called when the selection is modified More... | |
void | displayTypePolicyChanged (int) |
called when the datatype for vector data is modified (refresh the data model) More... | |
void | removeSelectedData () |
remove the selected selection More... | |
void | removeSelectedSelections () |
remove the selected selection More... | |
void | vectorRepresentationPolicyChanged (int) |
called when the representation for vector data is modified (remove all actors and refresh the data model) More... | |
Protected Attributes inherited from camitk::Component | |
ComponentList | childrenComponent |
The explorer sub items. More... | |
unsigned int | indexOfPropertyExplorerTab |
The PropertyExplorer tab index to select once refreshed. More... | |
bool | isSelectedFlag |
tells if this particular Component is selected or not More... | |
bool | modifiedFlag |
the modification flag (could be extended to manage a undo/redo list) More... | |
QString | myFileName |
the file name from which the Component is loaded More... | |
InterfaceFrame * | myFrame |
myFrame is the pose (position and orientation) of the Component in the world frame, the Component delegates all InterfaceFrame activity to myFrame (delegation pattern) More... | |
InterfaceGeometry * | myGeometry |
myGeometry is the 3d representation of this Component, the Component delegates all InterfaceGeometry activity to myGeometry (delegation pattern) More... | |
InterfaceNode * | myParentNode |
who is the boss? The Component! More... | |
InterfaceBitMap * | mySlice |
mySlice is the slice representation of this data component, the Component delegates all InterfaceBitMap activity to mySlice (delegation pattern) More... | |
This class manages a physical model (PML) CamiTK component.
This class inherits from camitk::MeshComponent. It creates the 3D VTK structures corresponding to the PML structures (atoms, cells, structural components), allows to quickly selecting PML element and highlight them in the 3D structure (using vtkSelection extractors) and display usefull PML properties (given as XML attributes in the PML files) as
PMLComponent::PMLComponent | ( | const QString & | file | ) |
Construct the PML component directly from the .pml xml file.
This method may throw an AbortException if a problem occurs.
file | The input .pml xml file to build the physical model from. |
References init(), and PMLAbortException::what().
PMLComponent::PMLComponent | ( | PhysicalModel * | p, |
const QString & | originalFile | ||
) |
Create the PML component directly from the PhysicalModel (also have to give the original pml filename)
p | the physicalModel (already instantiated and build) |
originalFile | the filename from which p was build |
References init().
|
virtual |
destructor
References atomPointIdMap, and physicalModel.
|
virtual |
Add a selection (inherited from MeshComponent inorder to show a glyph on selected atoms).
If the name of the selection already exists, the data of the existing selection are updated according to the SelectionPolicy flag.
name | name of the selection |
fieldType | field type of the selection (one of vtkSelectionNode::SelectionField) |
contentType | content type (one of vtkSelectionNode::SelectionContent) |
array | array of the selection |
policy | policy to update the existing selection |
Reimplemented from camitk::MeshComponent.
References camitk::MeshComponent::getSelectionIndex(), camitk::policy(), selectedAtomIdArray, and updateSelection().
|
private |
Create a 3D vtkPolyVertex of a structural component which ONLY contains atoms ref.
sc | The PML structural component object that only contains atoms references. |
References a, StructuralComponent::getNumberOfStructures(), getPointId(), and StructuralComponent::getStructure().
Referenced by parseMultiComponent().
|
private |
Create a 3D vtkCell corresponding to a structural component's cell.
cell | The PML Cell, created by the library pml |
References a, StructuralComponent::getNumberOfStructures(), getPointId(), StructuralComponent::getStructure(), Structure::getType(), StructureProperties::HEXAHEDRON, StructureProperties::LINE, StructureProperties::POLY_LINE, StructureProperties::POLY_VERTEX, StructureProperties::PYRAMID, StructureProperties::QUAD, StructureProperties::TETRAHEDRON, StructureProperties::TRIANGLE, and StructureProperties::WEDGE.
Referenced by parseMultiComponent().
|
private |
Create the 3D VTK structure representing the mesh.
References a, atomPointIdMap, camitk::MeshComponent::initRepresentation(), mainGrid, parseMultiComponent(), scCellIdArrayMap, scCellSelectionMap, camitk::Component::setVisibility(), and thePoints.
Referenced by init().
|
private |
Create the VTK selection pipeline (selection, extractor, mapper, actor) needed to represent the selection of atoms.
References camitk::Component::addProp(), camitk::Component::getBoundingRadius(), camitk::Component::getDataPort, camitk::Component::removeProp(), selectedAtomIdArray, selectedAtomSelection, and camitk::Component::vtkSmartPointer< vtkActor >.
Referenced by init().
|
private |
Create a new VTK selection pipeline (selection, extractor, mapper, actor) for a given SC if it does not allready exists.
A VTK selection pipeline is needed to represent the given structural component There is one VTK selection pipeline per SC.
sc | the input structural component to create the vtk extract selection from. |
References camitk::Component::addProp(), StructuralComponent::getColor(), camitk::Component::getDataPort, Component::getName(), camitk::Component::removeProp(), scCellIdArrayMap, scCellSelectionMap, and camitk::Component::vtkSmartPointer< vtkActor >.
Referenced by selectCell().
|
virtual |
get the pixmap for physical model component
Reimplemented from camitk::MeshComponent.
References myPixmap.
Referenced by PMLExplorerWidget::buildPhysicalModelTreeWidgetItem().
PhysicalModel * PMLComponent::getPhysicalModel | ( | ) |
References physicalModel.
Referenced by CreateSC::apply(), CreateSC::computeBoundsOfCellIds(), CreateSC::computeBoundsOfPointIds(), CreateSC::getWidget(), PMLExplorerWidget::init(), PMLComponentExtension::save(), Arrows::update(), and Colors::update().
|
inline |
get the point Id from the corresponding atom, this is the opposite of pml->getAtom(id)
References a, and atomPointIdMap.
Referenced by atomSCToVTK(), cellToVTK(), PMLExplorerWidget::createAtomPropertyList(), selectAtom(), Arrows::update(), and Colors::update().
void PMLComponent::init | ( | ) |
initialize information (properties) and geometric representation from the physical model
References create3DStructure(), createAtomSelectionVTKPipeline(), and neverSelected.
Referenced by CreateSC::apply(), and PMLComponent().
|
protectedvirtual |
create and initialize dynamic properties using the global xml attributes from the PhysicalModel object
References camitk::Component::addProperty(), camitk::Component::setName(), and camitk::Property::setReadOnly().
|
private |
Create the 3D structure of the given MultiComponent and its children (recursively).
mc | The MultiComponent to build a 3D structure from. |
References atomSCToVTK(), CAMITK_ERROR, cellToVTK(), StructuralComponent::getCell(), MultiComponent::getNumberOfSubComponents(), MultiComponent::getSubComponent(), mainGrid, and Cell::setIndex().
Referenced by create3DStructure().
void PMLComponent::refreshDisplay | ( | ) |
Refresh the display of the component according to the selected 3D items by the user.
It also shades the component so that selection can be visible. Warning: this methods contains a forced/active refresh (breaking CamiTK programming guidelines) DO NOT CALL this method from a component, this method SHOULD ONLY be called from an action Raison d'être : this method force the vtk pipeline updates (needed when, for example, the points moved) and then refresh the 3D viewer. The later is against CamiTK programming guidelines. It is written here (in the component) because it is a helper method for actions that would need to refresh the mesh.
References camitk::InterfaceGeometry::getPointSet(), camitk::Component::myGeometry, camitk::Component::refresh(), and camitk::InterfaceGeometry::setEnhancedModes().
Referenced by PMLExplorerWidget::propertyChanged(), PMLExplorerWidget::selectItems(), and MMLDisplay::updateDisplay().
void PMLComponent::selectAtom | ( | const Atom * | atom | ) |
Select the given atom in the 3D structure.
atom | The atom to highlight |
References getPointId(), and selectedAtomIdArray.
Referenced by selectCell(), PMLExplorerWidget::selectItems(), and selectSC().
void PMLComponent::selectCell | ( | Cell * | cell, |
bool | showAtomGlyph | ||
) |
Select the given cell in the 3D structure.
cell | The cell to highlight |
showAtomGlyph | if true show the atom glyph |
References a, CAMITK_ERROR, createCellSelectionVTKPipeline(), Structure::getIndex(), Component::getName(), StructuralComponent::getNumberOfStructures(), Cell::getParentSC(), StructuralComponent::getStructure(), scCellIdArrayMap, and selectAtom().
Referenced by PMLExplorerWidget::selectItems(), and selectSC().
void PMLComponent::selectMC | ( | MultiComponent * | mc, |
bool | showAtomGlyph | ||
) |
Select the given multi component in the 3D structure by highlighting all its structural components.
mc | The multi component to highlight |
showAtomGlyph | if true show the atom glyph |
References MultiComponent::getNumberOfSubComponents(), MultiComponent::getSubComponent(), and selectSC().
Referenced by PMLExplorerWidget::selectItems().
void PMLComponent::selectSC | ( | StructuralComponent * | sc, |
bool | showAtomGlyph | ||
) |
Select the given structural component in the 3D structure by highlighting all its atoms and cells.
sc | The structural component to highlight |
showAtomGlyph | if true show the atom glyph |
References a, StructuralComponent::ATOMS, StructuralComponent::CELLS, StructuralComponent::composedBy(), StructuralComponent::getNumberOfStructures(), StructuralComponent::getStructure(), selectAtom(), and selectCell().
Referenced by PMLExplorerWidget::selectItems(), and selectMC().
|
virtual |
Update the selection flag (this method is overridden in order to show the default modeling action when the component is selected for the first time).
b | the value of the flag (true means "is selected") |
recursive | if true (default), also updates the children Component selection flags. |
Reimplemented from camitk::Component.
References camitk::Action::getQAction(), neverSelected, and camitk::Component::setSelected().
void PMLComponent::unselectItems | ( | ) |
Unselect all the SC, MC, Atoms and Cells previously selected on the 3D structure.
References scCellIdArrayMap, and selectedAtomIdArray.
Referenced by PMLExplorerWidget::selectItems().
|
virtual |
update top-level properties and synchronize the physical model values
Reimplemented from camitk::MeshComponent.
References Properties::isAField(), and Properties::set().
void PMLComponent::updateSelection | ( | ) |
Update the POINTS and CELLS selection for the whole 3D structure by telling the corresponding extractors new vtkIds have been added to the selection lists.
References scCellIdArrayMap, scCellSelectionMap, selectedAtomIdArray, and selectedAtomSelection.
Referenced by addSelection(), and PMLExplorerWidget::selectItems().
|
private |
the Atom / vtkPoint Id map
Referenced by create3DStructure(), getPointId(), and ~PMLComponent().
|
private |
The 3D grid containing all the cells of the PML.
Referenced by create3DStructure(), and parseMultiComponent().
|
staticprivate |
the PMLComponent icon
Referenced by getIcon().
|
private |
the first selection should trigger the pml exporer action (default action)
Referenced by init(), and setSelected().
|
private |
The library pml object that uses pmlschema to read the pml information for the xml file.
Referenced by getPhysicalModel(), and ~PMLComponent().
|
private |
The association structural component <-> vtkIdTypeArray for Cells selection.
Structural component name is the key. scCellIdArrayMap(sc->getName().c_str()) contains the id of all the cells selected in the StructuralComponent sc
Referenced by create3DStructure(), createCellSelectionVTKPipeline(), selectCell(), unselectItems(), and updateSelection().
|
private |
The association structural component <-> vtkSelection for Cells selection.
Structural component name is the key. scCellSelectionMap(sc->getName().c_str()) manages the vtkSelection of the StructuralComponent sc
Referenced by create3DStructure(), createCellSelectionVTKPipeline(), and updateSelection().
|
private |
The vtkIdTypeArray for atom selection (contains all the id array that corresponds to a selected atom)
Referenced by addSelection(), createAtomSelectionVTKPipeline(), selectAtom(), unselectItems(), and updateSelection().
|
private |
The vtkSelection for atom selection.
Referenced by createAtomSelectionVTKPipeline(), and updateSelection().
|
private |
The 3D VTK cloud points of the atoms read.
Referenced by create3DStructure().