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,272 @@
|
||||
/*=========================================================================
|
||||
|
||||
Program: ParaView
|
||||
Module: vtkSMParaViewPipelineController.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 vtkSMParaViewPipelineController
|
||||
// .SECTION Description
|
||||
//
|
||||
|
||||
#ifndef vtkSMParaViewPipelineController_h
|
||||
#define vtkSMParaViewPipelineController_h
|
||||
|
||||
#include "vtkSMObject.h"
|
||||
|
||||
class vtkSMProxy;
|
||||
class vtkSMSession;
|
||||
class vtkSMSessionProxyManager;
|
||||
|
||||
class VTKPVSERVERMANAGERCORE_EXPORT vtkSMParaViewPipelineController : public vtkSMObject
|
||||
{
|
||||
public:
|
||||
static vtkSMParaViewPipelineController* New();
|
||||
vtkTypeMacro(vtkSMParaViewPipelineController, vtkSMObject);
|
||||
void PrintSelf(ostream& os, vtkIndent indent);
|
||||
|
||||
// Description:
|
||||
// Call this method to setup a branch new session with state considered
|
||||
// essential for ParaView session. Returns true on success.
|
||||
virtual bool InitializeSession(vtkSMSession* session);
|
||||
|
||||
// Description:
|
||||
// Returns the TimeKeeper proxy associated with the session.
|
||||
virtual vtkSMProxy* FindTimeKeeper(vtkSMSession* session);
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Description:
|
||||
// Pre-initializes a proxy i.e. prepares the proxy for initialization.
|
||||
// One should call this before changing any properties on the proxy. We load
|
||||
// the property values from XML defaults as well as user-preferences here.
|
||||
virtual bool PreInitializeProxy(vtkSMProxy* proxy);
|
||||
|
||||
// Description:
|
||||
// Final step in proxy initialization. When this method is called, all
|
||||
// essential properties on the proxy (such as inputs for filters, or filename
|
||||
// on readers) are assumed to be set up so that domains can be updated. This
|
||||
// method setups up property values for those properties that weren't modified
|
||||
// since the PreInitializeProxy() using the domains, if possible. This enables
|
||||
// the application to select data-specific default values.
|
||||
// NOTE: This method does not register the proxy with the proxy manager. It
|
||||
// may, however register any helper proxies created for this proxy.
|
||||
virtual bool PostInitializeProxy(vtkSMProxy* proxy);
|
||||
|
||||
|
||||
// Description:
|
||||
// Convenience method to call PreInitializeProxy and PostInitializeProxy.
|
||||
bool InitializeProxy(vtkSMProxy* proxy)
|
||||
{ return this->PreInitializeProxy(proxy) && this->PostInitializeProxy(proxy); }
|
||||
|
||||
// Description:
|
||||
// Cleans up any helper proxies registered for the proxy in
|
||||
// PreInitializeProxy/PostInitializeProxy. Similar to
|
||||
// PreInitializeProxy/PostInitializeProxy methods, this doesn't affect the
|
||||
// proxy manager registration state for the proxy itself.
|
||||
virtual bool FinalizeProxy(vtkSMProxy* proxy);
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// ******* Methods for Pipeline objects like sources/filters/readers ********
|
||||
|
||||
// Description:
|
||||
// Use this method after PreInitializeProxy() and PostInitializeProxy() to
|
||||
// register a pipeline proxy with the proxy manager. This method does
|
||||
// additional updates required for pipeline proxies such as registering the
|
||||
// proxy with the TimeKeeper, creating additional helper proxies for enabling
|
||||
// representation animations, and updating the active-source. This method will
|
||||
// register the proxy in an appropriate group so that the application
|
||||
// becomes aware of it. One can optionally pass in the registration name to
|
||||
// use. Otherwise, this code will come up with a unique name.
|
||||
// Caveat: while pipeline proxies are generally registered under the "sources"
|
||||
// group, there's one exception: sources that produce vtkSelection. ParaView
|
||||
// treats them specially and registers them under "selection_sources".
|
||||
virtual bool RegisterPipelineProxy(vtkSMProxy* proxy, const char* proxyname);
|
||||
virtual bool RegisterPipelineProxy(vtkSMProxy* proxy)
|
||||
{ return this->RegisterPipelineProxy(proxy, NULL); }
|
||||
|
||||
// Description:
|
||||
// Unregisters a pipeline proxy. This is the inverse of RegisterPipelineProxy()
|
||||
// and hence unsets the active source if the active source if this proxy,
|
||||
// unregisters the proxy with the TimeKeeper etc.
|
||||
// Users can use either this method or the catch-all
|
||||
// vtkSMParaViewPipelineController::UnRegisterProxy() method which
|
||||
// determines the type of the proxy and then calls the appropriate method.
|
||||
virtual bool UnRegisterPipelineProxy(vtkSMProxy* proxy);
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// ******* Methods for Views/Displays *********
|
||||
|
||||
// Description:
|
||||
// Use this method after PreInitializeProxy() and PostInitializeProxy() to
|
||||
// register a view proxy with the proxy manager. This will also perform any
|
||||
// additional setups as needed e.g. registering the view with the
|
||||
// animation scene and the timer keeper.
|
||||
virtual bool RegisterViewProxy(vtkSMProxy* proxy)
|
||||
{ return this->RegisterViewProxy(proxy, NULL); }
|
||||
virtual bool RegisterViewProxy(vtkSMProxy* proxy, const char* proxyname);
|
||||
|
||||
// Description:
|
||||
// Inverse of RegisterViewProxy.
|
||||
// Users can use either this method or the catch-all
|
||||
// vtkSMParaViewPipelineController::UnRegisterProxy() method which
|
||||
// determines the type of the proxy and then calls the appropriate method.
|
||||
// If the optional argument, \c unregister_representations, is false (default
|
||||
// is true), then this method will skip the unregistering of representations.
|
||||
// Default behaviour is to unregister all representations too.
|
||||
virtual bool UnRegisterViewProxy(vtkSMProxy* proxy, bool unregister_representations=true);
|
||||
|
||||
// Description:
|
||||
// Registration method for representations to be used after
|
||||
// PreInitializeProxy() and PostInitializeProxy(). Register the proxy under
|
||||
// the appropriate group.
|
||||
virtual bool RegisterRepresentationProxy(vtkSMProxy* proxy);
|
||||
|
||||
// Description:
|
||||
// Unregisters a representation proxy.
|
||||
// Users can use either this method or the catch-all
|
||||
// vtkSMParaViewPipelineController::UnRegisterProxy() method which
|
||||
// determines the type of the proxy and then calls the appropriate method.
|
||||
virtual bool UnRegisterRepresentationProxy(vtkSMProxy* proxy);
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// ******* Methods for Transfer functions *********
|
||||
|
||||
// Description:
|
||||
// Registration method for color transfer function proxies to be used after
|
||||
// PreInitializeProxy() and PostInitializeProxy() calls.
|
||||
virtual bool RegisterColorTransferFunctionProxy(vtkSMProxy* proxy, const char* proxyname);
|
||||
virtual bool RegisterColorTransferFunctionProxy(vtkSMProxy* proxy)
|
||||
{ return this->RegisterColorTransferFunctionProxy(proxy, NULL); }
|
||||
|
||||
// Description:
|
||||
// Registration method for opacity transfer function proxies.
|
||||
virtual bool RegisterOpacityTransferFunction(vtkSMProxy* proxy, const char* proxyname);
|
||||
virtual bool RegisterOpacityTransferFunction(vtkSMProxy* proxy)
|
||||
{ return this->RegisterOpacityTransferFunction(proxy, NULL); }
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// ******* Methods for Animation *********
|
||||
|
||||
// Description:
|
||||
// Returns the animation scene, if any. Returns NULL if none exists.
|
||||
virtual vtkSMProxy* FindAnimationScene(vtkSMSession* session);
|
||||
|
||||
// Description:
|
||||
// Returns the animation scene for the session. If none exists, a new one will
|
||||
// be created. This may returns NULL if animation scene proxy is not available
|
||||
// in the session.
|
||||
virtual vtkSMProxy* GetAnimationScene(vtkSMSession* session);
|
||||
|
||||
// Description:
|
||||
// Return the animation track for time, if any. Returns NULL if none exists.
|
||||
virtual vtkSMProxy* FindTimeAnimationTrack(vtkSMProxy* scene);
|
||||
|
||||
// Description:
|
||||
// Return the animation track for time. If none exists, a new one will be
|
||||
// created. Returns NULL if the proxy is not available in the session.
|
||||
virtual vtkSMProxy* GetTimeAnimationTrack(vtkSMProxy* scene);
|
||||
|
||||
// Description:
|
||||
// Use this method after PreInitializeProxy() and PostInitializeProxy() to
|
||||
// register an animation proxy with the proxy manager.
|
||||
virtual bool RegisterAnimationProxy(vtkSMProxy* proxy);
|
||||
|
||||
// Description:
|
||||
// Inverse of RegisterAnimationProxy. Also unregisters cues if proxy is scene,
|
||||
// keyframes if proxy is a cue, etc.
|
||||
// Users can use either this method or the catch-all
|
||||
// vtkSMParaViewPipelineController::UnRegisterProxy() method which
|
||||
// determines the type of the proxy and then calls the appropriate method.
|
||||
virtual bool UnRegisterAnimationProxy(vtkSMProxy* proxy);
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// ******* Methods for Settings *********
|
||||
//
|
||||
// Description:
|
||||
// Initializes and registers proxies in the "settings" group that
|
||||
// haven't been already. This may be called whenever a new settings
|
||||
// proxy definition becomes available, say, after loading a plugin.
|
||||
virtual void UpdateSettingsProxies(vtkSMSession* session);
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// ****** Methods for cleanup/finalization/deleting ******
|
||||
//
|
||||
// Description:
|
||||
// A catch-all method do cleanup and unregister any proxies that were
|
||||
// registered using Register..Proxy() APIs on this class. It determines what
|
||||
// known types the "proxy" is, i.e. is it a view, or pipeline, or
|
||||
// representation etc., and then calls the appropriate UnRegister...Proxy()
|
||||
// method.
|
||||
virtual bool UnRegisterProxy(vtkSMProxy* proxy);
|
||||
|
||||
// Description:
|
||||
// For a given proxy returns the name of the group used for helper proxies.
|
||||
static vtkStdString GetHelperProxyGroupName(vtkSMProxy*);
|
||||
|
||||
//BTX
|
||||
protected:
|
||||
vtkSMParaViewPipelineController();
|
||||
~vtkSMParaViewPipelineController();
|
||||
|
||||
// Description:
|
||||
// Find proxy of the group type (xmlgroup, xmltype) registered under a
|
||||
// particular group (reggroup). Returns the first proxy found, if any.
|
||||
vtkSMProxy* FindProxy(vtkSMSessionProxyManager* pxm,
|
||||
const char* reggroup, const char* xmlgroup, const char* xmltype);
|
||||
|
||||
// Description:
|
||||
// Creates new proxies for proxies referred in vtkSMProxyListDomain for any of
|
||||
// the properties for the given proxy.
|
||||
virtual bool CreateProxiesForProxyListDomains(vtkSMProxy* proxy);
|
||||
virtual void RegisterProxiesForProxyListDomains(vtkSMProxy* proxy);
|
||||
|
||||
// Description:
|
||||
// Setup global properties links based on hints for properties in the XML.
|
||||
virtual bool SetupGlobalPropertiesLinks(vtkSMProxy* proxy);
|
||||
|
||||
// Description:
|
||||
// To help animation representation properties such as visibility, opacity, we
|
||||
// create animation helpers.
|
||||
virtual bool CreateAnimationHelpers(vtkSMProxy* proxy);
|
||||
|
||||
// Description:
|
||||
// Unregisters know proxy dependencies that must be removed when the proxy is
|
||||
// to be deleted e.g animation cues, representations, etc.
|
||||
virtual bool UnRegisterDependencies(vtkSMProxy* proxy);
|
||||
|
||||
// Description:
|
||||
// Proxies in proxy-list domains can have hints that are used to setup
|
||||
// property-links to ensure that those proxies get appropriate domains.
|
||||
virtual void ProcessProxyListProxyHints(vtkSMProxy* parent, vtkSMProxy* proxyFromDomain);
|
||||
|
||||
// Description:
|
||||
// Returns the initialization timestamp for the proxy, if available. Useful
|
||||
// for subclasses to determine which properties were modified since
|
||||
// initialization.
|
||||
unsigned long GetInitializationTime(vtkSMProxy*);
|
||||
private:
|
||||
vtkSMParaViewPipelineController(const vtkSMParaViewPipelineController&); // Not implemented
|
||||
void operator=(const vtkSMParaViewPipelineController&); // Not implemented
|
||||
|
||||
// Description:
|
||||
// We added support for LZ4 in ParaView 5.0.1. LZ4 is a good default
|
||||
// compression algo to use for client-server images. However since the
|
||||
// implementation is not present in 5.0.0, we have to change the explicitly
|
||||
// avoid choosing LZ4 when connected to ParaView 5.0.0 server using a ParaView
|
||||
// 5.0.1 client. This code does that. We can remove this when we change
|
||||
// version to 5.1 or later.
|
||||
void HandleLZ4Issue(vtkSMProxy* renderViewSettings);
|
||||
|
||||
class vtkInternals;
|
||||
vtkInternals* Internals;
|
||||
//ETX
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user