Slicer 5.13
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkSlicerScriptedFileWriterBridge.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Program: 3D Slicer
4
5 Copyright (c) Laboratory for Percutaneous Surgery (PerkLab)
6 Queen's University, Kingston, ON, Canada. All Rights Reserved.
7
8 See COPYRIGHT.txt
9 or http://www.slicer.org/copyright/copyright.txt for details.
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16
17==============================================================================*/
18
19#ifndef __vtkSlicerScriptedFileWriterBridge_h
20#define __vtkSlicerScriptedFileWriterBridge_h
21
22// Slicer includes
23#include "vtkSlicerBaseLogicExport.h"
24
25// MRML includes
26#include <vtkMRMLFileWriter.h>
27
28// VTK includes
29#include <vtkPython.h>
30
31// STD includes
32#include <string>
33#include <vector>
34
35class vtkSmartPyObject;
36class vtkWeakReference;
37
47class VTK_SLICER_BASE_LOGIC_EXPORT vtkSlicerScriptedFileWriterBridge : public vtkMRMLFileWriter
48{
49public:
52 void PrintSelf(ostream& os, vtkIndent indent) override;
53
54 bool CanWriteObject(vtkObject* object) override;
55 double CanWriteObjectConfidence(vtkObject* object) override;
56 std::vector<std::string> GetNameFiltersForObject(vtkObject* object) override;
57 bool Write(vtkMRMLIOProperties* properties) override;
59
63 vtkWeakReference* GetWeakReference();
64
65protected:
68
71 void UnRegisterInternal(vtkObjectBase* o, vtkTypeBool check) override;
72
73private:
75 void operator=(const vtkSlicerScriptedFileWriterBridge&) = delete;
76
81 PyObject* CallPythonMethod(const vtkSmartPyObject& pyArgs, const std::string& fName, bool decrementResult, bool* callFailed = nullptr);
82
83 class vtkInternal;
84 vtkInternal* Internal;
85};
86
87#endif
double CanWriteObjectConfidence(vtkObject *object) override
void GetOptionsDescription(vtkMRMLIOOptionsDescription *description) override
static vtkSlicerScriptedFileWriterBridge * New()
void PrintSelf(ostream &os, vtkIndent indent) override
std::vector< std::string > GetNameFiltersForObject(vtkObject *object) override
bool CanWriteObject(vtkObject *object) override
vtkWeakReference * GetWeakReference()
void UnRegisterInternal(vtkObjectBase *o, vtkTypeBool check) override
bool Write(vtkMRMLIOProperties *properties) override
_object PyObject