Computer Assited Medical Intervention Tool Kit  version 4.1
Public Types | Protected Attributes | List of all members
camitk::Component Class Referenceabstract

A Component represents something that could be included in the explorer view, the interactive 3D viewer, and that could have or not a contextual popup menu (open by a right click in the explorer), a property dialog (to change some properties) Thus, a Component inherits from many abstract classes. More...

#include <Component.h>

Inherits camitk::InterfaceProperty, camitk::InterfaceNode, camitk::InterfaceGeometry, camitk::InterfaceBitMap, and camitk::InterfaceFrame.

Inherited by camitk::ImageAcquisitionComponent, camitk::ImageComponent, camitk::MeshComponent, camitk::SimplisticComponent, camitk::SingleImageComponent, MMLComponent, and VRMLComponent.

Public Types

enum  Representation { GEOMETRY, SLICE, NO_REPRESENTATION }
 The different representation that can be implemented to represent this Component in the InteractiveViewer. More...
 
- Public Types inherited from camitk::InterfaceGeometry
enum  EnhancedMode { Normal = 0x0, Hidden = 0x1, Shaded = 0x2, Highlighted = 0x4 }
 (and QFlags EnhancedModes) handle the way the rendering actors will be enhanced or not (from completely hidden to highlighted) More...
 
enum  GlyphType { NoGlyph = 0x0, Sphere = 0x1 }
 (and QFlags GlyphTypes) is the type of glyph attached to the geometry representation More...
 
enum  RenderingMode { None = 0x0, Surface = 0x1, Wireframe = 0x2, Points = 0x4 }
 (and QFlags RenderingModes) handle actor rendering options (render this InterfaceGeometry as a surface, a wireframe and set of points). More...
 

Public Member Functions

Component top level methods

All the methods specific to a data component (but not described in any abstract representation classes)

 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...
 
virtual ComponentgetParentComponent ()
 get the parent component More...
 
virtual ComponentgetTopLevelComponent ()
 get the top-level component More...
 
virtual InterfaceFramegetFrame ()
 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 (Viewer *, bool)
 set the visibility for a viewer More...
 
virtual bool getVisibility (Viewer *) const
 get the visibility of a viewer More...
 
virtual void refresh () const
 refresh all the viewer that are currently displaying this Component More...
 
virtual void refreshInterfaceNode ()
 Asks all viewers that are currently displaying this Component to rebuild the representation of the InterfaceNode for this Component. More...
 
virtual bool isSelected () const
 Check if this data component is selected. More...
 
virtual void setSelected (const bool b, const bool recursive=true)
 Update the selection flag. 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...
 
InterfaceProperty

All the implemented InterfaceProperty methods

QStringList getHierarchy () const override
 
bool isInstanceOf (QString className) const override
 Assert that a Component instance really inherits from a given className. More...
 
unsigned int getNumberOfPropertyWidget ()
 get the number of alternative property widgets More...
 
QWidget * getPropertyWidgetAt (unsigned int i)
 Get the ith alternative property widget. More...
 
QObject * getPropertyObject ()
 Get the property object that could be understood by PropertyEditor. More...
 
void updateProperty (QString name, QVariant value) override
 update property: if you this method, do not forget to call the superclass method for the property not managed locally in order to properly manage all inherited dynamic properties. More...
 
void setIndexOfPropertyExplorerTab (unsigned int index)
 Set the index of the tab in the ProperlyExplorer to select for display. More...
 
unsigned int getIndexOfPropertyExplorerTab ()
 Get the index of the tab in the ProperlyExplorer to select for display. More...
 
Q_INVOKABLE PropertygetProperty (QString name) override
 Get a Property given its name. More...
 
bool addProperty (Property *) override
 Add a new CamiTK property to the component. More...
 
InterfaceNode

All the implemented InterfaceNode methods

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 removeChild (InterfaceNode *) override
 remove from the the sub item vector. More...
 
void setParent (InterfaceNode *) override
 set the parent Component. This method automatically remove this Component from its previous (if already had one parent Component) More...
 
void deleteChildren () override
 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 ComponentListgetChildren () override
 get the list of the InterfaceNode children (sub items in the hierarchy) More...
 
bool doubleClicked () override
 this method is called each time the InterfaceNode is double clicked by the user. More...
 
InterfaceNodegetParent () override
 get the parent Component More...
 
QPixmap getIcon () override
 Get the pixmap that will be displayed for this node. More...
 
bool inItalic () const override
 A component name is not displayed in italic by default. More...
 
QMenu * getPopupMenu (QWidget *parent=nullptr)
 get the popup menu to display (always return NULL, overwrite this method if you want to give here you own popup) More...
 
- 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 vtkSmartPointer< vtkActor > getActor (const RenderingModes)=0
 Return the actor for the representation mode, NULL if the actor doesn't exist. More...
 
virtual void setTexture (vtkSmartPointer< vtkTexture >)=0
 Set a texture to this object. 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, 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 int getNumberOfSlices () const =0
 Return the number of slices in the image data set. 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
 Return 2D Axes at the proper slice origin. 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 (int s)=0
 Set the current slice index. 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 updatePickPlane ()=0
 
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 (Viewer *viewer) 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 (Viewer *viewer, bool visible)=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 InterfaceFramegetParentFrame () 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 Attributes

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 modificatio flag (could be extended to manage a undo/redo list) More...
 
QString myFileName
 the file name from which the Component is loaded More...
 
InterfaceFramemyFrame
 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...
 
InterfaceGeometrymyGeometry
 myGeometry is the 3d representation of this Component, the Component delegates all InterfaceGeometry activity to myGeometry (delegation pattern) More...
 
InterfaceNodemyParentNode
 who is the boss? The Component! More...
 
InterfaceBitMapmySlice
 mySlice is the slice representation of this data component, the Component delegates all InterfaceBitMap activity to mySlice (delegation pattern) More...
 

Static Private Attributes

Static members

All the static member (manage the application-wide list of Component + the application-wide current selection + viewers)

static QSet< Viewer * > allViewers
 

InterfaceGeometry

All the implemented InterfaceGeometry methods (delegated or not, see also Component.cpp)

 setPointSet
 
vtkSmartPointer< vtkPointSet > getDataPort
 
vtkSmartPointer< vtkPointSet > vtkSmartPointer< vtkAlgorithmOutput > getActor
 
vtkSmartPointer< vtkPointSet > vtkSmartPointer< vtkAlgorithmOutput > vtkSmartPointer< vtkActor >
 
 setRenderingModes
 
 getEnhancedModes
 
const EnhancedModes setActorColor
 
const EnhancedModes const RenderingModes
 
const EnhancedModes const const double
 
const EnhancedModes const const const double
 
 setColor
 
const double
 
const const double
 
const const 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
 
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 &param)
 Return the vtkProp (actors, volumes and annotations) corresponding to the given name. More...
 
unsigned int getNumberOfProp () const
 return the number of additional prop More...
 
vtkSmartPointer< vtkProp > getProp (unsigned int index)
 return an additional prop by its index More...
 
bool addProp (const QString &name, vtkSmartPointer< vtkProp > prop)
 insert an additional prop, defining it by its name (default visibility = false) More...
 
bool removeProp (const QString &name)
 remove a given additional prop. More...
 
void pointPicked (vtkIdType, bool)
 an inherited class can redefine this method something specific. More...
 
void cellPicked (vtkIdType, bool)
 an inherited class can redefine this method something specific. 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 RenderingModes const InterfaceGeometry::RenderingModes getRenderingModes () const override
 see Component.cpp More...
 
 delegateAndInvokeChildren1 (myGeometry, setEnhancedModes, const EnhancedModes) delegateConstGet0(myGeometry
 
const EnhancedModes delegateAndInvokeChildren1Array (myGeometry, setActorColor, const RenderingModes, double, 4) delegateAndInvokeChildren4(myGeometry
 
const EnhancedModes 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
 

InterfaceBitMap

All the implemented InterfaceBitMap methods

 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
 
 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 >) int getNumberOfSlices() const override
 see Component.cpp More...
 
int getSlice () const override
 see Component.cpp More...
 

InterfaceFrame

All the implemented InterfaceFrame methods

resetTransform rotate
 
resetTransform double
 
resetTransform double setTransformTranslation
 
resetTransform double double
 
resetTransform double double setTransformRotation
 
resetTransform double double double
 
 removeFrameChild
 
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, Viewer *, bool) bool getFrameVisibility(Viewer *viewer) const override
 
 delegate1 (myFrame, addFrameChild, InterfaceFrame *) delegate1(myFrame
 

Instance members

Representation myService
 the service implemented to be represented in the InteractiveViewer More...
 
QString myName
 my name More...
 
QMap< Viewer *, bool > myViewers
 Where is this Component currently viewed. More...
 
QMenu * actionsMenu
 the action menu for this component More...
 
QMap< QString, Property * > propertyMap
 list of CamiTK property decorating the dynamic properties More...
 
void init ()
 method called in constructors for general initialization More...
 
virtual void initRepresentation ()=0
 Instanciate the concrete representation (either InterfaceGeometry or InterfaceBitMap) if needed. More...
 

Additional Inherited Members

- Public Attributes inherited from camitk::InterfaceBitMap
QMap< QString, vtkSmartPointer< vtkProp > > extraProp
 The additional map for prop (include at least "label" and "glyph". More...
 

Detailed Description

A Component represents something that could be included in the explorer view, the interactive 3D viewer, and that could have or not a contextual popup menu (open by a right click in the explorer), a property dialog (to change some properties) Thus, a Component inherits from many abstract classes.

A Component can only have one implemented representation.

For CAMITK core developers: This class uses the Object Adapter Design Pattern (aka delegate pattern) to delegates all InterfaceGeometry and InterfaceBitMap to respectively myGeometry:Geometry and mySlice:InterfaceBitMap It handles the InterfaceNode without delegation. Considering this Design Pattern, Component is the Adaptor and Geometry and InterfaceBitMap are the Adaptee classes.

This class has some static member to manage all the currently instantiated Components as well as the currently selected Components.

Actions generally use setPointSet() (for InterfaceGeometry) and setOriginalVolume (for InterfaceBitMap) to do some data processing and directly modify the low-level Vtk data. It is thus very important to rewrite these methods in your Component subclass to takes the actions' modification into account in your low-level data.

Dynamic properties: if your Component defines some dynamic property, you might want to updateProperty() in order to update the internal state of your object when a dynamic property has been changed.

See also
ObjComponent for a good example

It is extensively using Qt Meta-Object system (concepts and implementation). see http://doc.qt.nokia.com/latest/metaobjects.html

Member Enumeration Documentation

◆ Representation

The different representation that can be implemented to represent this Component in the InteractiveViewer.

use getRepresentation() to get the information about a specific Component.

Note
the representation cannot be NULL; if a Component does not have any representation, then getRepresentation() should return NO_REPRESENTATION (default).
Enumerator
GEOMETRY 

this Component can be displayed as a GEOMETRY

SLICE 

this Component can be displayed as a SLICE

NO_REPRESENTATION 

this Component has no representation implemented

Constructor & Destructor Documentation

◆ Component() [1/2]

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).

parentComponent is set to NULL (=> isTopLevel() will return true).

Parameters
filethe file to get the data from
namethe Component name
repthe representation concretely implemented by this Component (default=NO_REPRESENTATION)

References init().

◆ Component() [2/2]

Component::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.

This method may throw an AbortException if a problem occurs.

Parameters
parentComponentthe parent Component
namethe Component name
repthe representation implemented by this Component (default=NO_REPRESENTATION)
Exceptions
AbortExceptionif parentComponent is nullptr.

References camitk::InterfaceNode::addChild(), init(), myFileName, and myParentNode.

◆ ~Component()

Component::~Component ( )
override

default destructor.

The Component class destructor is automatically called after the inherited destructor has finished (C++ standard). This destructor delete all the children, clear all this component's viewer list, delete all helper class instance (Geometry, Slice or Frame), which in turns will delete the VTK pipeline and any additional prop, and finally delete and all additional CamiTK Properties.

See also
deleteChildren()

References CAMITK_TRACE, deleteChildren(), getParentComponent(), isSelectedFlag, myFrame, myGeometry, mySlice, myViewers, propertyMap, camitk::Application::removeComponent(), and setSelected().

Member Function Documentation

◆ addChild()

void Component::addChild ( InterfaceNode )
overridevirtual

add a child Component (sub item in the hierarchy), and modify the child's parent to be equal to this instance

This is to be used with care. The preferred method to add a child component is to use the Component's constructor with the parent parameter: Component(Component *, const QString &, Representation rep) .

Note
If the use of this method does not update the new child in the Explorer, then you may need to force the rebuild of the explorer nodes by calling Component::refreshInterfaceNode() as follows:
this->addChild(otherComponent);
this->refreshInterfaceNode(); // check first without this, it should work in most of the cases.

see attachChild() Component::refreshInterfaceNode()

Implements camitk::InterfaceNode.

References attachChild(), and camitk::InterfaceNode::setParent().

Referenced by MMLComponent::connectPml(), and MMLComponent::MMLComponent().

◆ addProp()

bool camitk::Component::addProp ( const QString &  ,
vtkSmartPointer< vtkProp >   
)
inlinevirtual

insert an additional prop, defining it by its name (default visibility = false)

Returns
true if the additional prop was added (i.e. another additional prop of the same name does not exist)

Implements camitk::InterfaceBitMap.

Referenced by RenderingOption::apply(), PMLComponent::createAtomSelectionVTKPipeline(), PMLComponent::createCellSelectionVTKPipeline(), camitk::MeshComponent::createDataRepresentation(), VolumeRenderingAction::createVolumeRendering(), and camitk::MeshComponent::initSelection().

◆ addProperty()

bool Component::addProperty ( Property prop)
overridevirtual

Add a new CamiTK property to the component.

If the property already exist, it will just change its value.

Note
The component takes ownership of the Property instance.
Returns
false if the Qt Meta Object property was added by this method (otherwise the property was already defined and true is returned if it was successfully updated)

Implements camitk::InterfaceProperty.

Reimplemented in camitk::SimplisticComponent.

References camitk::Property::getInitialValue(), camitk::Property::getName(), and propertyMap.

Referenced by PMLExplorerWidget::createNewProperty(), camitk::ImageComponent::init(), VtkMeshComponent::initDynamicProperties(), PMLComponent::initDynamicProperties(), camitk::MeshComponent::initDynamicProperties(), and camitk::ImageComponent::setImageData().

◆ attachChild()

void Component::attachChild ( InterfaceNode )
overridevirtual

add a child Component (but leave its parent unchanged)

There can be some refresh problem, see the note in addChild()

Implements camitk::InterfaceNode.

References childrenComponent.

Referenced by addChild().

◆ cellPicked()

void camitk::Component::cellPicked ( vtkIdType  ,
bool   
)
inlinevirtual

an inherited class can redefine this method something specific.

Default behaviour: do nothing.

Implements camitk::InterfaceGeometry.

Reimplemented in camitk::MeshComponent.

References delegate4.

Referenced by camitk::InteractiveViewer::picked().

◆ delegate1() [1/9]

vtkSmartPointer<vtkPointSet> camitk::Component::delegate1 ( myGeometry  ,
setPointData  ,
vtkSmartPointer< vtkDataArray >   
)

◆ delegate1() [2/9]

vtkSmartPointer<vtkPointSet> vtkSmartPointer<vtkAlgorithmOutput> camitk::Component::delegate1 ( myGeometry  ,
setDataConnection  ,
vtkSmartPointer< vtkAlgorithmOutput >   
)

◆ delegate1() [3/9]

const const const const double const RenderingModes double camitk::Component::delegate1 ( myGeometry  ,
setTexture  ,
vtkSmartPointer< vtkTexture >   
) const

◆ delegate1() [4/9]

camitk::Component::delegate1 ( myGeometry  ,
setLinesAsTubes  ,
bool   
)

◆ delegate1() [5/9]

vtkSmartPointer<vtkImageData> vtkSmartPointer<vtkImageActor> vtkSmartPointer<vtkActor> updatePickPlane camitk::Component::delegate1 ( mySlice  ,
setSlice  ,
int   
)

◆ delegate1() [6/9]

vtkSmartPointer<vtkImageData> vtkSmartPointer<vtkImageActor> vtkSmartPointer<vtkActor> updatePickPlane double double camitk::Component::delegate1 ( mySlice  ,
setImageWorldTransform  ,
vtkSmartPointer< vtkTransform >   
) const
override

see Component.cpp

◆ delegate1() [7/9]

camitk::Component::delegate1 ( myFrame  ,
setFrameName  ,
QString   
) const
override

◆ delegate1() [8/9]

camitk::Component::delegate1 ( myFrame  ,
setTransform  ,
vtkSmartPointer< vtkTransform >   
)

◆ delegate1() [9/9]

camitk::Component::delegate1 ( myFrame  ,
addFrameChild  ,
InterfaceFrame  
)

◆ delegate2()

camitk::Component::delegate2 ( myFrame  ,
setFrameVisibility  ,
Viewer ,
bool   
) const
override

◆ delegate3() [1/5]

vtkSmartPointer<vtkImageData> vtkSmartPointer<vtkImageActor> vtkSmartPointer<vtkActor> camitk::Component::delegate3 ( mySlice  ,
pixelPicked  ,
double  ,
double  ,
double   
)

◆ delegate3() [2/5]

resetTransform camitk::Component::delegate3 ( myFrame  ,
translate  ,
double  ,
double  ,
double   
)

◆ delegate3() [3/5]

resetTransform double camitk::Component::delegate3 ( myFrame  ,
rotateVTK  ,
double  ,
double  ,
double   
)

◆ delegate3() [4/5]

resetTransform double double camitk::Component::delegate3 ( myFrame  ,
setTransformTranslationVTK  ,
double  ,
double  ,
double   
)

◆ delegate3() [5/5]

resetTransform double double double camitk::Component::delegate3 ( myFrame  ,
setTransformRotationVTK  ,
double  ,
double  ,
double   
)
override

◆ delegate4()

camitk::Component::delegate4 ( myGeometry  ,
setPointPosition  ,
const unsigned  int,
const double  ,
const double  ,
const double   
)

◆ delegateAndInvokeChildren1() [1/2]

camitk::Component::delegateAndInvokeChildren1 ( myGeometry  ,
setEnhancedModes  ,
const EnhancedModes   
)

◆ delegateAndInvokeChildren1() [2/2]

const const const const double const RenderingModes camitk::Component::delegateAndInvokeChildren1 ( myGeometry  ,
setOpacity  ,
const double   
)

◆ delegateAndInvokeChildren1Array()

const EnhancedModes camitk::Component::delegateAndInvokeChildren1Array ( myGeometry  ,
setActorColor  ,
const RenderingModes  ,
double  ,
 
)

◆ delegateAndInvokeChildren2()

const const const const double camitk::Component::delegateAndInvokeChildren2 ( myGeometry  ,
setActorOpacity  ,
const RenderingModes  ,
const double   
)

◆ delegateAndInvokeChildren3()

camitk::Component::delegateAndInvokeChildren3 ( myGeometry  ,
setColor  ,
const double  ,
const double  ,
const double   
)

◆ delegateConstGet0() [1/4]

camitk::Component::delegateConstGet0 ( mySlice  ,
getImageData  ,
vtkSmartPointer< vtkImageData >   
)

◆ delegateConstGet0() [2/4]

vtkSmartPointer<vtkImageData> camitk::Component::delegateConstGet0 ( mySlice  ,
get2DImageActor  ,
vtkSmartPointer< vtkImageActor >   
)

◆ delegateConstGet0() [3/4]

vtkSmartPointer<vtkImageData> vtkSmartPointer<vtkImageActor> camitk::Component::delegateConstGet0 ( mySlice  ,
getPickPlaneActor  ,
vtkSmartPointer< vtkActor >   
)

◆ delegateConstGet0() [4/4]

vtkSmartPointer<vtkImageData> vtkSmartPointer<vtkImageActor> vtkSmartPointer<vtkActor> updatePickPlane double camitk::Component::delegateConstGet0 ( mySlice  ,
getNumberOfColors  ,
int   
)

◆ delegateGet0()

camitk::Component::delegateGet0 ( myGeometry  ,
getPointSet  ,
vtkSmartPointer< vtkPointSet >   
)

◆ deleteChildren()

void Component::deleteChildren ( )
overridevirtual

delete all sub Component, but do not delete the pointer (only the top-level component has the right to do that)

Implements camitk::InterfaceNode.

References childrenComponent, camitk::Application::isAlive(), myGeometry, camitk::InterfaceGeometry::setGlyphType(), and size.

Referenced by MMLComponent::connectPml(), and ~Component().

◆ doubleClicked()

bool Component::doubleClicked ( )
inlineoverridevirtual

this method is called each time the InterfaceNode is double clicked by the user.

Returns
a boolean telling if there was modification made in the Component due to this double click

Implements camitk::InterfaceNode.

Referenced by camitk::Explorer::doubleClicked().

◆ event()

bool Component::event ( QEvent *  e)
override

Overriden from QObject, this one is only intercepting signal for dynamic property changed (see constructor).

References updateProperty().

◆ getActionMenu()

QMenu * Component::getActionMenu ( )

◆ getActorColor()

void Component::getActorColor ( const RenderingModes  ,
double  [4] 
)
override

◆ getBoundingRadius()

double Component::getBoundingRadius ( )
overridevirtual

◆ getBounds()

void Component::getBounds ( double bounds)
overridevirtual

compute the object's bounding box [xmin,xmax, ymin,ymax, zmin,zmax], see Component.cpp

Implements camitk::InterfaceGeometry.

References childrenComponent, getBounds(), invoke1, and myGeometry.

Referenced by getBounds(), camitk::InteractiveViewer::getBoundsOfSelected(), MeshClipping::updateBox(), and CreateSC::updateCorners().

◆ getChildren()

const ComponentList & Component::getChildren ( )
inlineoverridevirtual

◆ getChildrenFrame()

const QVector< InterfaceFrame * > & Component::getChildrenFrame ( ) const
overridevirtual

Get the Children Frames from the current Frame in the Frame Hierarchy The Frame hierarchy may not be the same as the Component Hierarchy.

Implements camitk::InterfaceFrame.

References CAMITK_ERROR, camitk::InterfaceFrame::getChildrenFrame(), and myFrame.

◆ getFileName()

const QString Component::getFileName ( ) const

◆ getFrame()

InterfaceFrame * Component::getFrame ( )
inlinevirtual

◆ getFrameName()

const QString & Component::getFrameName ( ) const
overridevirtual

Hierarchy accessors / Modifyers.

Get the Frame Unique identifyer (can be set by user)

Implements camitk::InterfaceFrame.

References CAMITK_ERROR, camitk::InterfaceFrame::getFrameName(), camitk::InterfaceFrame::getParentFrame(), myFrame, and myName.

◆ getHierarchy()

QStringList Component::getHierarchy ( ) const
overridevirtual

Get the inheritance hierachy of this Component instance as a list of QString

Implements camitk::InterfaceProperty.

Referenced by ExportAsMDL::apply(), camitk::Application::getActions(), and isInstanceOf().

◆ getIcon()

QPixmap Component::getIcon ( )
inlineoverridevirtual

Get the pixmap that will be displayed for this node.

If you want your component to have a nice pixmap displayed in the explorer, for example, you just need to

  1. declare a new static member and redefines the getIcon() method (in MyComponent.h):
    public:
    virtual QPixmap getIcon();
    private:
    static QPixmap * myPixmap; // declare a ptr here (it is static for optimization)
  2. add these lines in your code (in MyComponent.cpp):
// use this two lines or better use a Qt resource bundle (recommanded!)
#include "myComponent_pixmap.xpm" // include the pixmap resource file or use a Qt resource bundle
QPixmap * MyComponent::myPixmap = NULL; // static initialization
QPixmap MyComponent::getIcon() {
// check if the class instance was already used somewhere
if (!myPixmap) {
// create the pixmap from the data like this (or using the Qt resource bundle, see Qt documentation)
myPixmap = new QPixmap(myComponent_pixmap); // myComponent_pixmap is the name of the char[] found in the .xpm file
}
// return the object (not the pointer
return (*myPixmap);
}

And that all folks! A nice icon will be now used to display your component!

Note
Recommanded pixmap size is 20x20 (not nice, but efficient)...

Implements camitk::InterfaceNode.

Reimplemented in camitk::MeshComponent, PMLComponent, and VtkMeshComponent.

Referenced by camitk::Explorer::getNewItem().

◆ getIndexOfPropertyExplorerTab()

unsigned int camitk::Component::getIndexOfPropertyExplorerTab ( )
inlinevirtual

Get the index of the tab in the ProperlyExplorer to select for display.

The ProperlyExplorer may features several tabs of widget. This method allows to select the one to select for display in a given context.

Returns
the index to select in the tab of the ProperlyExplorer.
See also
PropertyExplorer

Implements camitk::InterfaceProperty.

◆ getLabel()

const QString Component::getLabel ( ) const
inlineoverridevirtual

get the string used to display the label, do the same as getName

Implements camitk::InterfaceGeometry.

◆ getModified()

bool Component::getModified ( ) const
inlinevirtual

◆ getName()

QString Component::getName ( ) const
inlineoverridevirtual

get the name to be displayed

Implements camitk::InterfaceNode.

Referenced by camitk::FrameExplorer::add(), ExtractSelection::apply(), CleanPolyData::apply(), ExtractEdges::apply(), FillWithPoints::apply(), ExportAsMDL::apply(), ExtractSurface::apply(), WarpOut::apply(), Decimation::apply(), SaveAsAction::apply(), ImageReconstructionAction::apply(), CenterMesh::apply(), MeshPicking::apply(), ICPRegistration::apply(), MergeMeshs::apply(), MeshQuality::apply(), MeshClipping::clipMesh(), camitk::Application::close(), camitk::CamiTKLogger::getCamiTKAPIInformation(), camitk::MeshComponent::getDataPropName(), camitk::ImageComponent::getImageName(), camitk::FrameExplorer::getNewItem(), camitk::Explorer::getNewItem(), camitk::ActionWidget::getTargetLabel(), camitk::HistoryComponent::HistoryComponent(), PMLExplorerWidget::init(), camitk::ImageComponent::init(), FrameEditor::initializeDialogWithCurrentComponent(), camitk::ImageComponent::initImageProperties(), camitk::MeshComponent::initRepresentation(), camitk::InteractiveViewer::keyPressEvent(), MultiPickingWidget::manuallyModified(), camitk::InteractiveViewer::picked(), ManualThreshold::process(), MeshToImageStencil::process(), CannyEdgeDetection::process(), GradientMagnitudeRecursiveGaussian::process(), LaplacianRecursiveGaussian::process(), LaplacianSharpening::process(), MeanFilter::process(), GradientMagnitude::process(), Laplacian::process(), MedianFilter::process(), RegionGrowing::process(), SobelEdgeDetection::process(), SaveDisplacementFromTransformation::process(), BoxVOI::process(), ConnectedComponents::process(), OtsuFilter::process(), Derivative::process(), GaussianFilter::process(), AnisotropicDiffusion::process(), ResampleAction::process(), MorphologicalOperators::process(), camitk::Explorer::renameItem(), VtkMeshComponentExtension::save(), VRMLComponentExtension::save(), camitk::ComponentExtension::save(), camitk::Application::save(), ExportAsMDL::saveMeshComponentToMDL(), GenerateModel::saveSOFAFile(), BoxVOIWidget::updateComponent(), RegionGrowingWidget::updateComponent(), and VolumeRenderingWidget::updateImage().

◆ getNumberOfProp()

unsigned int camitk::Component::getNumberOfProp ( ) const
inlinevirtual

return the number of additional prop

Implements camitk::InterfaceBitMap.

Referenced by camitk::InteractiveViewer::keyPressEvent(), and camitk::InteractiveViewer::refresh().

◆ getNumberOfPropertyWidget()

unsigned int camitk::Component::getNumberOfPropertyWidget ( )
inlinevirtual

get the number of alternative property widgets

See also
PropertyExplorer

Implements camitk::InterfaceProperty.

Reimplemented in camitk::ImageComponent, and camitk::MeshComponent.

◆ getParent()

InterfaceNode * Component::getParent ( )
inlineoverridevirtual

◆ getParentComponent()

Component * Component::getParentComponent ( )
virtual

◆ getPopupMenu()

QMenu* camitk::Component::getPopupMenu ( QWidget *  parent = nullptr)
inlinevirtual

get the popup menu to display (always return NULL, overwrite this method if you want to give here you own popup)

Implements camitk::InterfaceNode.

References delegateGet0.

◆ getProp() [1/2]

vtkSmartPointer<vtkPointSet> vtkSmartPointer<vtkAlgorithmOutput> const RenderingModes vtkSmartPointer<vtkProp> camitk::Component::getProp ( const QString &  )
inlinevirtual

◆ getProp() [2/2]

vtkSmartPointer<vtkProp> camitk::Component::getProp ( unsigned int  int)
inlinevirtual

return an additional prop by its index

Implements camitk::InterfaceBitMap.

◆ getProperty()

Property * Component::getProperty ( QString  name)
overridevirtual

Get a Property given its name.

Parameters
namethe property name
Returns
NULL if the name does not match any property name
See also
Property

Implements camitk::InterfaceProperty.

References propertyMap.

◆ getPropertyObject()

QObject* camitk::Component::getPropertyObject ( )
inlinevirtual

Get the property object that could be understood by PropertyEditor.

Returns this as any Component instance can manage its list of dynamic properties (and Component inherits from InterfaceProperty ). You can also have a separate class to manage your Component properties. In this case, just overide this method and return the corresponding instance.

See also
PropertyExplorer
ObjectController

Implements camitk::InterfaceProperty.

◆ getPropertyWidgetAt()

QWidget* camitk::Component::getPropertyWidgetAt ( unsigned int  i)
inlinevirtual

Get the ith alternative property widget.

See also
PropertyExplorer

Implements camitk::InterfaceProperty.

Reimplemented in camitk::ImageComponent, and camitk::MeshComponent.

◆ getRenderingModes()

const InterfaceGeometry::RenderingModes Component::getRenderingModes ( ) const
overridevirtual

◆ getRepresentation()

Component::Representation Component::getRepresentation ( ) const

◆ getSlice()

int Component::getSlice ( ) const
overridevirtual

◆ getTopLevelComponent()

Component * Component::getTopLevelComponent ( )
virtual

◆ getTransform()

const vtkSmartPointer< vtkTransform > Component::getTransform ( ) const
overridevirtual

◆ getTransformFromFrame()

const vtkSmartPointer< vtkTransform > Component::getTransformFromFrame ( InterfaceFrame frame) const
overridevirtual

Compute the transformation from any other frame to the current frame.

Note
A new returned transformed is instancied at each call. Caller takes ownership of the transform and is responsible for its deletion

Implements camitk::InterfaceFrame.

References CAMITK_ERROR, camitk::InterfaceFrame::getFrameAxisActor(), camitk::InterfaceFrame::getFrameVisibility(), camitk::InterfaceFrame::getTransformFromFrame(), and myFrame.

◆ getTransformFromWorld()

const vtkSmartPointer< vtkTransform > Component::getTransformFromWorld ( ) const
overridevirtual

◆ getVisibility()

bool Component::getVisibility ( Viewer v) const
virtual

◆ init()

void Component::init ( )
private

◆ inItalic()

bool Component::inItalic ( ) const
inlineoverridevirtual

A component name is not displayed in italic by default.

You must redefine this method in you inherited Component to change this behaviour.

Implements camitk::InterfaceNode.

Referenced by camitk::Explorer::getNewItem().

◆ initRepresentation()

virtual void camitk::Component::initRepresentation ( )
privatepure virtual

Instanciate the concrete representation (either InterfaceGeometry or InterfaceBitMap) if needed.

This method has to instanciate Slice (mySlice) or Geometry (myGeometry) that does all the work for this Component, i.e. the adaptee handler. Generally this method should be called in the Component constructor.

Implemented in camitk::MeshComponent, camitk::ImageComponent, camitk::SingleImageComponent, MMLComponent, camitk::SimplisticComponent, and VRMLComponent.

◆ isInstanceOf()

bool Component::isInstanceOf ( QString  className) const
overridevirtual

Assert that a Component instance really inherits from a given className.

Implements camitk::InterfaceProperty.

References getHierarchy().

Referenced by MeshClipping::apply(), camitk::Action::setInputComponent(), camitk::Action::setInputComponents(), and camitk::Action::trigger().

◆ isSelected()

bool Component::isSelected ( ) const
inlinevirtual

◆ isTopLevel()

bool Component::isTopLevel ( ) const

return true if this component is a top-level component

References myParentNode.

Referenced by SaveAsAction::apply(), getTopLevelComponent(), and camitk::Application::open().

◆ pointPicked()

void camitk::Component::pointPicked ( vtkIdType  ,
bool   
)
inlinevirtual

an inherited class can redefine this method something specific.

Default behaviour: do nothing.

Implements camitk::InterfaceGeometry.

Reimplemented in camitk::MeshComponent.

Referenced by camitk::InteractiveViewer::picked().

◆ refresh()

void Component::refresh ( ) const
virtual

◆ refreshInterfaceNode()

void Component::refreshInterfaceNode ( )
virtual

Asks all viewers that are currently displaying this Component to rebuild the representation of the InterfaceNode for this Component.

It calls the method update(Component *) of the class Viewer. This method does nothing except for the Explorer where it does not only refresh, but remove this and re-load the Component.

References myViewers.

Referenced by MMLComponent::connectPml(), camitk::ImageComponent::replaceImageData(), and camitk::ImageComponent::updateProperty().

◆ removeChild()

void Component::removeChild ( InterfaceNode childNode)
overridevirtual

remove from the the sub item vector.

This method automatically update the parentComponent of (set to NULL).

Implements camitk::InterfaceNode.

References childrenComponent, and setParent().

Referenced by MMLComponent::connectPml(), camitk::ImageComponent::replaceImageData(), and camitk::ImageComponent::setSingleImageComponents().

◆ removeProp()

bool camitk::Component::removeProp ( const QString &  )
inlinevirtual

◆ setFileName()

void Component::setFileName ( const QString &  fName)

set the file name where the data have to be stored

References myFileName.

Referenced by SaveAsAction::apply(), and GenerateModel::apply().

◆ setIndexOfPropertyExplorerTab()

void camitk::Component::setIndexOfPropertyExplorerTab ( unsigned int  index)
inlinevirtual

Set the index of the tab in the ProperlyExplorer to select for display.

The ProperlyExplorer may features several tabs of widget. This method allows to select the one to select for display in a given context.

Parameters
indexthe index to select in the tab of the ProperlyExplorer.
See also
PropertyExplorer

Implements camitk::InterfaceProperty.

Referenced by camitk::MeshComponent::changeSelectedSelection(), init(), and camitk::ImageComponent::pixelPicked().

◆ setLabel()

void Component::setLabel ( QString  newName)
inlineoverridevirtual

set the string used to display the label, do the same as setName

Implements camitk::InterfaceGeometry.

◆ setModified()

void Component::setModified ( bool  modified = true)
inlinevirtual

◆ setName()

void Component::setName ( const QString &  )
inlineoverridevirtual

◆ setParent()

void Component::setParent ( InterfaceNode pes)
overridevirtual

set the parent Component. This method automatically remove this Component from its previous (if already had one parent Component)

Implements camitk::InterfaceNode.

References camitk::Application::getTopLevelComponentList(), myParentNode, and camitk::InterfaceNode::removeChild().

Referenced by removeChild().

◆ setParentFrame()

void Component::setParentFrame ( InterfaceFrame parent,
bool  keepTransform = true 
)
overridevirtual

Set the parent frame and update or not its transform during the parent transition.

Parameters
parentthe new parent frame of current interface frame
keepTransformif true keeps the local transform from parent. The current interface frame may move from world coordinates as its local transform is now expressed relatively to the new parent. If false, change the transform from parent to keep the global (world) transform the same as the previous one.

Implements camitk::InterfaceFrame.

References CAMITK_ERROR, myFrame, and camitk::InterfaceFrame::setParentFrame().

Referenced by camitk::Action::applyTargetPosition(), camitk::ImageComponent::buildImageComponents(), ReorientImage::process(), FrameEditor::setParentFrame(), and camitk::SingleImageComponent::SingleImageComponent().

◆ setSelected()

void Component::setSelected ( const bool  b,
const bool  recursive = true 
)
virtual

◆ setVisibility()

void Component::setVisibility ( Viewer v,
bool  b 
)
virtual

◆ updateProperty()

void Component::updateProperty ( QString  name,
QVariant  value 
)
overridevirtual

update property: if you this method, do not forget to call the superclass method for the property not managed locally in order to properly manage all inherited dynamic properties.

This method is called when a dynamic property has to be udpated

Parameters
namethe name of the dynamic property
valuethe new value to take into account

Implements camitk::InterfaceProperty.

Reimplemented in camitk::ImageComponent, camitk::MeshComponent, PMLComponent, and VtkMeshComponent.

References CAMITK_INFO.

Referenced by event(), and camitk::ImageComponent::updateProperty().

Member Data Documentation

◆ actionsMenu

QMenu* camitk::Component::actionsMenu
private

the action menu for this component

Referenced by getActionMenu(), and init().

◆ allViewers

QSet< Viewer * > Component::allViewers
staticprivate

set of used viewers

◆ childrenComponent

ComponentList camitk::Component::childrenComponent
protected

◆ double [1/12]

const EnhancedModes const const const camitk::Component::double

◆ double [2/12]

resetTransform double double Component::double

◆ double [3/12]

const camitk::Component::double

◆ double [4/12]

const const camitk::Component::double

◆ double [5/12]

const const const camitk::Component::double

◆ double [6/12]

const const const const double camitk::Component::double

◆ double [7/12]

const const const const double const RenderingModes camitk::Component::double

◆ double [8/12]

vtkSmartPointer<vtkImageData> vtkSmartPointer<vtkImageActor> vtkSmartPointer<vtkActor> updatePickPlane camitk::Component::double

◆ double [9/12]

vtkSmartPointer<vtkImageData> vtkSmartPointer<vtkImageActor> vtkSmartPointer<vtkActor> updatePickPlane double camitk::Component::double

◆ double [10/12]

resetTransform camitk::Component::double

◆ double [11/12]

resetTransform double camitk::Component::double

◆ double [12/12]

resetTransform double double camitk::Component::double

◆ get3DImageActor

vtkSmartPointer<vtkImageData> camitk::Component::get3DImageActor

◆ getActor

vtkSmartPointer<vtkPointSet> vtkSmartPointer<vtkAlgorithmOutput> camitk::Component::getActor

◆ getActorOpacity

const const const const double camitk::Component::getActorOpacity

◆ getDataPort

vtkSmartPointer<vtkPointSet> camitk::Component::getDataPort

◆ getEnhancedModes

camitk::Component::getEnhancedModes

◆ getPixelActor

vtkSmartPointer<vtkImageData> vtkSmartPointer<vtkImageActor> camitk::Component::getPixelActor

◆ indexOfPropertyExplorerTab

unsigned int camitk::Component::indexOfPropertyExplorerTab
protected

The PropertyExplorer tab index to select once refreshed.

◆ isSelectedFlag

bool camitk::Component::isSelectedFlag
protected

tells if this particular Component is selected or not

Referenced by init(), setSelected(), and ~Component().

◆ modifiedFlag

bool camitk::Component::modifiedFlag
protected

the modificatio flag (could be extended to manage a undo/redo list)

Referenced by init().

◆ myFileName

QString camitk::Component::myFileName
protected

◆ myFrame

InterfaceFrame* camitk::Component::myFrame
protected

myFrame is the pose (position and orientation) of the Component in the world frame, the Component delegates all InterfaceFrame activity to myFrame (delegation pattern)

Referenced by getChildrenFrame(), getFrameName(), getTransform(), getTransformFromFrame(), getTransformFromWorld(), init(), setParentFrame(), and ~Component().

◆ myGeometry

InterfaceGeometry* camitk::Component::myGeometry
protected

◆ myName

QString camitk::Component::myName
private

my name

Referenced by getFrameName().

◆ myParentNode

InterfaceNode* camitk::Component::myParentNode
protected

who is the boss? The Component!

Referenced by Component(), getParentComponent(), isTopLevel(), and setParent().

◆ myService

Representation camitk::Component::myService
private

the service implemented to be represented in the InteractiveViewer

Referenced by getRepresentation().

◆ mySlice

InterfaceBitMap* camitk::Component::mySlice
protected

mySlice is the slice representation of this data component, the Component delegates all InterfaceBitMap activity to mySlice (delegation pattern)

Referenced by getBoundingRadius(), getRepresentation(), getSlice(), init(), camitk::SingleImageComponent::initRepresentation(), and ~Component().

◆ myViewers

QMap<Viewer*, bool> camitk::Component::myViewers
private

Where is this Component currently viewed.

Referenced by getVisibility(), refresh(), refreshInterfaceNode(), setVisibility(), and ~Component().

◆ propertyMap

QMap<QString, Property*> camitk::Component::propertyMap
private

list of CamiTK property decorating the dynamic properties

Referenced by addProperty(), getProperty(), and ~Component().

◆ removeFrameChild

camitk::Component::removeFrameChild

◆ RenderingModes

const EnhancedModes const camitk::Component::RenderingModes

◆ rotate

resetTransform camitk::Component::rotate

Referenced by FrameEditor::rotate().

◆ setActorColor

const EnhancedModes camitk::Component::setActorColor

Referenced by ChangeColor::apply().

◆ setColor

camitk::Component::setColor

◆ setMapperScalarRange

const const const const double const RenderingModes camitk::Component::setMapperScalarRange

◆ setMeshWorldTransform

camitk::Component::setMeshWorldTransform

◆ setOriginalVolume

camitk::Component::setOriginalVolume

◆ setPixelRealPosition

vtkSmartPointer<vtkImageData> vtkSmartPointer<vtkImageActor> vtkSmartPointer<vtkActor> updatePickPlane double camitk::Component::setPixelRealPosition

◆ setPointSet

camitk::Component::setPointSet

◆ setRenderingModes

camitk::Component::setRenderingModes

◆ setSlice

vtkSmartPointer<vtkImageData> vtkSmartPointer<vtkImageActor> vtkSmartPointer<vtkActor> updatePickPlane camitk::Component::setSlice

◆ setTransformRotation

resetTransform double double camitk::Component::setTransformRotation

◆ setTransformTranslation

resetTransform double camitk::Component::setTransformTranslation

◆ size

const const const const double const RenderingModes double const double camitk::Component::size = 0.0) override

Referenced by deleteChildren().

◆ vtkSmartPointer< vtkActor >

vtkSmartPointer<vtkPointSet> vtkSmartPointer<vtkAlgorithmOutput> camitk::Component::vtkSmartPointer< vtkActor >

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