mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
106 lines
3.6 KiB
C++
106 lines
3.6 KiB
C++
/*=========================================================================
|
|
|
|
Program: ParaView
|
|
Module: vtkSMTimeKeeper.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 vtkSMTimeKeeper - a time keeper is used to keep track of the
|
|
// pipeline time.
|
|
// .SECTION Description
|
|
// TimeKeeper can be thought of as a application wide clock. In ParaView, all
|
|
// views are registered with the TimeKeeper (using AddView()) so that all the
|
|
// views render data at the same global time.
|
|
//
|
|
// TimeKeeper also keeps track of time steps and continuous time ranges provided
|
|
// by sources/readers/filters. This expects that the readers have a
|
|
// "TimestepValues" and/or "TimeRange" properties from which the time steps and
|
|
// time ranges provided by the reader can be obtained. All sources whose
|
|
// time steps/time ranges must be noted by the time keeper need to be registered
|
|
// with the time keeper using AddTimeSource(). ParaView automatically registers
|
|
// all created sources/filters/readers with the time keeper. The time steps and
|
|
// time ranges are made accessible by two information properties
|
|
// "TimestepValues" and "TimeRange" on the TimeKeeper proxy.
|
|
//
|
|
// To change the time shown by all the views, simply change the "Time" property
|
|
// on the time keeper proxy (don't directly call SetTime() since otherwise
|
|
// undo/redo, state etc. will not work as expected).
|
|
//
|
|
// This proxy has no VTK objects that it creates on the server.
|
|
|
|
#ifndef vtkSMTimeKeeper_h
|
|
#define vtkSMTimeKeeper_h
|
|
|
|
#include "vtkPVServerManagerCoreModule.h" //needed for exports
|
|
#include "vtkObject.h"
|
|
|
|
class vtkSMProperty;
|
|
class vtkSMSourceProxy;
|
|
class vtkSMProxy;
|
|
|
|
class VTKPVSERVERMANAGERCORE_EXPORT vtkSMTimeKeeper : public vtkObject
|
|
{
|
|
public:
|
|
static vtkSMTimeKeeper* New();
|
|
vtkTypeMacro(vtkSMTimeKeeper, vtkObject);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// Get/Set the pipeline time.
|
|
void SetTime(double time);
|
|
vtkGetMacro(Time, double);
|
|
|
|
// Description:
|
|
// Add/Remove view proxy linked to this time keeper.
|
|
void AddView(vtkSMProxy*);
|
|
void RemoveView(vtkSMProxy*);
|
|
void RemoveAllViews();
|
|
|
|
// Description:
|
|
// List of proxies that provide time. TimestepValues property has a set of
|
|
// timesteps provided by all the sources added to this property alone.
|
|
void AddTimeSource(vtkSMSourceProxy*);
|
|
void RemoveTimeSource(vtkSMSourceProxy*);
|
|
void RemoveAllTimeSources();
|
|
|
|
// Description:
|
|
// List of proxies that provide time. TimestepValues property has a set of
|
|
// timesteps provided by all the sources added to this property alone.
|
|
void AddSuppressedTimeSource(vtkSMSourceProxy*);
|
|
void RemoveSuppressedTimeSource(vtkSMSourceProxy*);
|
|
|
|
//BTX
|
|
protected:
|
|
vtkSMTimeKeeper();
|
|
~vtkSMTimeKeeper();
|
|
|
|
friend class vtkSMTimeKeeperProxy;
|
|
void SetTimestepValuesProperty(vtkSMProperty*);
|
|
void SetTimeRangeProperty(vtkSMProperty*);
|
|
void SetTimeLabelProperty(vtkSMProperty*);
|
|
|
|
void UpdateTimeSteps();
|
|
|
|
vtkSMProperty* TimeLabelProperty;
|
|
vtkSMProperty* TimeRangeProperty;
|
|
vtkSMProperty* TimestepValuesProperty;
|
|
double Time;
|
|
|
|
private:
|
|
vtkSMTimeKeeper(const vtkSMTimeKeeper&); // Not implemented
|
|
void operator=(const vtkSMTimeKeeper&); // Not implemented
|
|
|
|
class vtkInternal;
|
|
vtkInternal* Internal;
|
|
//ETX
|
|
};
|
|
|
|
#endif
|