vtkInSituInitializationHelper.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-License-Identifier: BSD-3-Clause
31 #ifndef vtkInSituInitializationHelper_h
32 #define vtkInSituInitializationHelper_h
33 
34 #include "vtkObject.h"
35 #include "vtkPVInSituModule.h" // For windows import/export of shared libraries
36 
37 class vtkCPCxxHelper;
38 class vtkInSituPipeline;
39 class vtkSMProxy;
40 class vtkSMSourceProxy;
41 
42 // forward declare conduit_node and its typedef.
43 // it has to be identical to the one in conduit.hpp
44 struct conduit_node_impl;
45 typedef struct conduit_node_impl conduit_node;
46 
47 #include <string> // for std::string
48 #include <vector> // for std::vector
49 
50 class VTKPVINSITU_EXPORT vtkInSituInitializationHelper : public vtkObject
51 {
52 public:
54  void PrintSelf(ostream& os, vtkIndent indent) override;
55 
69  static void Initialize(vtkTypeUInt64 comm);
70 
75  static void Finalize();
76 
83  static vtkInSituPipeline* AddPipeline(const std::string& name, const std::string& path);
84 
88  static void AddPipeline(vtkInSituPipeline* pipeline);
89 
97  static void SetProducer(const std::string& channelName, vtkSMSourceProxy* producer);
98 
102  static vtkSMSourceProxy* GetProducer(const std::string& channelName);
103 
107  static void UpdateAllProducers(double time);
108 
110 
114  static void MarkProducerModified(const std::string& channelName);
115  static void MarkProducerModified(vtkSMSourceProxy* producer);
117 
121  static bool ExecutePipelines(int timestep, double time, const conduit_node* pipelines,
122  const std::vector<std::string>& parameters = {});
123 
125 
129  static int GetTimeStep();
130  static double GetTime();
132 
137  static bool IsInitialized() { return vtkInSituInitializationHelper::Internals != nullptr; }
138 
142  static bool IsPythonSupported();
143 
144  static void GetSteerableProxies(std::vector<std::pair<std::string, vtkSMProxy*>>& proxies);
145  static void UpdateSteerableParameters(
146  vtkSMProxy* steerableProxy, const char* steerableSourceName);
147 
148 protected:
150  ~vtkInSituInitializationHelper() override;
151 
152 private:
154  void operator=(const vtkInSituInitializationHelper&) = delete;
155 
156  static void UpdateSteerableProxies();
157  static int GetAttributeTypeFromString(const std::string& associationString);
158 
159  static int WasInitializedOnce;
160  static int WasFinalizedOnce;
161 
162  class vtkInternals;
163  static vtkInternals* Internals;
164 };
165 
166 #endif
vtkObjectBase::operator=
void operator=(const vtkObjectBase &)
vtkCPCxxHelper
Definition: vtkCPCxxHelper.h:19
vtkInSituInitializationHelper
initialization helper for in situ environments.
Definition: vtkInSituInitializationHelper.h:50
conduit_node
struct conduit_node_impl conduit_node
Definition: vtkInSituInitializationHelper.h:45
vtkObject
vtkInSituInitializationHelper::IsInitialized
static bool IsInitialized()
Returns true if vtkInSituInitializationHelper has been initialized; which means that ParaView is oper...
Definition: vtkInSituInitializationHelper.h:137
vtkInSituPipeline
abstract base class for all in situ pipelines.
Definition: vtkInSituPipeline.h:35
vtkSMProxy
proxy for a VTK object(s) on a server
Definition: vtkSMProxy.h:140
vtkSMSourceProxy
proxy for a VTK source on a server
Definition: vtkSMSourceProxy.h:37
vtkIndent
vtkObject.h
vtkObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE