27 #ifndef INTERACTIVE_VIEWER_H 28 #define INTERACTIVE_VIEWER_H 32 #include "Component.h" 38 #include <QPushButton> 39 #include <QWidgetAction> 45 #include <vtkSmartPointer.h> 53 class vtkEventQtSlotConnect;
57 class SliderSpinBoxWidget;
58 class GeometricObject;
59 class InterfaceGeometry;
60 class InterfaceBitMap;
61 class InteractiveViewer;
62 class MeshDataFilterModel;
205 QString getName()
const;
210 unsigned int numberOfViewedComponent()
override;
215 void refresh(
Viewer* whoIsAsking =
nullptr)
override;
218 QWidget* getWidget(QWidget* parent)
override;
221 QObject* getPropertyObject()
override;
224 QMenu* getMenu()
override;
227 QToolBar* getToolBar()
override;
235 void refreshRenderer();
241 void setActiveCamera(QString cameraName);
246 vtkSmartPointer<vtkCamera> getCamera(QString cameraName =
"default");
249 void screenshot(QString);
258 virtual void setGradientBackground(
bool);
261 virtual void setBackgroundColor(QColor);
268 void setBackfaceCulling(
bool);
271 void setScreenshotAction(
bool);
285 void setLinesAsTubes(
bool tubes);
296 return rendererWidget;
304 void setColorScale(
bool);
309 bool getColorScale()
const;
316 void setColorScaleMinMax(
double m,
double M);
321 void setColorScaleTitle(QString t);
327 void getBoundsOfSelected(
double* bound);
330 void getBounds(
double* bound);
333 void setSideFrameVisible(
bool);
340 void sliderChanged(
int);
343 void xAngleChanged(
double angle);
346 void yAngleChanged(
double angle);
349 void zAngleChanged(
double angle);
352 void toggleCopyright(
bool);
365 static QMap<QString, InteractiveViewer*>
viewers;
368 static QString defaultNames[5];
392 void toggleInterpolation();
398 QMultiMap<Component*, vtkSmartPointer<vtkProp> >
actorMap;
401 void addActor(
Component*, vtkSmartPointer<vtkProp>);
450 void updateActions();
548 void initWhatsThis();
551 void startWhatsThisSection(
const QString& title =
"");
554 void endWhatsThisSection();
557 void addWhatsThisItem(
const QString& key,
const QString&
description);
607 void createProperties();
615 bool eventFilter(QObject*
object, QEvent* event)
override;
623 void renderingActorsChanged();
626 void highlightModeChanged(QAction* selectedAction);
628 void cameraOrientationChanged(QAction* selectedAction);
630 void viewControlModeChanged(QAction*);
632 void backgroundColor();
634 void toggleAxes(
bool);
636 void toggleOrientationDecorations(
bool);
638 void pickingModeChanged(QAction*);
InteractiveViewer * myInteractiveViewer
Definition: InteractiveViewer.h:78
QMap< QString, vtkSmartPointerCamera > cameraMap
all the available camera
Definition: InteractiveViewer.h:410
Property * screenshotActionProperty
Property that tells whether the screenshot action is visible or not.
Definition: InteractiveViewer.h:597
InteractiveViewerFrame * frame
the InteractiveViewer frame
Definition: InteractiveViewer.h:424
QMenu * viewerMenu
the QMenu for the InteractiveViewer
Definition: InteractiveViewer.h:436
QFrame * sideFrame
the right side frame (this is where the slider and screenshot buttons are shown)
Definition: InteractiveViewer.h:427
SliderSpinBoxWidget * sliceSlider
Slider used to control the slice index in a InteractiveViewer.
Definition: InteractiveViewer.h:421
CamiTK intern class to help automatically sort or show specific data.
Definition: MeshDataModel.h:108
PropertyObject * propertyObject
The property object that holds the properties of this viewer.
Definition: InteractiveViewer.h:567
QAction * cameraOrientationRightDownAction
to change the axes view mode
Definition: InteractiveViewer.h:474
const char * description
Definition: applications/cepgenerator/main.cpp:37
vtkSmartPointer< vtkEventQtSlotConnect > connector
Definition: InteractiveViewer.h:534
pick a pixel on a Slice
Definition: InteractiveViewer.h:154
QToolBar * viewerToolBar
the QToolBar for the InteractiveViewer
Definition: InteractiveViewer.h:439
InteractiveViewer is used to view 3D objects and slices (anything that provides either a InterfaceBit...
Definition: InteractiveViewer.h:140
QAction * toggleOrientationDecorationsAction
button allows one to display orientation decoration in SLICE_VIEWER mode
Definition: InteractiveViewer.h:485
QAction * controlModeTrackballAction
to change the camera control mode
Definition: InteractiveViewer.h:470
Viewer is an abstract viewer.
Definition: Viewer.h:55
RendererWidget * getRendererWidget()
return interactiveViewer RendererWidget
Definition: InteractiveViewer.h:295
PickingMode
Different kind of picking must be available: pixel in slice, a point, a cell, ... ...
Definition: InteractiveViewer.h:153
QAction * pickCellAction
Definition: InteractiveViewer.h:504
QAction * highlightOffAction
Definition: InteractiveViewer.h:467
QAction * toggleAxesAction
button allows one to display the Axes in the InteractiveViewer
Definition: InteractiveViewer.h:482
Definition: Action.cpp:36
bool pickingEffectUpdated
was the picking effect updated (it has to be updated with the first picking for a given button down s...
Definition: InteractiveViewer.h:532
QComboBox * scalarDataComboBox
the ComboBox for mesh scalar data
Definition: InteractiveViewer.h:442
bool oddWhatsThis
are we currently in a odd table line
Definition: InteractiveViewer.h:545
static QMap< QString, InteractiveViewer * > viewers
the map containing all the InteractiveViewer instances
Definition: InteractiveViewer.h:365
bool isPicking
Indicates that this viewer is picking.
Definition: InteractiveViewer.h:523
pick cells that are inside a rectangular area in the VTK representation of an Geometry ...
Definition: InteractiveViewer.h:157
QAction * screenshotAction
Screenshot.
Definition: InteractiveViewer.h:453
ViewerType myType
type of InteractiveViewer (display slice or geometry)
Definition: InteractiveViewer.h:389
QAction * cameraOrientationRightUpAction
Definition: InteractiveViewer.h:476
vtkSmartPointer< vtkCamera > vtkSmartPointerCamera
Definition: InteractiveViewer.h:66
QMenu * renderingMenu
Rendering.
Definition: InteractiveViewer.h:456
Property * backgroundGradientColorProperty
Property that tells whether the viewer use a gradient background color or not.
Definition: InteractiveViewer.h:582
QAction * controlModeJoystickAction
Definition: InteractiveViewer.h:471
bool isChangingSlice
Indicates that this viewer is changing the slice by the slice slider.
Definition: InteractiveViewer.h:526
A Component represents something that could be included in the explorer view, the interactive 3D view...
Definition: sdk/libraries/core/component/Component.h:298
pick a cell in the VTK representation of an Geometry
Definition: InteractiveViewer.h:156
#define CAMITK_API
Definition: CamiTKAPI.h:49
This class describes a property object.
Definition: PropertyObject.h:71
QAction * cameraOrientationLeftUpAction
Definition: InteractiveViewer.h:475
QAction * toggleBackfaceCullingAction
back face culling
Definition: InteractiveViewer.h:497
std::vector< Component * > pickedComponent
list of Component that are currently picked, correctly displayed in the InteractiveViewer, but for speed optimization that are not yet selected in the explorer.
Definition: InteractiveViewer.h:517
Property * backgroundColorProperty
The property that stands for the background color of the viewer.
Definition: InteractiveViewer.h:577
QAction * toggleCopyrightAction
button to remove the copyright
Definition: InteractiveViewer.h:488
pick a point in the VTK representation of an Geometry
Definition: InteractiveViewer.h:155
QAction * wireframeAction
Definition: InteractiveViewer.h:458
unsigned int displayedTopLevelComponents
number of top-level component that are currently displayed
Definition: InteractiveViewer.h:407
void keyPressEvent(QKeyEvent *) override
Handle keyboard events in the scene frame, just send everything to InteractiveViewer! ...
Definition: InteractiveViewer.cpp:2382
QMultiMap< Component *, vtkSmartPointer< vtkProp > > actorMap
the map containing all the actors in the InteractiveViewer
Definition: InteractiveViewer.h:398
QAction * highlightSelectionAction
display mode
Definition: InteractiveViewer.h:465
QAction * toggleLabelAction
button allows one to display the labels of the object3D
Definition: InteractiveViewer.h:491
QAction * surfaceAction
Definition: InteractiveViewer.h:457
Property * linesAsTubesProperty
Property that tells whether the viewer uses lines as tubes or not.
Definition: InteractiveViewer.h:587
QAction * highlightSelectionOnlyAction
Definition: InteractiveViewer.h:466
bool pickingEffectIsSelecting
picking effect while mouse button is kept pressed is selecting (depends on the selection state of the...
Definition: InteractiveViewer.h:529
Property * backfaceCullingProperty
Property that tells whether the viewer uses the backface culling option or not.
Definition: InteractiveViewer.h:592
QToolBar * screenshotActionMenu
the screenshot action is inside this menu (in the slice viewer side bar)
Definition: InteractiveViewer.h:430
QAction * pointsAction
Definition: InteractiveViewer.h:459
QAction * pickPointAction
action of the picking menu
Definition: InteractiveViewer.h:503
QAction * colorAction
Definition: InteractiveViewer.h:460
PickingMode pickingMode
Current picking mode, NO_PICKING be default.
Definition: InteractiveViewer.h:520
QAction * backgroundColorAction
background color
Definition: InteractiveViewer.h:479
QWidgetAction * scalarDataColorAction
Definition: InteractiveViewer.h:462
Property * pointSizeProperty
Property which defines the point size of each point in the 3D viewer.
Definition: InteractiveViewer.h:602
the selected Components are in default mode, the non-selected Components are shaded ...
Definition: InteractiveViewer.h:168
pick points that are inside a rectangular area in the VTK representation of an Geometry ...
Definition: InteractiveViewer.h:158
both selected and non-selected Components are in default mode
Definition: InteractiveViewer.h:167
QAction * toggleScreenshotAction
visibility of the screenshot action in the side toolbar of slice viewer
Definition: InteractiveViewer.h:500
HighlightMode
describes the current mode of display.
Definition: InteractiveViewer.h:166
QAction * pickPointRegionAction
Definition: InteractiveViewer.h:506
QAction * toggleLinesAsTubesAction
button allows one to display the lines as tubes (the lines are to be in vtkPolyData) ...
Definition: InteractiveViewer.h:494
QAction * glyphAction
Definition: InteractiveViewer.h:461
InteractiveViewerFrame(QWidget *parent, InteractiveViewer *s3D)
default constructor
Definition: InteractiveViewer.h:72
InteractiveViewerFrame is just a QFrame that delegates all key events to its InteractiveViewer.
Definition: InteractiveViewer.h:69
Property * highlightModeProperty
The property that stands for the type of highlight mode of the 3D viewer.
Definition: InteractiveViewer.h:572
This class describes a property that can be used in components and actions or any class that needs to...
Definition: Property.h:291
QAction * pickCellRegionAction
Definition: InteractiveViewer.h:505
MeshDataFilterModel * scalarDataModel
Definition: InteractiveViewer.h:444