1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
/*=========================================================================
Program: Visualization Toolkit
Module: vtkSMTooltipSelectionPipeline.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @class vtkSMTooltipSelectionPipeline
*
*
* Point tooltip mode enables the user to inspect points (coordinates,
* data array values) by hovering the mouse cursor over a point.
* This is a global object that holds the pipeline for showing the point
* tooltip mode.
*
* @sa
* vtkSMPreselectionPipeline vtkSMInteractiveSelectionPipeline
*/
#ifndef vtkSMTooltipSelectionPipeline_h
#define vtkSMTooltipSelectionPipeline_h
#include "vtkPVServerManagerDefaultModule.h" //needed for exports
#include "vtkSMPreselectionPipeline.h"
#include <string> // STL Header
class vtkDataObject;
class vtkDataSet;
class VTKPVSERVERMANAGERDEFAULT_EXPORT vtkSMTooltipSelectionPipeline
: public vtkSMPreselectionPipeline
{
public:
static vtkSMTooltipSelectionPipeline* New();
vtkTypeMacro(vtkSMTooltipSelectionPipeline, vtkSMPreselectionPipeline);
void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
static vtkSMTooltipSelectionPipeline* GetInstance();
//@{
/**
* Re-implemented from vtkSMPreselectionPipeline
*/
virtual void Hide(vtkSMRenderViewProxy* view) VTK_OVERRIDE;
virtual void Show(vtkSMSourceProxy* sourceRepresentation, vtkSMSourceProxy* selection,
vtkSMRenderViewProxy* view) VTK_OVERRIDE;
//@}
/**
* Return true if a tooltip can be displayed according to the context,
* otherwise return false. The argument showTooltip is true if the tooltip
* must be shown, false if the tooltip must be hidden.
*/
bool CanDisplayTooltip(bool& showTooltip);
/**
* Get information about the tooltip to be displayed.
* Return false if the method failed computing information.
*/
bool GetTooltipInfo(int association, double tooltipPos[2], std::string& tooltipText);
protected:
vtkSMTooltipSelectionPipeline();
~vtkSMTooltipSelectionPipeline();
/**
* Re-implemented from vtkSMPreselectionPipeline
*/
void ClearCache() VTK_OVERRIDE;
/**
* Connect the ClientServerMoveData filter to the pipeline to get
* the selection on the client side.
*/
vtkDataObject* ConnectPVMoveSelectionToClient(
vtkSMSourceProxy* source, unsigned int sourceOutputPort);
/**
* Get the id of the selected point.
*/
bool GetCurrentSelectionId(vtkSMRenderViewProxy* view, vtkIdType& selId);
/**
* Extract dataset from the dataObject, which can be either directly a dataset
* or a composite dataset containing only one dataset.
*/
vtkDataSet* FindDataSet(
vtkDataObject* dataObject, bool& compositeFound, std::string& compositeName);
vtkSMSourceProxy* MoveSelectionToClient;
vtkIdType PreviousSelectionId;
bool SelectionFound;
bool TooltipEnabled;
private:
vtkSMTooltipSelectionPipeline(const vtkSMTooltipSelectionPipeline&) VTK_DELETE_FUNCTION;
void operator=(const vtkSMTooltipSelectionPipeline&) VTK_DELETE_FUNCTION;
};
#endif
|