This Component manages the specific case of arbitrary orientation of a sub-component of the image component. More...
#include <ArbitrarySingleImageComponent.h>
Inheritance diagram for camitk::ArbitrarySingleImageComponent:
Collaboration diagram for camitk::ArbitrarySingleImageComponent:Public Member Functions | |
| ArbitrarySingleImageComponent (Component *parentComponent, const QString &name, vtkSmartPointer< vtkWindowLevelLookupTable > lut) | |
| Constructor. | |
| vtkSmartPointer< vtkActor > | get3DCursor () override |
| Returns a 3D cross cursor vtkActor to show the picked voxel (override to give it in the right frame) | |
| virtual QMultiMap< const FrameOfReference *, Component * > | getAllFrames (bool includeChildrenFrames) override |
| Get all FrameOfReference owned by this image. | |
| virtual QMultiMap< const Transformation *, Component * > | getAllTransformations (bool includeChildrenTransformations) override |
| Get all Transformation owned by this image. | |
| const FrameOfReference * | getArbitraryFrame () const |
| Get the arbitrary frame that is located in the chosen arbitrary position. | |
| const Transformation * | getArbitraryTransformation () const |
| Returns the arbitrary transformation (from arbitraryFrame to main frame of this component, i.e.n the image data Frame) | |
| void | setArbitraryFrame (const std::shared_ptr< FrameOfReference > &fr) |
| Set the ArbitraryFrame. | |
| void | setFrame (const std::shared_ptr< FrameOfReference > &fr) override |
| Set the Frame. | |
| virtual | ~ArbitrarySingleImageComponent () override |
| Destructor. | |
overriden from Component to manage arbitrary orientation | |
| virtual void | propertyValueChanged (QString name) override |
| propertyValueChanged: when "Translation" and "Rotation" properties are modify, this will update the slice orientation and position | |
| virtual void | updatePropertyFromTransformation () |
| update the property values from the current arbitrary transformation (this can be called for instance when when a workspace is loaded) Note: the signals are blocked during this update | |
| virtual void | resetTransform () |
| reset the transformation to the image component parent so that the frame of the arbitrary slice is in the center of the volume along the z axis by default | |
| virtual void | setSlice (int) override |
| set slice as a percentage on the z axis translation | |
| virtual void | setSlice (double, double, double) override |
| rewritten because the setSlice(int) method is overriden (compiler needs this) | |
| virtual int | getSlice () const override |
| return the slice as the percentage of translation (between 0 and 100) | |
| virtual int | getNumberOfSlices () const override |
| always return 100 (as getSlice() gives a percentage value, the max number of slices is 100. | |
Specific helper methods to manage arbitrary orientation and its representation | |
| void | getArbitraryCenter (double center[4]) const |
| Compute the current position of the cutting plane center in the image coordinate system (i.e., the data frame of the image component) | |
| void | getArbitraryPlaneNormal (double normalVector[4]) const |
| Compute the current z-direction (normal vector) in the image coordinate system (i.e., the data frame of the image component) | |
Public Member Functions inherited from camitk::SingleImageComponent | |
| vtkSmartPointer< vtkActor > | get3DCursor () override |
| Returns a 3D cross cursor vtkActor to show the picked voxel. | |
| Slice::SliceOrientation | getSliceOrientation () |
| get the slice orientation | |
| virtual void | pixelPicked (double, double, double) override |
| rewritten from Component so that the Component can call the ManagerComponent | |
| virtual void | setSelected (const bool, const bool) override |
| rewritten to synchronize everyone | |
| SingleImageComponent (Component *parentComponent, Slice::SliceOrientation, const QString &name, vtkSmartPointer< vtkWindowLevelLookupTable > lut) | |
| Constructor. | |
| virtual void | singleImageSelected (const bool) |
| new method used to call the Component set selected | |
| ~SingleImageComponent () override=default | |
| Destructor. | |
Public Member Functions inherited from camitk::Component | |
| Component (QString file, QString name, Representation rep=NO_REPRESENTATION, bool createDefaultFrame=true) | |
| Component constructor for top-level component (please use the other constructor for sub-level components). | |
| Component (Component *parentComponent, const QString &name, Representation rep=NO_REPRESENTATION, bool createDefaultFrame=true) | |
| Component constructor for a Component that is a child of another Component You should not use this constructor for a top-level component. | |
| virtual | ~Component () override |
| default destructor. | |
| Representation | getRepresentation () const |
| return the type of representation concretely implemented by this Component in the InteractiveViewer. | |
| bool | isTopLevel () const |
| return true if this component is a top-level component | |
| Component * | getParentComponent () |
| get the parent component | |
| Component * | getTopLevelComponent () |
| get the top-level component | |
| virtual void | setModified (bool modified=true) |
| set the modified flag | |
| virtual bool | getModified () const |
| set the modified flag | |
| virtual void | setVisibility (QString, bool) |
| set the visibility inside the viewer of the given name (the viewer needs to be a registered viewer) | |
| virtual bool | getVisibility (QString) const |
| get the visibility inside the viewer of the given name | |
| virtual void | refresh () |
| refresh all the viewer that are currently displaying this Component At the end the InterfaceNode modification flag is reset. | |
| virtual bool | isSelected () const |
| Check if this data component is selected. | |
| const QString | getFileName () const |
| get the file name where the data have to be stored/were stored | |
| void | setFileName (const QString &) |
| set the file name where the data have to be stored | |
| bool | event (QEvent *e) override |
| Overriden from QObject, this one is only intercepting signal for dynamic property changed (see constructor). | |
| QMenu * | getActionMenu () |
| Get a QMenu that contains all the action that can be applied to this component. | |
| virtual QVariant | toVariant () const override |
| virtual void | fromVariant (const QVariant &) override |
| Load data from a QVariant to initialize the current object. | |
| virtual QUuid | getUuid () const override |
| Get the unique ID of the component. | |
| virtual bool | setUuid (QUuid) override |
| Set the unique ID of the component. | |
| QStringList | getHierarchy () const override |
| bool | isInstanceOf (QString className) const override |
| Assert that a Component instance really inherits from a given className. | |
| unsigned int | getNumberOfPropertyWidget () override |
| get the number of alternative property widgets | |
| QWidget * | getPropertyWidgetAt (unsigned int) override |
| Get the ith alternative property widget. | |
| QObject * | getPropertyObject () override |
| Get the property object that could be understood by PropertyEditor. | |
| const QObject * | getPropertyObject () const override |
| void | propertyValueChanged (QString name) override |
| This method is called when a dynamic property value has been modified. | |
| void | setIndexOfPropertyExplorerTab (unsigned int index) override final |
| Set the index of the tab in the ProperlyExplorer to select for display. | |
| unsigned int | getIndexOfPropertyExplorerTab () override |
| Get the index of the tab in the ProperlyExplorer to select for display. | |
| Q_INVOKABLE camitk::Property * | getProperty (QString name) override |
| Get a Property given its name. | |
| bool | addProperty (Property *) override |
| Add a new CamiTK property to the component. | |
| virtual QVariant | getPropertyValue (const QString &name) const override |
| get the property QVariant (same as property(const char*)) but check if it exists first. | |
| virtual bool | setPropertyValue (const QString &name, QVariant newValue) override |
| set the property QVariant value (same as setProperty(const char*, newValue)) but check if it exists first. | |
| void | removeChild (InterfaceNode *) override |
| remove a child node. | |
| void | setParent (InterfaceNode *) override |
| set the parent Component. | |
| bool | doubleClicked () override |
| This method is called each time the InterfaceNode is double clicked by the user. | |
| 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 | |
| void | attachChild (InterfaceNode *) override |
| add a child Component (but leave its parent unchanged) | |
| 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) | |
| QString | getName () const override |
| get the name to be displayed | |
| void | setName (const QString &) override |
| set the name to be displayed | |
| const ComponentList & | getChildren () const override |
| get the list of the InterfaceNode children (sub items in the hierarchy) | |
| InterfaceNode * | getParent () override |
| get the parent Component | |
| QPixmap | getIcon () override |
| Get the pixmap that will be displayed for this node. | |
| void | setNodeModified (bool) override final |
| Set up the node modification flag. | |
| bool | getNodeModified () const override |
| Get the current modification flag. | |
| bool | inItalic () const override |
| A component name is not displayed in italic by default. | |
| 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) | |
| virtual const FrameOfReference * | getFrame () const override |
| Get the pointer to this object's FrameOfReference. | |
| virtual void | setFrameFrom (const InterfaceFrame *) override |
| Modify this object's frame using the given object's frame. | |
| virtual void | resetFrame () override |
| Reset this object's FrameOfReference, that is call setFrame with a newly created frame of reference. | |
| vtkSmartPointer< vtkAxesActor > | getFrameAxisActor (QString viewerName) override |
| get the Frame Actor for a viewer | |
| virtual bool | getFrameVisibility (QString viewerName) const override |
| get the visibility of the Frame axis actor in the named viewer | |
| virtual void | setFrameVisibility (QString viewerName, bool visibility) override |
| set the visibility of the Frame axis actor | |
| 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 | delegate1 (myGeometry, setColorMode, int) delegate1(myGeometry |
| vtkSmartPointer< vtkPointSet > vtkSmartPointer< vtkAlgorithmOutput > const RenderingModes const QString &vtkSmartPointer< vtkProp > | getProp (const QString ¶m) override |
| Return the vtkProp (actors, volumes and annotations) corresponding to the given name. | |
| unsigned int | getNumberOfProp () const override |
| return the number of additional prop | |
| vtkSmartPointer< vtkProp > | getProp (unsigned int index) override |
| return an additional prop by its index | |
| bool | addProp (const QString &name, vtkSmartPointer< vtkProp > prop) override |
| insert an additional prop, defining it by its name (default visibility = false). | |
| bool | removeProp (const QString &name) override |
| remove a given additional prop. | |
| void | pointPicked (vtkIdType, bool) override |
| an inherited class can redefine this method something specific. | |
| void | cellPicked (vtkIdType, bool) override |
| an inherited class can redefine this method something specific. | |
| void | getBounds (double *bounds) override |
| compute the object's bounding box [xmin,xmax, ymin,ymax, zmin,zmax], see Component.cpp | |
| double | getBoundingRadius () override |
| compute the object's bounding sphere radius, | |
| 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 | |
| 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], bool ignoreEnhancedModes=false) const override |
| see Component.cpp | |
| 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 |
| virtual void | setLinesAsTubes (bool isTubes=true, bool radiusFromLength=true, double radiusFactor=1.0/40.0, int numberOfSides=5) override |
| Set the lines as tubes (works only for vtkDataSet representation that contains lines) | |
| vtkSmartPointer< vtkImageData > | delegate1 (mySlice, setOriginalVolume, vtkSmartPointer< vtkImageData >) delegateConstGet0(mySlice |
| vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > | delegateConstGet0 (mySlice, get3DImageActor, vtkSmartPointer< vtkImageActor >) delegateConstGet0(mySlice |
| vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > | delegateGet0 (mySlice, getPixelActor, vtkSmartPointer< vtkActor >) delegate3(mySlice |
| vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > double | delegate0 (mySlice, updatePickPlane) delegate1(mySlice |
| vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > double int | delegate3 (mySlice, setSlice, double, double, double) delegateConstGet0(mySlice |
| vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > double int int | delegate3 (mySlice, setPixelRealPosition, double, double, double) delegate1(mySlice |
| vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > double int int vtkSmartPointer< vtkTransform > int | getNumberOfSlices () const override |
| see Component.cpp | |
| int | getSlice () const override |
| see Component.cpp | |
Public Member Functions inherited from camitk::InterfaceProperty | |
| ~InterfaceProperty ()=default | |
| empty virtual destructor, to avoid memory leak | |
Public Member Functions inherited from camitk::InterfaceNode | |
| virtual | ~InterfaceNode ()=default |
| empty virtual destructor, to avoid memory leak | |
Public Member Functions inherited from camitk::InterfaceGeometry | |
| virtual | ~InterfaceGeometry ()=default |
| empty virtual destructor, to avoid memory leak | |
| virtual vtkSmartPointer< vtkPointSet > | getPointSet ()=0 |
| virtual void | setPointSet (vtkSmartPointer< vtkPointSet >)=0 |
| set the low-level data set. | |
| virtual void | setPointData (vtkSmartPointer< vtkDataArray >)=0 |
| set the point data (may contains a lookup table). | |
| virtual void | setMeshWorldTransform (vtkSmartPointer< vtkTransform >)=0 |
| set the transformation for 3D representation | |
| virtual vtkSmartPointer< vtkAlgorithmOutput > | getDataPort () const =0 |
| get the custom algorithm pipeline input. | |
| virtual void | setDataConnection (vtkSmartPointer< vtkAlgorithmOutput >)=0 |
| Set/reset the connection for the InterfaceGeometry internal algorithm. | |
| virtual void | setTexture (vtkSmartPointer< vtkTexture >)=0 |
| Set a texture to this object. | |
| virtual vtkSmartPointer< vtkActor > | getActor (const RenderingModes)=0 |
| Return the actor for the representation mode, nullptr if the actor doesn't exist. | |
| virtual void | updateLabel (const QString &label)=0 |
| update position and text of the label prop | |
| virtual void | setPointPosition (const unsigned int orderNumber, const double x, const double y, const double z)=0 |
| set a given point position | |
| virtual void | setRenderingModes (const RenderingModes)=0 |
| virtual void | setEnhancedModes (const EnhancedModes)=0 |
| set the enhanced mode | |
| virtual const EnhancedModes | getEnhancedModes () const =0 |
| get the current enhanced mode | |
| virtual void | setActorColor (const RenderingModes, double *color)=0 |
| Set the color of given representation modes. | |
| virtual void | setActorColor (const RenderingModes, const double, const double, const double)=0 |
| Set the color of given representation modes. | |
| virtual void | getActorColor (const RenderingModes mode, double *color, bool ignoreEnhancedModes=false) const =0 |
| Get the color of given representation modes in the second parameter. | |
| virtual void | setColor (const double, const double, const double)=0 |
| Set an (r,g,b) color to all representation modes, without changing the opacity. | |
| virtual void | setColor (const double, const double, const double, const double)=0 |
| Set an (r,g,b,a) color to all representation modes. | |
| virtual void | setActorOpacity (const RenderingModes, const double)=0 |
| Set the opacity of this representation modes. WARNING color field (surfaceColor, ...) are not modified! | |
| virtual double | getActorOpacity (const RenderingModes) const =0 |
| Return the opacity of a given renderng mode. | |
| virtual void | setOpacity (const double)=0 |
| Set the opacity of this object. WARNING color field (surfaceColor, ...) are not modified! | |
| virtual void | setMapperScalarRange (double min, double max)=0 |
| Set the mapper scalar range. | |
| 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). | |
| virtual void | setColorMode (int vtkColorMode=VTK_COLOR_MODE_DEFAULT)=0 |
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. | |
| virtual vtkSmartPointer< vtkImageActor > | get3DImageActor () const =0 |
| Return the vtkImageActor (vtkProp) representing a slice to be displayed in 3D viewers. | |
| virtual vtkSmartPointer< vtkImageData > | getImageData () const =0 |
| Returns the encapsultaed data structure: the image as a vtkImageData. | |
| virtual int | getNumberOfColors () const =0 |
| Return the number of colors in the images. | |
| virtual vtkSmartPointer< vtkActor > | getPickPlaneActor () const =0 |
| Return the vtkActor used to pick pixels in the slices. | |
| virtual vtkSmartPointer< vtkActor > | getPixelActor ()=0 |
| Return the vtkActor used to pick pixels in the slices. | |
| virtual void | setArbitraryTransform (vtkSmartPointer< vtkTransform >)=0 |
| Set the pointer to the image transformation. | |
| virtual void | setOriginalVolume (vtkSmartPointer< vtkImageData >)=0 |
| set the original volume image data (the source vtkImageData before any reslice) and refresh the vtk pipeline | |
| virtual void | setPixelRealPosition (double, double, double)=0 |
| move the pixel selection green indicator (pixelActor) to the given real position | |
| virtual void | updatePickPlane ()=0 |
| update the position of the plane surrounding the currently selected slice | |
| virtual | ~InterfaceBitMap ()=default |
| virtual destructor | |
Public Member Functions inherited from camitk::InterfaceFrame | |
| virtual | ~InterfaceFrame ()=default |
| empty virtual destructor, to avoid memory leak | |
Public Member Functions inherited from camitk::InterfacePersistence | |
| virtual | ~InterfacePersistence ()=default |
Friends | |
| void | ImageComponent::fromVariant (const QVariant &) |
| the fromVariant method need to access initArbitraryTransformation(Transformation*) in order to load the exact same transformation from .camitk file | |
Additional Inherited Members | |
Public Types inherited from camitk::Component | |
| 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 Attributes inherited from camitk::Component | |
| setPointSet | |
| vtkSmartPointer< vtkPointSet > | getDataPort |
| vtkSmartPointer< vtkPointSet > vtkSmartPointer< vtkAlgorithmOutput > | getActor |
| vtkSmartPointer< vtkPointSet > vtkSmartPointer< vtkAlgorithmOutput > | vtkSmartPointer< vtkActor > |
| vtkSmartPointer< vtkPointSet > vtkSmartPointer< vtkAlgorithmOutput > const RenderingModes | updateLabel |
| 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 |
| getImageData | |
| vtkSmartPointer< vtkImageData > | get2DImageActor |
| vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > | getPickPlaneActor |
| vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > | pixelPicked |
| vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > | double |
| vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > double | setSlice |
| vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > double int | getNumberOfColors |
| vtkSmartPointer< vtkImageData > vtkSmartPointer< vtkImageActor > vtkSmartPointer< vtkActor > double int int | setArbitraryTransform |
Protected Member Functions inherited from camitk::SingleImageComponent | |
| virtual void | initRepresentation () override final |
| The concrete building of the Service (Slice in this case, for a 2D representation). | |
Protected Attributes inherited from camitk::SingleImageComponent | |
| vtkSmartPointer< vtkActor > | cursorActor |
| cursor (3D cross) actor of this slice to show the picked voxel location should be used by one viewer only, the one with the same orientation as this SingleImageComponent | |
| vtkSmartPointer< vtkWindowLevelLookupTable > | lut |
| Look up table used for this image. | |
| Slice::SliceOrientation | sliceOrientation |
| orientation of the single image component | |
Protected Attributes inherited from camitk::Component | |
| ComponentList | childrenComponent |
| The explorer sub items. | |
| std::shared_ptr< FrameOfReference > | frameOfReference = nullptr |
| The FrameOfReference in which this component's data is represented. | |
| unsigned int | indexOfPropertyExplorerTab |
| The PropertyExplorer tab index to select once refreshed. | |
| bool | isSelectedFlag |
| tells if this particular Component is selected or not | |
| bool | modifiedFlag |
| the modification flag (could be extended to manage a undo/redo list) | |
| QString | myFileName |
| the file name from which the Component is loaded | |
| InterfaceGeometry * | myGeometry |
| myGeometry is the 3d representation of this Component, the Component delegates all InterfaceGeometry activity to myGeometry (delegation pattern) | |
| InterfaceNode * | myParentNode |
| who is the boss? The Component! | |
| InterfaceBitMap * | mySlice |
| mySlice is the slice representation of this data component, the Component delegates all InterfaceBitMap activity to mySlice (delegation pattern) | |
This Component manages the specific case of arbitrary orientation of a sub-component of the image component.
Arbitrary slice frame is used to position and orientate the slice inside the parent image volume.
It does have a Slice representation (InterfaceBitMap), not a Geometry.
To change the orientation and translation of the arbitrary slice, modify the corresponding properties:
These properties allow the displacement and change of orientation but constrained it so that the center of the arbitrary slice is always inside the parent ImageComponent volume.
For arbitrary slice, the default transform is set to be on the z plane but in the middle of the volume.
The main frame of this component is set to the image component (parent component) data frame. The arbitrary frame manages the transformation from the current arbitrary orientation cutting plane to the main frame (i.e., the image data frame).
Note that when a rotation is applied, the translation property might be updated with respect to the new orientation (sometimes the translation value will flicker between two position when the Z axis of the plane intersect two different external "face" of the image volume cube).
In the source code, the following naming convention is used for the maths:
| camitk::ArbitrarySingleImageComponent::ArbitrarySingleImageComponent | ( | Component * | parentComponent, |
| const QString & | name, | ||
| vtkSmartPointer< vtkWindowLevelLookupTable > | lut | ||
| ) |
Constructor.
References camitk::TransformationManager::addFrameOfReference(), camitk::Component::addProperty(), camitk::ImageComponent::getDataFrame(), camitk::TransformationManager::getFrameOfReferenceOwnership(), camitk::ImageComponent::getImageData(), and camitk::Component::getName().
Here is the call graph for this function:
|
overridevirtual |
Destructor.
|
overridevirtual |
Returns a 3D cross cursor vtkActor to show the picked voxel (override to give it in the right frame)
Reimplemented from camitk::Component.
References camitk::SingleImageComponent::cursorActor, camitk::Component::frameOfReference, camitk::Component::get3DCursor(), camitk::Component::getParentComponent(), camitk::Transformation::getTransform(), camitk::TransformationManager::getTransformation(), and camitk::Component::vtkSmartPointer< vtkActor >.
Here is the call graph for this function:
|
overridevirtual |
Get all FrameOfReference owned by this image.
Reimplemented from camitk::Component.
References camitk::Component::getAllFrames(), and getArbitraryFrame().
Here is the call graph for this function:
|
overridevirtual |
Get all Transformation owned by this image.
Reimplemented from camitk::Component.
References camitk::Component::getAllTransformations(), and getArbitraryTransformation().
Here is the call graph for this function:| void camitk::ArbitrarySingleImageComponent::getArbitraryCenter | ( | double | center[4] | ) | const |
Compute the current position of the cutting plane center in the image coordinate system (i.e., the data frame of the image component)
References getArbitraryTransformation(), and camitk::Transformation::getMatrix().
Here is the call graph for this function:
|
inline |
Get the arbitrary frame that is located in the chosen arbitrary position.
Referenced by getAllFrames(), camitk::InteractiveViewer::picked(), and camitk::ImageComponent::toVariant().
Here is the caller graph for this function:| void camitk::ArbitrarySingleImageComponent::getArbitraryPlaneNormal | ( | double | normalVector[4] | ) | const |
Compute the current z-direction (normal vector) in the image coordinate system (i.e., the data frame of the image component)
References getArbitraryTransformation(), and camitk::Transformation::getMatrix().
Here is the call graph for this function:
|
inline |
Returns the arbitrary transformation (from arbitraryFrame to main frame of this component, i.e.n the image data Frame)
Referenced by getAllTransformations(), getArbitraryCenter(), getArbitraryPlaneNormal(), setSlice(), and updatePropertyFromTransformation().
Here is the caller graph for this function:
|
overridevirtual |
always return 100 (as getSlice() gives a percentage value, the max number of slices is 100.
Implements camitk::InterfaceBitMap.
|
overridevirtual |
return the slice as the percentage of translation (between 0 and 100)
Implements camitk::InterfaceBitMap.
Referenced by AnglesAndTranslationAction::event(), and setSlice().
Here is the caller graph for this function:
|
overridevirtual |
propertyValueChanged: when "Translation" and "Rotation" properties are modify, this will update the slice orientation and position
Implements camitk::InterfaceProperty.
References camitk::Component::propertyValueChanged().
Here is the call graph for this function:
|
virtual |
reset the transformation to the image component parent so that the frame of the arbitrary slice is in the center of the volume along the z axis by default
References camitk::Component::setPropertyValue().
Referenced by AnglesAndTranslationAction::resetTransform().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Set the ArbitraryFrame.
|
overridevirtual |
Set the Frame.
Reimplemented from camitk::Component.
References camitk::TransformationManager::addFrameOfReference(), and camitk::TransformationManager::updateTransformation().
Here is the call graph for this function:
|
overridevirtual |
rewritten because the setSlice(int) method is overriden (compiler needs this)
x,y,z are expressed in the main frame (parent ImageComponent's data frame) → this is the new absolute translation modify the translation part of the current transformation from arbitrary to main x and y are not managed by set slice. Do not modify these values
Implements camitk::InterfaceBitMap.
References getArbitraryTransformation(), camitk::InterfaceBitMap::getPixelActor(), camitk::InterfaceBitMap::setPixelRealPosition(), camitk::Component::setPropertyValue(), camitk::InterfaceBitMap::updatePickPlane(), and camitk::TransformationManager::updateTransformation().
Here is the call graph for this function:
|
overridevirtual |
set slice as a percentage on the z axis translation
Implements camitk::InterfaceBitMap.
References getSlice(), and camitk::Component::setPropertyValue().
Here is the call graph for this function:
|
virtual |
update the property values from the current arbitrary transformation (this can be called for instance when when a workspace is loaded) Note: the signals are blocked during this update
References getArbitraryTransformation(), camitk::Transformation::getTransform(), and camitk::Component::setPropertyValue().
Referenced by camitk::ImageComponent::fromVariant().
Here is the call graph for this function:
Here is the caller graph for this function:
|
friend |
the fromVariant method need to access initArbitraryTransformation(Transformation*) in order to load the exact same transformation from .camitk file