Files
ThirdParty-6/ParaView-5.0.1/Plugins/SierraPlotTools/pqSierraPlotToolsManager.h

136 lines
4.2 KiB
C++

// -*- c++ -*-
/*=========================================================================
Program: Visualization Toolkit
Module: pqSierraPlotToolsManager.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.
=========================================================================*/
/*-------------------------------------------------------------------------
Copyright 2009 Sandia Corporation.
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
the U.S. Government retains certain rights in this software.
-------------------------------------------------------------------------*/
#ifndef pqSierraPlotToolsManager_h
#define pqSierraPlotToolsManager_h
#include <QObject>
class QAction;
class pqPipelineSource;
class pqPlotter;
class pqServer;
class pqView;
class pqPlotVariablesDialog;
class QListWidgetItem;
class vtkSMProxy;
/// This singleton class manages the state associated with the packaged
/// visualizations provided
class pqSierraPlotToolsManager : public QObject
{
Q_OBJECT;
public:
static pqSierraPlotToolsManager *instance();
~pqSierraPlotToolsManager();
/// Get the action for the respective operation.
QAction *actionDataLoadManager();
QAction *actionPlotVars();
QAction *actionSolidMesh();
QAction *actionWireframeSolidMesh();
QAction *actionWireframeAndBackMesh();
QAction *actionPlotOverTime();
QAction *actionToggleBackgroundBW();
QAction *actionPlotDEBUG();
QAction *actionHoverGlobalVarVsTimeLabel();
/// Convenience function for getting the current server.
pqServer *getActiveServer();
/// Convenience function for getting the main window.
QWidget *getMainWindow();
/// Get the window used for viewing the mesh.
pqView *getMeshView();
/// Get the window used for viewing plots.
pqView *getPlotView();
/// Get the reader objects. Returns NULL if that reader was never created.
pqPipelineSource *getMeshReader();
pqPipelineSource *getParticlesReader();
/// Get plotting object. Returns NULL if that object was never created.
pqPipelineSource *getPlotFilter();
/// Get plotting object. Returns NULL if that object was never created.
pqPipelineSource *getGlobalVariablesPlotOverTimeFilter();
/// Get plotting object. Returns NULL if that object was never created.
pqPipelineSource *getSelectionPlotOverTimeFilter();
/// Convenience function for destroying a pipeline object and all of its
/// consumers.
static void destroyPipelineSourceAndConsumers(pqPipelineSource *source);
signals:
void createdPlotGUI();
void createPlot();
public slots:
void showDataLoadManager();
void checkActionEnabled();
void showSolidMesh();
void showWireframeSolidMesh();
void showWireframeAndBackMesh();
void toggleBackgroundBW();
void actOnPlotSelection();
void slotVariableDeselectionByName(QString varStr);
void slotVariableSelectionByName(QString varStr);
void slotPlotDialogAccepted();
void slotUseParaViewGUIToSelectNodesCheck();
protected:
// Creates a plot over time.
// returns true if plot successfuly created, false otherwise;
virtual bool createPlotOverTime();
/// Finds a pipeline source with the given SM XML name. If there is more than
/// one, the first is returned.
virtual pqPipelineSource *findPipelineSource(const char *SMName);
/// Finds a view appropriate for the data of the source and port given,
/// constrained to those views with the given type.
virtual pqView *findView(pqPipelineSource *source, int port,
const QString &viewType);
virtual bool setupGUIForVars();
virtual void setupPlotMenu();
virtual void showPlotGUI(pqPlotVariablesDialog *);
private:
pqSierraPlotToolsManager(QObject *p);
class pqInternal;
pqInternal *Internal;
pqSierraPlotToolsManager(const pqSierraPlotToolsManager &); // Not implemented
void operator=(const pqSierraPlotToolsManager &); // Not implemented
};
#endif //pqSierraPlotToolsManager_h