mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
211 lines
6.2 KiB
C++
211 lines
6.2 KiB
C++
/*=========================================================================
|
|
|
|
Program: ParaView
|
|
Module: vtkPVComparativeView.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 vtkPVComparativeView - view for comparative visualization/
|
|
// film-strips.
|
|
// .SECTION Description
|
|
// vtkPVComparativeView is the view used to generate/view comparative
|
|
// visualizations/film-strips. This is not a proxy
|
|
|
|
#ifndef vtkPVComparativeView_h
|
|
#define vtkPVComparativeView_h
|
|
|
|
#include "vtkPVServerManagerRenderingModule.h" //needed for exports
|
|
#include "vtkObject.h"
|
|
|
|
class vtkCollection;
|
|
class vtkSMComparativeAnimationCueProxy;
|
|
class vtkSMProxy;
|
|
class vtkSMViewProxy;
|
|
|
|
class VTKPVSERVERMANAGERRENDERING_EXPORT vtkPVComparativeView : public vtkObject
|
|
{
|
|
public:
|
|
static vtkPVComparativeView* New();
|
|
vtkTypeMacro(vtkPVComparativeView, vtkObject);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// Provides empty handlers to simulate the vtkPVView API.
|
|
void Initialize(unsigned int) {};
|
|
|
|
// Description:
|
|
// Call StillRender() on the root view.
|
|
void StillRender();
|
|
|
|
// Description:
|
|
// Call InteractiveRender() on the root view.
|
|
void InteractiveRender();
|
|
|
|
// Description:
|
|
// Initialize the vtkPVComparativeView giving the root view proxy to be used
|
|
// to create the comparative views.
|
|
void Initialize(vtkSMViewProxy* rootView);
|
|
|
|
// Description:
|
|
// Builds the MxN views. This method simply creates the MxN internal view modules.
|
|
// It does not generate the visualization i.e. play the animation scene(s).
|
|
// This method does nothing unless the dimensions have changed, in which case
|
|
// it creates new internal view modules (or destroys extra ones). Note that
|
|
// the it's the responsibility of the application to lay the views out so that
|
|
// they form a MxN grid.
|
|
void Build(int dx, int dy);
|
|
|
|
// Description:
|
|
// When set to true, all comparisons are shown in the same view. Otherwise,
|
|
// they are tiled in separate views.
|
|
void SetOverlayAllComparisons(bool);
|
|
vtkGetMacro(OverlayAllComparisons, bool);
|
|
|
|
// Description:
|
|
// Returns the dimensions used by the most recent Build() request.
|
|
vtkGetVector2Macro(Dimensions, int);
|
|
|
|
// Description:
|
|
// Adds a representation proxy to this view.
|
|
void AddRepresentation(vtkSMProxy*);
|
|
|
|
// Description:
|
|
// Removes a representation proxy from this view.
|
|
void RemoveRepresentation(vtkSMProxy*);
|
|
|
|
// Description:
|
|
// Removes all added representations from this view.
|
|
// Simply calls RemoveRepresentation() on all added representations
|
|
// one by one.
|
|
void RemoveAllRepresentations();
|
|
|
|
// Description:
|
|
// Updates the data pipelines for all visible representations.
|
|
void Update();
|
|
|
|
// Description:
|
|
// Get all the internal views. The views should only be used to be layed out
|
|
// by the GUI. It's not recommended to directly change the properties of the
|
|
// views.
|
|
void GetViews(vtkCollection* collection);
|
|
|
|
// Description:
|
|
// Get all internal vtkSMRepresentations for a given view. If the given
|
|
// view is not managed by this comparative view it will be ignored. The
|
|
// representations should only be used by the GUI for creating representation
|
|
// clones. It is not recommended to directly change the properties of the returned
|
|
// representations.
|
|
void GetRepresentationsForView(vtkSMViewProxy*, vtkCollection*);
|
|
void GetRepresentations(int x, int y, vtkCollection*);
|
|
|
|
// Description:
|
|
// Returns the root view proxy.
|
|
vtkGetObjectMacro(RootView, vtkSMViewProxy);
|
|
|
|
// Description:
|
|
// ViewSize, ViewPosition need to split up among all the component
|
|
// views correctly.
|
|
void SetViewSize(int x, int y)
|
|
{
|
|
this->ViewSize[0] = x;
|
|
this->ViewSize[1] = y;
|
|
this->UpdateViewLayout();
|
|
}
|
|
|
|
// Description:
|
|
// ViewSize, ViewPosition need to split up among all the component
|
|
// views correctly.
|
|
void SetViewPosition(int x, int y)
|
|
{
|
|
this->ViewPosition[0] = x;
|
|
this->ViewPosition[1] = y;
|
|
this->UpdateViewLayout();
|
|
}
|
|
|
|
// Description:
|
|
// Set spacing between views.
|
|
vtkSetVector2Macro(Spacing, int);
|
|
vtkGetVector2Macro(Spacing, int);
|
|
|
|
// Description:
|
|
// Add/Remove parameter cues.
|
|
void AddCue(vtkSMComparativeAnimationCueProxy*);
|
|
void RemoveCue(vtkSMComparativeAnimationCueProxy*);
|
|
|
|
// Description:
|
|
// Get/Set the view time.
|
|
vtkGetMacro(ViewTime, double);
|
|
void SetViewTime (double time)
|
|
{
|
|
if (this->ViewTime != time)
|
|
{
|
|
this->ViewTime = time;
|
|
this->Modified();
|
|
this->MarkOutdated();
|
|
}
|
|
}
|
|
|
|
// Description:
|
|
// Marks the view dirty i.e. on next Update() it needs to regenerate the
|
|
// comparative vis by replaying the animation(s).
|
|
void MarkOutdated()
|
|
{ this->Outdated=true; }
|
|
|
|
//BTX
|
|
protected:
|
|
vtkPVComparativeView();
|
|
~vtkPVComparativeView();
|
|
|
|
// Description:
|
|
// Creates and appends a new internal view.
|
|
// This not only creates a new view but also new copies of representations
|
|
// for all the representations in the view and adds them to the new view.
|
|
void AddNewView();
|
|
|
|
// Description:
|
|
// Removes an internal view and all the representations in that view.
|
|
void RemoveView(vtkSMViewProxy* remove);
|
|
|
|
// Description:
|
|
// Update layout for internal views.
|
|
void UpdateViewLayout();
|
|
|
|
// Description:
|
|
// Update all representations belonging for the indicated position.
|
|
void UpdateAllRepresentations(int x, int y);
|
|
|
|
// Description:
|
|
// Clears the cached data for representations belonging to the indicated
|
|
// position.
|
|
void ClearDataCaches(int x, int y);
|
|
|
|
int Dimensions[2];
|
|
int ViewSize[2];
|
|
int ViewPosition[2];
|
|
int Spacing[2];
|
|
double ViewTime;
|
|
bool OverlayAllComparisons;
|
|
bool Outdated;
|
|
|
|
void SetRootView(vtkSMViewProxy*);
|
|
vtkSMViewProxy* RootView;
|
|
private:
|
|
vtkPVComparativeView(const vtkPVComparativeView&); // Not implemented
|
|
void operator=(const vtkPVComparativeView&); // Not implemented
|
|
|
|
class vtkInternal;
|
|
vtkInternal* Internal;
|
|
vtkCommand* MarkOutdatedObserver;
|
|
|
|
//ETX
|
|
};
|
|
|
|
#endif
|