mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
105 lines
4.2 KiB
C++
105 lines
4.2 KiB
C++
/*=========================================================================
|
|
|
|
Program: ParaView
|
|
Module: vtkSMTransferFunctionManager.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 vtkSMTransferFunctionManager - manages transfer functions i.e. color
|
|
// lookuptables and opacity piecewise functions for ParaView applications.
|
|
// .SECTION Description
|
|
// vtkSMTransferFunctionManager manages transfer functions i.e. color
|
|
// lookuptables and opacity piecewise functions for ParaView applications.
|
|
// vtkSMTransferFunctionManager implements the ParaView specific mechanism for
|
|
// managing such transfer function proxies where there's one transfer function
|
|
// created and maintained per data array name.
|
|
//
|
|
// vtkSMTransferFunctionManager has no state. You can create as many instances as
|
|
// per your choosing to call the methods. It uses the session proxy manager to
|
|
// locate proxies registered using specific names under specific groups. Thus,
|
|
// the state is maintained by the proxy manager itself.
|
|
|
|
#ifndef vtkSMTransferFunctionManager_h
|
|
#define vtkSMTransferFunctionManager_h
|
|
|
|
#include "vtkSMObject.h"
|
|
#include "vtkPVServerManagerRenderingModule.h" // needed for export macro
|
|
|
|
class vtkSMProxy;
|
|
class vtkSMSessionProxyManager;
|
|
|
|
class VTKPVSERVERMANAGERRENDERING_EXPORT vtkSMTransferFunctionManager : public vtkSMObject
|
|
{
|
|
public:
|
|
static vtkSMTransferFunctionManager* New();
|
|
vtkTypeMacro(vtkSMTransferFunctionManager, vtkSMObject);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// Returns a color transfer function proxy instance for mapping a data array
|
|
// with the given name. If none exists in the given
|
|
// session, a new instance will be created and returned.
|
|
virtual vtkSMProxy* GetColorTransferFunction(const char* arrayName,
|
|
vtkSMSessionProxyManager* pxm);
|
|
|
|
// Description:
|
|
// Returns a opacity transfer function proxy (aka Piecewise Function) instance
|
|
// for mapping a data array with the given name. If
|
|
// none exists in the given session, a new instance will be created and
|
|
// returned.
|
|
virtual vtkSMProxy* GetOpacityTransferFunction(const char* arrayName,
|
|
vtkSMSessionProxyManager* pxm);
|
|
|
|
// Description:
|
|
// Returns the scalar-bar (color-legend) representation corresponding to the
|
|
// transfer function for the view (currently only render-views are supported).
|
|
// Thus returns an existing proxy, if present, otherwise a new one is created,
|
|
// if possible.
|
|
virtual vtkSMProxy* GetScalarBarRepresentation(
|
|
vtkSMProxy* colorTransferFunctionProxy, vtkSMProxy* view);
|
|
|
|
// Description:
|
|
// Iterates over all "known" transfer function proxies and request each one of
|
|
// them to update its range using data information currently available.
|
|
// If \c extend is true, the transfer function is expanded to accommodate
|
|
// current data range rather then resetting it to the range.
|
|
void ResetAllTransferFunctionRangesUsingCurrentData(
|
|
vtkSMSessionProxyManager* pxm, bool extend=false);
|
|
|
|
enum UpdateScalarBarsMode
|
|
{
|
|
HIDE_UNUSED_SCALAR_BARS = 0x01,
|
|
SHOW_USED_SCALAR_BARS = 0x02
|
|
};
|
|
|
|
// Description:
|
|
// Updates the scalar bar visibility in the view. Based on the specified mode,
|
|
// scalars bars representing non-represented arrays can be automatically hidden;
|
|
// and those corresponding to arrays used for coloring can be automatically shown.
|
|
virtual bool UpdateScalarBars(vtkSMProxy* viewProxy, unsigned int mode);
|
|
|
|
// Description:
|
|
// Hides the scalar bar, if any, for the lutProxy in the view if it's not
|
|
// being used. Returns true if the scalar bar visibility was changed.
|
|
virtual bool HideScalarBarIfNotNeeded(vtkSMProxy* lutProxy, vtkSMProxy* view);
|
|
|
|
//BTX
|
|
protected:
|
|
vtkSMTransferFunctionManager();
|
|
~vtkSMTransferFunctionManager();
|
|
|
|
private:
|
|
vtkSMTransferFunctionManager(const vtkSMTransferFunctionManager&); // Not implemented
|
|
void operator=(const vtkSMTransferFunctionManager&); // Not implemented
|
|
//ETX
|
|
};
|
|
|
|
#endif
|