mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
ParaView-5.0.1: Added the source-tree to ThirdParty-dev and patched as described in the README file
Resolves bug-report http://bugs.openfoam.org/view.php?id=2098
This commit is contained in:
@ -0,0 +1,180 @@
|
||||
/*=========================================================================
|
||||
|
||||
Program: ParaView
|
||||
Module: vtkSMProxySelectionModel.h
|
||||
|
||||
Copyright (c) Kitware, Inc.
|
||||
All rights reserved.
|
||||
See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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.
|
||||
|
||||
=========================================================================*/
|
||||
// .NAME vtkSMProxySelectionModel - selects proxies.
|
||||
// .SECTION Description
|
||||
// vtkSMProxySelectionModel is used to select proxies. vtkSMProxyManager uses
|
||||
// two instances of vtkSMProxySelectionModel for keeping track of the
|
||||
// selected/active sources/filters and the active view.
|
||||
// .SECTION See Also
|
||||
// vtkSMProxyManager
|
||||
|
||||
#ifndef vtkSMProxySelectionModel_h
|
||||
#define vtkSMProxySelectionModel_h
|
||||
|
||||
#include "vtkPVServerManagerCoreModule.h" //needed for exports
|
||||
#include "vtkSMRemoteObject.h"
|
||||
#include "vtkSMMessageMinimal.h" // Needed for vtkSMMessage*
|
||||
#include "vtkSmartPointer.h" // needed for vtkSmartPointer.
|
||||
|
||||
class vtkSMProxySelectionModelInternal;
|
||||
class vtkCollection;
|
||||
class vtkSMProxy;
|
||||
|
||||
//BTX
|
||||
#include <set> // needed for vtkset::set.
|
||||
//ETX
|
||||
|
||||
class VTKPVSERVERMANAGERCORE_EXPORT vtkSMProxySelectionModel : public vtkSMRemoteObject
|
||||
{
|
||||
public:
|
||||
static vtkSMProxySelectionModel* New();
|
||||
vtkTypeMacro(vtkSMProxySelectionModel, vtkSMRemoteObject);
|
||||
void PrintSelf(ostream& os, vtkIndent indent);
|
||||
|
||||
// Description:
|
||||
// Override the set session, so we can attach an observer to the Collaboration
|
||||
// manager in order to monitor master/slave changes.
|
||||
virtual void SetSession(vtkSMSession*);
|
||||
|
||||
// Description:
|
||||
// Allow to synchronize the active object with master or just keep remote object
|
||||
// out-of-synch. Only the state from the master will be loaded.
|
||||
void SetFollowingMaster(bool following);
|
||||
bool IsFollowingMaster();
|
||||
|
||||
//BTX
|
||||
// Description:
|
||||
// Type for selection.
|
||||
typedef std::set<vtkSmartPointer<vtkSMProxy> > SelectionType;
|
||||
|
||||
// vtkSMProxy selection flags
|
||||
enum ProxySelectionFlag {
|
||||
NO_UPDATE = 0,
|
||||
CLEAR = 1,
|
||||
SELECT = 2,
|
||||
DESELECT = 4,
|
||||
CLEAR_AND_SELECT = CLEAR | SELECT
|
||||
};
|
||||
//ETX
|
||||
|
||||
// Description:
|
||||
// Returns the proxy that is current, NULL if there is no current.
|
||||
vtkSMProxy* GetCurrentProxy();
|
||||
|
||||
// Description:
|
||||
// Sets the current proxy. \c command is used to control how the current
|
||||
// selection is affected.
|
||||
// \li NO_UPDATE: change the current without affecting the selected set of
|
||||
// proxies.
|
||||
// \li CLEAR: clear current selection
|
||||
// \li SELECT: also select the proxy being set as current
|
||||
// \li DESELECT: deselect the proxy being set as current.
|
||||
void SetCurrentProxy(vtkSMProxy* proxy, int command);
|
||||
|
||||
// Description:
|
||||
// Returns true if the proxy is selected.
|
||||
bool IsSelected(vtkSMProxy* proxy);
|
||||
|
||||
// Returns the number of selected proxies.
|
||||
unsigned int GetNumberOfSelectedProxies();
|
||||
|
||||
// Description:
|
||||
// Returns the selected proxy at the given index.
|
||||
vtkSMProxy* GetSelectedProxy(unsigned int index);
|
||||
|
||||
//BTX
|
||||
// Description:
|
||||
// Returns the selection set.
|
||||
const SelectionType& GetSelection() { return this->Selection; }
|
||||
//ETX
|
||||
|
||||
// Description:
|
||||
// Update the selected set of proxies. \c command affects how the selection is
|
||||
// updated.
|
||||
// \li NO_UPDATE: don't affect the selected set of proxies.
|
||||
// \li CLEAR: clear selection
|
||||
// \li SELECT: add the proxies to selection
|
||||
// \li DESELECT: deselect the proxies
|
||||
// \li CLEAR_AND_SELECT: clear selection and then add the specified proxies as
|
||||
// the selection.
|
||||
//BTX
|
||||
void Select(const SelectionType &proxies, int command);
|
||||
//ETX
|
||||
void Select(vtkSMProxy* proxy, int command);
|
||||
|
||||
// Description:
|
||||
// Wrapper friendly methods to doing what Select() can do.
|
||||
void Clear()
|
||||
{ this->Select(NULL, CLEAR); }
|
||||
void Select(vtkSMProxy* proxy)
|
||||
{ this->Select(proxy, SELECT); }
|
||||
void Deselect(vtkSMProxy* proxy)
|
||||
{ this->Select(proxy, DESELECT); }
|
||||
void ClearAndSelect(vtkSMProxy* proxy)
|
||||
{ this->Select(proxy, CLEAR_AND_SELECT); }
|
||||
|
||||
// Description:
|
||||
// Utility method to get the data bounds for the currently selected items.
|
||||
// This only makes sense for selections comprising of source-proxies or
|
||||
// output-port proxies.
|
||||
// Returns true is the bounds are valid.
|
||||
bool GetSelectionDataBounds(double bounds[6]);
|
||||
|
||||
//BTX
|
||||
|
||||
// Description:
|
||||
// This method return the full object state that can be used to create that
|
||||
// object from scratch.
|
||||
// This method will be used to fill the undo stack.
|
||||
// If not overriden this will return NULL.
|
||||
virtual const vtkSMMessage* GetFullState();
|
||||
|
||||
// Description:
|
||||
// This method is used to initialise the object to the given state
|
||||
// If the definitionOnly Flag is set to True the proxy won't load the
|
||||
// properties values and just setup the new proxy hierarchy with all subproxy
|
||||
// globalID set. This allow to split the load process in 2 step to prevent
|
||||
// invalid state when property refere to a sub-proxy that does not exist yet.
|
||||
virtual void LoadState( const vtkSMMessage* msg, vtkSMProxyLocator* locator);
|
||||
|
||||
protected:
|
||||
vtkSMProxySelectionModel();
|
||||
~vtkSMProxySelectionModel();
|
||||
|
||||
void InvokeCurrentChanged(vtkSMProxy* proxy);
|
||||
void InvokeSelectionChanged();
|
||||
|
||||
vtkSmartPointer<vtkSMProxy> Current;
|
||||
SelectionType Selection;
|
||||
|
||||
// Description:
|
||||
// When the state has changed we call that method so the state can be shared
|
||||
// is any collaboration is involved
|
||||
void PushStateToSession();
|
||||
|
||||
// Cached version of State
|
||||
vtkSMMessage* State;
|
||||
|
||||
private:
|
||||
vtkSMProxySelectionModel(const vtkSMProxySelectionModel&); // Not implemented
|
||||
void operator = (const vtkSMProxySelectionModel&); // Not implemented
|
||||
|
||||
class vtkInternal;
|
||||
friend class vtkInternal;
|
||||
vtkInternal* Internal;
|
||||
//ETX
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user