Salome HOME
Make it run with int64 configuration with non regression tests
[modules/paravis.git] / src / Plugins / StaticMesh / vtkStaticMeshObjectFactory.cxx
1 /*=========================================================================
2
3   Program:   Visualization Toolkit
4   Module:    vtkStaticDataSetSurfaceFilter.cxx
5
6   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7   All rights reserved.
8   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10      This software is distributed WITHOUT ANY WARRANTY; without even
11      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12      PURPOSE.  See the above copyright notice for more information.
13
14 =========================================================================*/
15 #include "vtkStaticMeshObjectFactory.h"
16
17 #include <vtkCollectionIterator.h>
18 #include <vtkObjectFactory.h>
19 #include <vtkObjectFactoryCollection.h>
20 #include <vtkVersion.h>
21
22 #include "vtkStaticDataSetSurfaceFilter.h"
23 #include "vtkStaticEnSight6BinaryReader.h"
24 #include "vtkStaticEnSight6Reader.h"
25 #include "vtkStaticEnSightGoldBinaryReader.h"
26 #include "vtkStaticEnSightGoldReader.h"
27 #include "vtkStaticPlaneCutter.h"
28
29 #ifdef PARAVIEW_USE_MPI
30 #include "vtkStaticPUnstructuredGridGhostCellsGenerator.h"
31 #endif
32
33 vtkStandardNewMacro(vtkStaticMeshObjectFactory);
34
35 VTK_CREATE_CREATE_FUNCTION(vtkStaticDataSetSurfaceFilter);
36 VTK_CREATE_CREATE_FUNCTION(vtkStaticPlaneCutter);
37 VTK_CREATE_CREATE_FUNCTION(vtkStaticEnSight6BinaryReader);
38 VTK_CREATE_CREATE_FUNCTION(vtkStaticEnSight6Reader);
39 VTK_CREATE_CREATE_FUNCTION(vtkStaticEnSightGoldReader);
40 VTK_CREATE_CREATE_FUNCTION(vtkStaticEnSightGoldBinaryReader);
41
42 #ifdef PARAVIEW_USE_MPI
43 VTK_CREATE_CREATE_FUNCTION(vtkStaticPUnstructuredGridGhostCellsGenerator);
44 #endif
45
46 vtkStaticMeshObjectFactory::vtkStaticMeshObjectFactory()
47 {
48   vtkDebugMacro("Create vtkStaticMeshObjectFactory");
49
50   this->RegisterOverride("vtkDataSetSurfaceFilter", "vtkStaticDataSetSurfaceFilter",
51     "StaticDataSetSurfaceFilter", 1, vtkObjectFactoryCreatevtkStaticDataSetSurfaceFilter);
52   this->RegisterOverride("vtkPlaneCutter", "vtkStaticPlaneCutter", "StaticPlaneCutter", 1,
53     vtkObjectFactoryCreatevtkStaticPlaneCutter);
54   this->RegisterOverride("vtkEnSight6BinaryReader", "vtkStaticEnSight6BinaryReader", "StaticEnSight6BinaryReader", 1,
55     vtkObjectFactoryCreatevtkStaticEnSight6BinaryReader);
56   this->RegisterOverride("vtkEnSight6Reader", "vtkStaticEnSight6Reader", "StaticEnSight6Reader", 1,
57     vtkObjectFactoryCreatevtkStaticEnSight6Reader);
58   this->RegisterOverride("vtkEnSightGoldReader", "vtkStaticEnSight6BinaryReader", "StaticEnSight6BinaryReader", 1,
59     vtkObjectFactoryCreatevtkStaticEnSightGoldReader);
60   this->RegisterOverride("vtkEnSightGoldBinaryReader", "vtkStaticEnSightGoldBinaryReader", "StaticEnSightGoldBinaryReader", 1,
61     vtkObjectFactoryCreatevtkStaticEnSightGoldBinaryReader);
62
63 #ifdef PARAVIEW_USE_MPI
64   this->RegisterOverride("vtkPUnstructuredGridGhostCellsGenerator",
65     "vtkStaticPUnstructuredGridGhostCellsGenerator", "StaticPUnstructuredGridGhostCellsGenerator",
66     1, vtkObjectFactoryCreatevtkStaticPUnstructuredGridGhostCellsGenerator);
67 #endif
68 }
69
70 vtkStaticMeshObjectFactory::~vtkStaticMeshObjectFactory()
71 {
72   vtkDebugMacro("Delete vtkStaticMeshObjectFactory");
73 }
74
75 void vtkStaticMeshObjectFactory::PrintSelf(ostream& os, vtkIndent indent)
76 {
77   os << indent << "VTK Static Mesh Extension Factory" << endl;
78 }
79
80 const char* vtkStaticMeshObjectFactory::GetVTKSourceVersion()
81 {
82   return VTK_SOURCE_VERSION;
83 }
84
85 const char* vtkStaticMeshObjectFactory::GetDescription()
86 {
87   return "VTK Static Mesh Extension Factory";
88 }
89
90 class StaticFactoryInitialize
91 {
92 public:
93   StaticFactoryInitialize()
94   {
95     bool hasStaticPluginFactory = false;
96     vtkObjectFactoryCollection* collection = vtkObjectFactory::GetRegisteredFactories();
97     collection->InitTraversal();
98     vtkObjectFactory* f = collection->GetNextItem();
99     while (f)
100     {
101       if (f->IsA("vtkStaticMeshObjectFactory"))
102       {
103         hasStaticPluginFactory = true;
104         break;
105       }
106       f = collection->GetNextItem();
107     }
108     if (!hasStaticPluginFactory)
109     {
110       vtkStaticMeshObjectFactory* instance = vtkStaticMeshObjectFactory::New();
111       vtkObjectFactory::RegisterFactory(instance);
112       instance->Delete();
113     }
114   }
115
116   virtual ~StaticFactoryInitialize()
117   {
118     vtkObjectFactoryCollection* collection = vtkObjectFactory::GetRegisteredFactories();
119     collection->InitTraversal();
120     vtkObjectFactory* f;
121     while ((f = collection->GetNextItem()))
122     {
123       if (f->IsA("vtkStaticMeshObjectFactory"))
124       {
125         vtkObjectFactory::UnRegisterFactory(f);
126         break;
127       }
128     }
129   }
130 };
131
132 static StaticFactoryInitialize StaticFactory;