1 /*=========================================================================
3 Program: Visualization Toolkit
4 Module: vtkStaticMeshObjectFactory.cxx
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
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.
14 =========================================================================*/
15 #include "vtkStaticMeshObjectFactory.h"
17 #include <vtkCollectionIterator.h>
18 #include <vtkObjectFactory.h>
19 #include <vtkObjectFactoryCollection.h>
20 #include <vtkVersion.h>
22 #include "vtkStaticDataSetSurfaceFilter.h"
23 #include "vtkStaticEnSight6BinaryReader.h"
24 #include "vtkStaticEnSight6Reader.h"
25 #include "vtkStaticEnSightGoldBinaryReader.h"
26 #include "vtkStaticEnSightGoldReader.h"
27 #include "vtkStaticPlaneCutter.h"
29 #ifdef PARAVIEW_USE_MPI
30 #include "vtkStaticPUnstructuredGridGhostCellsGenerator.h"
33 vtkStandardNewMacro(vtkStaticMeshObjectFactory);
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);
42 #ifdef PARAVIEW_USE_MPI
43 VTK_CREATE_CREATE_FUNCTION(vtkStaticPUnstructuredGridGhostCellsGenerator);
46 //-----------------------------------------------------------------------------
47 vtkStaticMeshObjectFactory::vtkStaticMeshObjectFactory()
49 this->RegisterOverride("vtkGeometryFilter", "vtkStaticDataSetSurfaceFilter",
50 "StaticDataSetSurfaceFilter", 1, vtkObjectFactoryCreatevtkStaticDataSetSurfaceFilter);
51 this->RegisterOverride("vtkPlaneCutter", "vtkStaticPlaneCutter", "StaticPlaneCutter", 1,
52 vtkObjectFactoryCreatevtkStaticPlaneCutter);
53 this->RegisterOverride("vtkEnSight6BinaryReader", "vtkStaticEnSight6BinaryReader",
54 "StaticEnSight6BinaryReader", 1, vtkObjectFactoryCreatevtkStaticEnSight6BinaryReader);
55 this->RegisterOverride("vtkEnSight6Reader", "vtkStaticEnSight6Reader", "StaticEnSight6Reader", 1,
56 vtkObjectFactoryCreatevtkStaticEnSight6Reader);
57 this->RegisterOverride("vtkEnSightGoldReader", "vtkStaticEnSight6BinaryReader",
58 "StaticEnSight6BinaryReader", 1, vtkObjectFactoryCreatevtkStaticEnSightGoldReader);
59 this->RegisterOverride("vtkEnSightGoldBinaryReader", "vtkStaticEnSightGoldBinaryReader",
60 "StaticEnSightGoldBinaryReader", 1, vtkObjectFactoryCreatevtkStaticEnSightGoldBinaryReader);
62 #ifdef PARAVIEW_USE_MPI
63 this->RegisterOverride("vtkPUnstructuredGridGhostCellsGenerator",
64 "vtkStaticPUnstructuredGridGhostCellsGenerator", "StaticPUnstructuredGridGhostCellsGenerator",
65 1, vtkObjectFactoryCreatevtkStaticPUnstructuredGridGhostCellsGenerator);
69 //-----------------------------------------------------------------------------
70 void vtkStaticMeshObjectFactory::PrintSelf(ostream& os, vtkIndent indent)
72 os << indent << this->GetDescription() << endl;
75 //-----------------------------------------------------------------------------
76 const char* vtkStaticMeshObjectFactory::GetVTKSourceVersion()
78 return VTK_SOURCE_VERSION;
81 //-----------------------------------------------------------------------------
82 const char* vtkStaticMeshObjectFactory::GetDescription()
84 return "VTK Static Mesh Extension Factory";
87 //-----------------------------------------------------------------------------
88 class StaticFactoryInitialize
91 StaticFactoryInitialize()
93 bool hasStaticPluginFactory = false;
94 vtkObjectFactoryCollection* collection = vtkObjectFactory::GetRegisteredFactories();
95 collection->InitTraversal();
97 while ((f = collection->GetNextItem()))
99 if (f->IsA("vtkStaticMeshObjectFactory"))
101 hasStaticPluginFactory = true;
105 if (!hasStaticPluginFactory)
107 vtkNew<vtkStaticMeshObjectFactory> instance;
108 vtkObjectFactory::RegisterFactory(instance);
112 virtual ~StaticFactoryInitialize()
114 vtkObjectFactoryCollection* collection = vtkObjectFactory::GetRegisteredFactories();
115 collection->InitTraversal();
117 while ((f = collection->GetNextItem()))
119 if (f->IsA("vtkStaticMeshObjectFactory"))
121 vtkObjectFactory::UnRegisterFactory(f);
128 static StaticFactoryInitialize StaticFactory;