43 #ifndef __vtkObjectFactory_h
44 #define __vtkObjectFactory_h
64 static vtkObject* CreateInstance(
const char* vtkclassname);
70 static void CreateAllInstance(
const char* vtkclassname,
84 static void UnRegisterAllFactories();
93 static int HasOverrideAny(
const char* className);
98 static void GetOverrideInformation(
const char* name,
105 static void SetAllEnableFlags(
int flag,
106 const char* className);
110 static void SetAllEnableFlags(
int flag,
111 const char* className,
112 const char* subclassName);
128 virtual const char* GetVTKSourceVersion() = 0;
131 virtual const char* GetDescription() = 0;
134 virtual int GetNumberOfOverrides();
137 virtual const char* GetClassOverrideName(
int index);
141 virtual const char* GetClassOverrideWithName(
int index);
144 virtual int GetEnableFlag(
int index);
147 virtual const char* GetOverrideDescription(
int index);
152 virtual void SetEnableFlag(
int flag,
153 const char* className,
154 const char* subclassName);
155 virtual int GetEnableFlag(
const char* className,
156 const char* subclassName);
161 virtual int HasOverride(
const char* className);
164 virtual int HasOverride(
const char* className,
const char* subclassName);
169 virtual void Disable(
const char* className);
173 vtkGetStringMacro(LibraryPath);
184 void RegisterOverride(
const char* classOverride,
185 const char* overrideClassName,
186 const char* description,
188 CreateFunction createFunction);
197 virtual vtkObject* CreateObject(
const char* vtkclassname );
216 void GrowOverrideArray();
224 static void RegisterDefaults();
227 static void LoadDynamicFactories();
230 static void LoadLibrariesInPath(
const char*);
239 char* LibraryVTKVersion;
240 char* LibraryCompilerUsed;
250 #define VTK_CREATE_CREATE_FUNCTION(classname) \
251 static vtkObject* vtkObjectFactoryCreate##classname() \
252 { return classname::New(); }
256 #define VTK_FACTORY_INTERFACE_EXPORT VTK_ABI_EXPORT
263 #define VTK_FACTORY_INTERFACE_IMPLEMENT(factoryName) \
265 VTK_FACTORY_INTERFACE_EXPORT \
266 const char* vtkGetFactoryCompilerUsed() \
268 return VTK_CXX_COMPILER; \
271 VTK_FACTORY_INTERFACE_EXPORT \
272 const char* vtkGetFactoryVersion() \
274 return VTK_SOURCE_VERSION; \
277 VTK_FACTORY_INTERFACE_EXPORT \
278 vtkObjectFactory* vtkLoad() \
280 return factoryName ::New(); \
abstract base class for most VTK objects
virtual void PrintSelf(ostream &os, vtkIndent indent)
a simple class to control print indentation
OverrideInformation * OverrideArray
maintain a list of object factories
char ** OverrideClassNames
create and manipulate unsorted lists of objects
abstract base class for vtkObjectFactories