A 3D representation of a vtkPointSet to be displayed in a InteractiveViewer, this class implements the InterfaceGeometry. More...
#include <Geometry.h>
Public Member Functions | |
Geometry (QString label, vtkSmartPointer< vtkPointSet > pointSet, const InterfaceGeometry::RenderingModes mode=InterfaceGeometry::Surface) | |
instantiate a Geometry using existing stuff. More... | |
const QString | getLabel () const override |
get the label of this Geometry instance More... | |
void | setLabel (QString newName) override |
set the label of this Geometry instance More... | |
~Geometry () override | |
destructor More... | |
InterfaceGeometry Vtk related inherited methods | |
All the implemented InterfaceGeometry methods (Geometry is the adaptee of Component) | |
vtkSmartPointer< vtkPointSet > | getPointSet () override |
void | setPointSet (vtkSmartPointer< vtkPointSet > ds) override |
set the input data of the Geometry, More... | |
void | setMeshWorldTransform (vtkSmartPointer< vtkTransform >) override |
Set the world transform (if the Geometry depends on another Frame) More... | |
vtkSmartPointer< vtkAlgorithmOutput > | getDataPort () const override |
get the custom algorithm pipeline input. More... | |
void | setDataConnection (vtkSmartPointer< vtkAlgorithmOutput >) override |
call this method with the custom algorithm pipeline output More... | |
void | setPointData (vtkSmartPointer< vtkDataArray >) override |
set the point data (may contains a lookup table) More... | |
vtkSmartPointer< vtkActor > | getActor (const RenderingModes) override |
Return the actor representing this representation mode (returns nullptr if hightlight mode is Hidden). More... | |
void | setTexture (vtkSmartPointer< vtkTexture > texture) override |
Set a texture to this object. More... | |
void | pointPicked (vtkIdType, bool) override |
a vtkPoint of the structured was picked (to be reimplemented in a Component inherited class if needed) More... | |
void | cellPicked (vtkIdType, bool) override |
a vtkCell of the structured was picked (to be reimplemented in a Component inherited class if needed) More... | |
InterfaceGeometry Helpers inherited methods | |
void | getBounds (double *bounds) override final |
compute the object's bounding box [xmin,xmax, ymin,ymax, zmin,zmax] More... | |
double | getBoundingRadius () override final |
compute the object's bounding sphere radius More... | |
void | setPointPosition (const unsigned int orderNumber, const double x, const double y, const double z) override |
set a given point position More... | |
InterfaceGeometry rendering mode settings inherited methods | |
void | setRenderingModes (const RenderingModes rMode) override |
Set the actor associated to a rendering mode visible or not. More... | |
const RenderingModes | getRenderingModes () const override |
Return if the actor associated to a rendering mode is currently visible or not. More... | |
void | setEnhancedModes (const EnhancedModes) override |
set the enhanced mode More... | |
const EnhancedModes | getEnhancedModes () const override |
get the current enhanced mode More... | |
void | setActorColor (const RenderingModes, double *) override |
Set the color of given representation modes. More... | |
void | setActorColor (const RenderingModes, const double, const double, const double) override |
Set the color of given representation modes. More... | |
void | getActorColor (const RenderingModes, double *) const override final |
Get the color of given representation modes in the second parameter, i.e. double[4] (r,g,b,a) More... | |
void | setColor (const double, const double, const double) override |
Set an (r,g,b) color to all representation modes, without changing the opacity. More... | |
void | setColor (const double, const double, const double, const double) override |
Set an (r,g,b,a) color to all representation modes. More... | |
void | setActorOpacity (const RenderingModes, const double) override final |
Set the opacity of this representation modes. WARNING color field (surfaceColor, ...) are not modified! More... | |
double | getActorOpacity (const RenderingModes) const override |
Return the opacity of a given renderng mode. More... | |
void | setOpacity (const double) override |
Set the opacity of this object. WARNING color field (surfaceColor, ...) are not modified! More... | |
void | setMapperScalarRange (double min, double max) override |
Set the mapper scalar range. More... | |
void | setGlyphType (const GlyphTypes type, const double size=0.0) override final |
set the glyph information More... | |
void | setLinesAsTubes (bool isTubes=true, bool radiusFromLength=true, double radiusFactor=1.0/40.0, int numberOfSides=5) override |
display lines as tubes (depeding of the boolean) (only work if the Geometry was defined using a vtkPolyData). More... | |
void | setColorMode (int vtkColorMode=VTK_COLOR_MODE_DEFAULT) override |
Public Member Functions inherited from camitk::InterfaceGeometry | |
virtual | ~InterfaceGeometry ()=default |
empty virtual destructor, to avoid memory leak More... | |
manage extra prop associated with a Geometry | |
vtkSmartPointer< vtkProp > | getProp (const QString &) 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) override |
return an additional prop by its index More... | |
bool | addProp (const QString &, vtkSmartPointer< vtkProp >) override final |
insert an additional prop, defining it by its name (default visibility = false) More... | |
bool | removeProp (const QString &) override |
remove a given additional prop. More... | |
Additional Inherited Members | |
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... | |
A 3D representation of a vtkPointSet to be displayed in a InteractiveViewer, this class implements the InterfaceGeometry.
A Geometry is build out of a vtkPointSet. A single vtkDataSetMapper is created, with several associated vtkActors. Each actor has specific rendering properties: representation mode, color, ...
Available actors are: surface, wireframe and points.
An actor is visible or not according to the options of the RenderingModes associated to the Geometry as well as the highlight mode (from hidden to highlighted).
This class is used as a delegate by Component (who delegates all the InterfaceGeometry service implementation to Geometry), according to the Object Adapter Design Pattern (Component is the adaptor, Geometry is the adaptee concerning the InterfaceGeometry service).
If you need to add your own vtk filter/algorithm pipeline to pre-process the data, you need to write something like this:
The complete Vtk Pipeline looks like this:
* +-----> getDataPort() * +----------------+ +------------------+ +---------------------------+ / * | vtkPointSet | |vtkCastToConcrete | |vtkTransformPolyDataFilter |/ * | |----\| |----\ | |----\ your custom ----\ ... * | pointSet |----/| concreteData |----/ | data in world frame |----/ pipeline ----/ * +----------------+ +------------------+ +--------------------------+| * ^ | | * | | | * setPointSet() | | * | | * v v * getPointSet() getPointSetWorldCoords() * * * setDataConnection(..) * | * | +---OPTIONAL---+ +------------------+ * +->| vtkTubeFilter| | vtkDataSetMapper | *... ----\| |-----\ | | * ----/| tube |-----/ | mapper | * +--------------+ +------------------+ * ^ | * | V * setLinesAsTube() +------------------+ * | 3 actors: | * | surfaceActor | * | wireframeActor | * | pointsActor | * | | * +------------------+ * *
The other vtk (minor) ingredients not mentionned are specific vtkProp (actors, volumes and annotations) By default two props are defined: label and glyph. They can be accessed by getProp("label") and getProp("glyph"). You can also add your own additional custom props by using addProp(QString, vtkProp) and setPropVisible(QString, bool).
camitk::Geometry::Geometry | ( | QString | label, |
vtkSmartPointer< vtkPointSet > | pointSet, | ||
const InterfaceGeometry::RenderingModes | mode = InterfaceGeometry::Surface |
||
) |
instantiate a Geometry using existing stuff.
label | name to display on the label |
pointSet | the vtkDataSet to take as the vtk object to display |
mode | the default rendering mode |
References camitk::InterfaceGeometry::Normal, setGlyphType(), camitk::InterfaceGeometry::Sphere, and camitk::transform.
|
override |
destructor
|
finaloverridevirtual |
insert an additional prop, defining it by its name (default visibility = false)
Implements camitk::InterfaceGeometry.
|
inlineoverridevirtual |
a vtkCell of the structured was picked (to be reimplemented in a Component inherited class if needed)
Implements camitk::InterfaceGeometry.
|
overridevirtual |
Return the actor representing this representation mode (returns nullptr if hightlight mode is Hidden).
If RenderingModes have a more than one possible representation, it returns in priority order: the surface, wireframe or points representation.
Implements camitk::InterfaceGeometry.
References camitk::InterfaceGeometry::Hidden, camitk::InterfaceGeometry::Points, setActorColor(), camitk::InterfaceGeometry::Surface, and camitk::InterfaceGeometry::Wireframe.
Referenced by ReorientImage::modelChanged().
|
finaloverridevirtual |
Get the color of given representation modes in the second parameter, i.e. double[4] (r,g,b,a)
Implements camitk::InterfaceGeometry.
References camitk::InterfaceGeometry::Points, camitk::InterfaceGeometry::Surface, and camitk::InterfaceGeometry::Wireframe.
|
overridevirtual |
Return the opacity of a given renderng mode.
Implements camitk::InterfaceGeometry.
References camitk::InterfaceGeometry::Points, camitk::InterfaceGeometry::Surface, and camitk::InterfaceGeometry::Wireframe.
Referenced by setActorColor().
|
finaloverridevirtual |
compute the object's bounding sphere radius
Implements camitk::InterfaceGeometry.
References getBounds().
Referenced by setGlyphType().
|
finaloverridevirtual |
compute the object's bounding box [xmin,xmax, ymin,ymax, zmin,zmax]
Implements camitk::InterfaceGeometry.
Referenced by getBoundingRadius().
|
inlineoverridevirtual |
get the custom algorithm pipeline input.
Implements camitk::InterfaceGeometry.
|
inlineoverridevirtual |
get the current enhanced mode
Implements camitk::InterfaceGeometry.
|
inlineoverridevirtual |
get the label of this Geometry instance
Implements camitk::InterfaceGeometry.
Referenced by VtkMeshUtil::saveGeometryToFile().
|
overridevirtual |
return the number of additional prop
Implements camitk::InterfaceGeometry.
|
inlineoverridevirtual |
Return the dataset associated to this object.
Implements camitk::InterfaceGeometry.
Referenced by VtkMeshUtil::saveGeometryToFile().
|
overridevirtual |
Return the vtkProp (actors, volumes and annotations) corresponding to the given name.
Implements camitk::InterfaceGeometry.
References camitk::InterfaceGeometry::Sphere.
Referenced by setGlyphType().
|
overridevirtual |
return an additional prop by its index
Implements camitk::InterfaceGeometry.
|
inlineoverridevirtual |
Return if the actor associated to a rendering mode is currently visible or not.
Implements camitk::InterfaceGeometry.
|
inlineoverridevirtual |
a vtkPoint of the structured was picked (to be reimplemented in a Component inherited class if needed)
Implements camitk::InterfaceGeometry.
|
overridevirtual |
remove a given additional prop.
Implements camitk::InterfaceGeometry.
|
overridevirtual |
Set the color of given representation modes.
Implements camitk::InterfaceGeometry.
References getActorOpacity(), and setActorColor().
|
overridevirtual |
Set the color of given representation modes.
Implements camitk::InterfaceGeometry.
References camitk::InterfaceGeometry::Points, camitk::InterfaceGeometry::Surface, and camitk::InterfaceGeometry::Wireframe.
Referenced by getActor(), setActorColor(), and setColor().
|
finaloverridevirtual |
Set the opacity of this representation modes. WARNING color field (surfaceColor, ...) are not modified!
Implements camitk::InterfaceGeometry.
References camitk::InterfaceGeometry::Points, camitk::InterfaceGeometry::Surface, and camitk::InterfaceGeometry::Wireframe.
Referenced by setEnhancedModes(), and setOpacity().
|
overridevirtual |
Set an (r,g,b) color to all representation modes, without changing the opacity.
Implements camitk::InterfaceGeometry.
References camitk::InterfaceGeometry::Points, setActorColor(), camitk::InterfaceGeometry::Surface, and camitk::InterfaceGeometry::Wireframe.
|
overridevirtual |
Set an (r,g,b,a) color to all representation modes.
Implements camitk::InterfaceGeometry.
References a, camitk::InterfaceGeometry::Points, setActorColor(), camitk::InterfaceGeometry::Surface, and camitk::InterfaceGeometry::Wireframe.
|
overridevirtual |
Implements camitk::InterfaceGeometry.
|
overridevirtual |
call this method with the custom algorithm pipeline output
Implements camitk::InterfaceGeometry.
|
overridevirtual |
set the enhanced mode
Implements camitk::InterfaceGeometry.
References camitk::InterfaceGeometry::Highlighted, camitk::InterfaceGeometry::Points, setActorOpacity(), setOpacity(), camitk::InterfaceGeometry::Shaded, camitk::InterfaceGeometry::Surface, and camitk::InterfaceGeometry::Wireframe.
|
finaloverridevirtual |
set the glyph information
Implements camitk::InterfaceGeometry.
References getBoundingRadius(), getProp(), and camitk::InterfaceGeometry::NoGlyph.
Referenced by Geometry(), and setPointSet().
|
inlineoverridevirtual |
set the label of this Geometry instance
Implements camitk::InterfaceGeometry.
|
overridevirtual |
display lines as tubes (depeding of the boolean) (only work if the Geometry was defined using a vtkPolyData).
Implements camitk::InterfaceGeometry.
|
overridevirtual |
Set the mapper scalar range.
Implements camitk::InterfaceGeometry.
|
overridevirtual |
Set the world transform (if the Geometry depends on another Frame)
Implements camitk::InterfaceGeometry.
References camitk::transform.
|
overridevirtual |
Set the opacity of this object. WARNING color field (surfaceColor, ...) are not modified!
Implements camitk::InterfaceGeometry.
References camitk::InterfaceGeometry::Points, setActorOpacity(), camitk::InterfaceGeometry::Surface, and camitk::InterfaceGeometry::Wireframe.
Referenced by setEnhancedModes().
|
overridevirtual |
set the point data (may contains a lookup table)
Implements camitk::InterfaceGeometry.
|
overridevirtual |
set a given point position
Implements camitk::InterfaceGeometry.
|
overridevirtual |
set the input data of the Geometry,
Implements camitk::InterfaceGeometry.
References setGlyphType(), and camitk::InterfaceGeometry::Sphere.
|
inlineoverridevirtual |
Set the actor associated to a rendering mode visible or not.
Implements camitk::InterfaceGeometry.
|
overridevirtual |
Set a texture to this object.
Implements camitk::InterfaceGeometry.