Go to the documentation of this file.
35 #if defined(_MSC_VER) && _MSC_VER <= 1400
36 # error VTK requires MSVC++ 9.0 aka Visual Studio 2008 or newer
39 #if defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 1))
40 # error VTK requires gcc 4.1 or newer
47 #define vtkInternalQuoteMacro(x) #x
48 #define vtkQuoteMacro(x) vtkInternalQuoteMacro(x)
51 #define vtkImageScalarTypeNameMacro(type) \
52 (((type) == VTK_VOID) ? "void" : \
53 (((type) == VTK_BIT) ? "bit" : \
54 (((type) == VTK_CHAR) ? "char" : \
55 (((type) == VTK_SIGNED_CHAR) ? "signed char" : \
56 (((type) == VTK_UNSIGNED_CHAR) ? "unsigned char" : \
57 (((type) == VTK_SHORT) ? "short" : \
58 (((type) == VTK_UNSIGNED_SHORT) ? "unsigned short" : \
59 (((type) == VTK_INT) ? "int" : \
60 (((type) == VTK_UNSIGNED_INT) ? "unsigned int" : \
61 (((type) == VTK_LONG) ? "long" : \
62 (((type) == VTK_UNSIGNED_LONG) ? "unsigned long" : \
63 (((type) == VTK_LONG_LONG) ? "long long" : \
64 (((type) == VTK_UNSIGNED_LONG_LONG) ? "unsigned long long" : \
65 (((type) == VTK___INT64) ? "__int64" : \
66 (((type) == VTK_UNSIGNED___INT64) ? "unsigned __int64" : \
67 (((type) == VTK_FLOAT) ? "float" : \
68 (((type) == VTK_DOUBLE) ? "double" : \
69 (((type) == VTK_ID_TYPE) ? "idtype" : \
70 (((type) == VTK_STRING) ? "string" : \
71 (((type) == VTK_UNICODE_STRING) ? "unicode string" : \
72 (((type) == VTK_VARIANT) ? "variant" : \
73 (((type) == VTK_OBJECT) ? "object" : \
74 "Undefined"))))))))))))))))))))))
79 #define vtkSetMacro(name,type) \
80 virtual void Set##name (type _arg) \
82 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting " #name " to " << _arg); \
83 if (this->name != _arg) \
93 #define vtkGetMacro(name,type) \
94 virtual type Get##name () { \
95 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning " << #name " of " << this->name ); \
104 #define vtkSetStringMacro(name) \
105 virtual void Set##name (const char* _arg) \
107 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting " << #name " to " << (_arg?_arg:"(null)") ); \
108 if ( this->name == NULL && _arg == NULL) { return;} \
109 if ( this->name && _arg && (!strcmp(this->name,_arg))) { return;} \
110 delete [] this->name; \
113 size_t n = strlen(_arg) + 1; \
114 char *cp1 = new char[n]; \
115 const char *cp2 = (_arg); \
117 do { *cp1++ = *cp2++; } while ( --n ); \
130 #define vtkGetStringMacro(name) \
131 virtual char* Get##name () { \
132 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning " << #name " of " << (this->name?this->name:"(null)")); \
143 #define vtkSetClampMacro(name,type,min,max) \
144 virtual void Set##name (type _arg) \
146 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting " << #name " to " << _arg ); \
147 if (this->name != (_arg<min?min:(_arg>max?max:_arg))) \
149 this->name = (_arg<min?min:(_arg>max?max:_arg)); \
153 virtual type Get##name##MinValue () \
157 virtual type Get##name##MaxValue () \
169 #define vtkSetObjectBodyMacro(name,type,args) \
171 vtkDebugMacro(<< this->GetClassName() << " (" << this \
172 << "): setting " << #name " to " << args ); \
173 if (this->name != args) \
175 type* tempSGMacroVar = this->name; \
177 if (this->name != NULL) { this->name->Register(this); } \
178 if (tempSGMacroVar != NULL) \
180 tempSGMacroVar->UnRegister(this); \
191 #define vtkSetObjectMacro(name,type) \
192 virtual void Set##name (type* _arg) \
194 vtkSetObjectBodyMacro(name,type,_arg); \
206 #define vtkSetObjectImplementationMacro(class,name,type) \
207 vtkCxxSetObjectMacro(class,name,type)
209 #define vtkCxxSetObjectMacro(class,name,type) \
210 void class::Set##name (type* _arg) \
212 vtkSetObjectBodyMacro(name,type,_arg); \
219 #define vtkGetNewMacro(name,type) \
220 virtual type *Get##name () \
222 vtkDebugMacro(<< this->GetClassName() << " (" << this \
223 << "): returning " #name " address " \
224 << this->name.GetPointer() ); \
225 return this->name.GetPointer(); \
232 #define vtkGetObjectMacro(name,type) \
233 virtual type *Get##name () \
235 vtkDebugMacro(<< this->GetClassName() << " (" << this \
236 << "): returning " #name " address " << this->name ); \
244 #define vtkBooleanMacro(name,type) \
245 virtual void name##On () { this->Set##name(static_cast<type>(1));} \
246 virtual void name##Off () { this->Set##name(static_cast<type>(0));}
254 #define vtkSetVector2Macro(name,type) \
255 virtual void Set##name (type _arg1, type _arg2) \
257 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting " << #name " to (" << _arg1 << "," << _arg2 << ")"); \
258 if ((this->name[0] != _arg1)||(this->name[1] != _arg2)) \
260 this->name[0] = _arg1; \
261 this->name[1] = _arg2; \
265 void Set##name (type _arg[2]) \
267 this->Set##name (_arg[0], _arg[1]); \
270 #define vtkGetVector2Macro(name,type) \
271 virtual type *Get##name () \
273 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning " << #name " pointer " << this->name); \
276 virtual void Get##name (type &_arg1, type &_arg2) \
278 _arg1 = this->name[0]; \
279 _arg2 = this->name[1]; \
280 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning " << #name " = (" << _arg1 << "," << _arg2 << ")"); \
282 virtual void Get##name (type _arg[2]) \
284 this->Get##name (_arg[0], _arg[1]);\
287 #define vtkSetVector3Macro(name,type) \
288 virtual void Set##name (type _arg1, type _arg2, type _arg3) \
290 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting " << #name " to (" << _arg1 << "," << _arg2 << "," << _arg3 << ")"); \
291 if ((this->name[0] != _arg1)||(this->name[1] != _arg2)||(this->name[2] != _arg3)) \
293 this->name[0] = _arg1; \
294 this->name[1] = _arg2; \
295 this->name[2] = _arg3; \
299 virtual void Set##name (type _arg[3]) \
301 this->Set##name (_arg[0], _arg[1], _arg[2]);\
304 #define vtkGetVector3Macro(name,type) \
305 virtual type *Get##name () \
307 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning " << #name " pointer " << this->name); \
310 virtual void Get##name (type &_arg1, type &_arg2, type &_arg3) \
312 _arg1 = this->name[0]; \
313 _arg2 = this->name[1]; \
314 _arg3 = this->name[2]; \
315 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning " << #name " = (" << _arg1 << "," << _arg2 << "," << _arg3 << ")"); \
317 virtual void Get##name (type _arg[3]) \
319 this->Get##name (_arg[0], _arg[1], _arg[2]);\
322 #define vtkSetVector4Macro(name,type) \
323 virtual void Set##name (type _arg1, type _arg2, type _arg3, type _arg4) \
325 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting " << #name " to (" << _arg1 << "," << _arg2 << "," << _arg3 << "," << _arg4 << ")"); \
326 if ((this->name[0] != _arg1)||(this->name[1] != _arg2)||(this->name[2] != _arg3)||(this->name[3] != _arg4)) \
328 this->name[0] = _arg1; \
329 this->name[1] = _arg2; \
330 this->name[2] = _arg3; \
331 this->name[3] = _arg4; \
335 virtual void Set##name (type _arg[4]) \
337 this->Set##name (_arg[0], _arg[1], _arg[2], _arg[3]);\
341 #define vtkGetVector4Macro(name,type) \
342 virtual type *Get##name () \
344 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning " << #name " pointer " << this->name); \
347 virtual void Get##name (type &_arg1, type &_arg2, type &_arg3, type &_arg4) \
349 _arg1 = this->name[0]; \
350 _arg2 = this->name[1]; \
351 _arg3 = this->name[2]; \
352 _arg4 = this->name[3]; \
353 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning " << #name " = (" << _arg1 << "," << _arg2 << "," << _arg3 << "," << _arg4 << ")"); \
355 virtual void Get##name (type _arg[4]) \
357 this->Get##name (_arg[0], _arg[1], _arg[2], _arg[3]);\
360 #define vtkSetVector6Macro(name,type) \
361 virtual void Set##name (type _arg1, type _arg2, type _arg3, type _arg4, type _arg5, type _arg6) \
363 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting " << #name " to (" << _arg1 << "," << _arg2 << "," << _arg3 << "," << _arg4 << "," << _arg5 << "," << _arg6 << ")"); \
364 if ((this->name[0] != _arg1)||(this->name[1] != _arg2)||(this->name[2] != _arg3)||(this->name[3] != _arg4)||(this->name[4] != _arg5)||(this->name[5] != _arg6)) \
366 this->name[0] = _arg1; \
367 this->name[1] = _arg2; \
368 this->name[2] = _arg3; \
369 this->name[3] = _arg4; \
370 this->name[4] = _arg5; \
371 this->name[5] = _arg6; \
375 virtual void Set##name (type _arg[6]) \
377 this->Set##name (_arg[0], _arg[1], _arg[2], _arg[3], _arg[4], _arg[5]);\
380 #define vtkGetVector6Macro(name,type) \
381 virtual type *Get##name () \
383 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning " << #name " pointer " << this->name); \
386 virtual void Get##name (type &_arg1, type &_arg2, type &_arg3, type &_arg4, type &_arg5, type &_arg6) \
388 _arg1 = this->name[0]; \
389 _arg2 = this->name[1]; \
390 _arg3 = this->name[2]; \
391 _arg4 = this->name[3]; \
392 _arg5 = this->name[4]; \
393 _arg6 = this->name[5]; \
394 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning " << #name " = (" << _arg1 << "," << _arg2 << "," << _arg3 << "," << _arg4 << "," << _arg5 <<"," << _arg6 << ")"); \
396 virtual void Get##name (type _arg[6]) \
398 this->Get##name (_arg[0], _arg[1], _arg[2], _arg[3], _arg[4], _arg[5]);\
406 #define vtkSetVectorMacro(name,type,count) \
407 virtual void Set##name(type data[]) \
410 for (i=0; i<count; i++) { if ( data[i] != this->name[i] ) { break; }} \
413 for (i=0; i<count; i++) { this->name[i] = data[i]; }\
424 #define vtkGetVectorMacro(name,type,count) \
425 virtual type *Get##name () \
427 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning " << #name " pointer " << this->name); \
430 virtual void Get##name (type data[count]) \
432 for (int i=0; i<count; i++) { data[i] = this->name[i]; }\
450 #define vtkGenericWarningMacro(x) \
451 { if (vtkObject::GetGlobalWarningDisplay()) { \
452 vtkOStreamWrapper::EndlType endl; \
453 vtkOStreamWrapper::UseEndl(endl); \
454 vtkOStrStreamWrapper vtkmsg; \
455 vtkmsg << "Generic Warning: In " __FILE__ ", line " << __LINE__ << "\n" x \
457 vtkOutputWindowDisplayGenericWarningText(vtkmsg.str());\
458 vtkmsg.rdbuf()->freeze(0);}}
464 #define vtkDebugMacro(x) \
465 vtkDebugWithObjectMacro(this,x)
471 #define vtkWarningMacro(x) \
472 vtkWarningWithObjectMacro(this,x)
478 #define vtkErrorMacro(x) \
479 vtkErrorWithObjectMacro(this,x)
485 #define vtkErrorWithObjectMacro(self, x) \
487 if (vtkObject::GetGlobalWarningDisplay()) \
489 vtkOStreamWrapper::EndlType endl; \
490 vtkOStreamWrapper::UseEndl(endl); \
491 vtkOStrStreamWrapper vtkmsg; \
492 vtkmsg << "ERROR: In " __FILE__ ", line " << __LINE__ \
493 << "\n" << self->GetClassName() << " (" << self \
494 << "): " x << "\n\n"; \
495 if ( self->HasObserver("ErrorEvent") ) \
497 self->InvokeEvent("ErrorEvent", vtkmsg.str()); \
501 vtkOutputWindowDisplayErrorText(vtkmsg.str()); \
503 vtkmsg.rdbuf()->freeze(0); vtkObject::BreakOnError(); \
511 #define vtkWarningWithObjectMacro(self, x) \
513 if (vtkObject::GetGlobalWarningDisplay()) \
515 vtkOStreamWrapper::EndlType endl; \
516 vtkOStreamWrapper::UseEndl(endl); \
517 vtkOStrStreamWrapper vtkmsg; \
518 vtkmsg << "Warning: In " __FILE__ ", line " << __LINE__ \
519 << "\n" << self->GetClassName() << " (" << self \
520 << "): " x << "\n\n"; \
521 if ( self->HasObserver("WarningEvent") ) \
523 self->InvokeEvent("WarningEvent", vtkmsg.str()); \
527 vtkOutputWindowDisplayWarningText(vtkmsg.str()); \
529 vtkmsg.rdbuf()->freeze(0); \
534 # define vtkDebugWithObjectMacro(self, x)
536 # define vtkDebugWithObjectMacro(self, x) \
538 if (self->GetDebug() && vtkObject::GetGlobalWarningDisplay()) \
540 vtkOStreamWrapper::EndlType endl; \
541 vtkOStreamWrapper::UseEndl(endl); \
542 vtkOStrStreamWrapper vtkmsg; \
543 vtkmsg << "Debug: In " __FILE__ ", line " << __LINE__ << "\n" \
544 << self->GetClassName() << " (" << self << "): " x << "\n\n"; \
545 vtkOutputWindowDisplayDebugText(vtkmsg.str()); \
546 vtkmsg.rdbuf()->freeze(0); \
557 #define vtkNotUsed(x)
567 #define vtkMaybeUnused(reason) __attribute__((unused))
569 #define vtkMaybeUnused(reason)
572 #define vtkWorldCoordinateMacro(name) \
573 virtual vtkCoordinate *Get##name##Coordinate () \
575 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning " #name "Coordinate address " << this->name##Coordinate ); \
576 return this->name##Coordinate; \
578 virtual void Set##name(double x[3]) {this->Set##name(x[0],x[1],x[2]);} \
579 virtual void Set##name(double x, double y, double z) \
581 this->name##Coordinate->SetValue(x,y,z); \
583 virtual double *Get##name() \
585 return this->name##Coordinate->GetValue(); \
588 #define vtkViewportCoordinateMacro(name) \
589 virtual vtkCoordinate *Get##name##Coordinate () \
591 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning " #name "Coordinate address " << this->name##Coordinate ); \
592 return this->name##Coordinate; \
594 virtual void Set##name(double x[2]) {this->Set##name(x[0],x[1]);} \
595 virtual void Set##name(double x, double y) \
597 this->name##Coordinate->SetValue(x,y); \
599 virtual double *Get##name() \
601 return this->name##Coordinate->GetValue(); \
606 #define vtkAbstractTypeMacroWithNewInstanceType(thisClass,superclass,instanceType) \
607 typedef superclass Superclass; \
609 virtual const char* GetClassNameInternal() const { return #thisClass; } \
611 static int IsTypeOf(const char *type) \
613 if ( !strcmp(#thisClass,type) ) \
617 return superclass::IsTypeOf(type); \
619 virtual int IsA(const char *type) \
621 return this->thisClass::IsTypeOf(type); \
623 static thisClass* SafeDownCast(vtkObjectBase *o) \
625 if ( o && o->IsA(#thisClass) ) \
627 return static_cast<thisClass *>(o); \
631 instanceType *NewInstance() const \
633 return instanceType::SafeDownCast(this->NewInstanceInternal()); \
637 #define vtkAbstractTypeMacro(thisClass,superclass) \
638 vtkAbstractTypeMacroWithNewInstanceType(thisClass, superclass, thisClass)
642 #define vtkTypeMacro(thisClass,superclass) \
643 vtkAbstractTypeMacro(thisClass, superclass) \
645 virtual vtkObjectBase *NewInstanceInternal() const \
647 return thisClass::New(); \
654 #define vtkInstantiatorNewMacro(thisClass) \
655 extern vtkObject* vtkInstantiator##thisClass##New(); \
656 vtkObject* vtkInstantiator##thisClass##New() \
658 return thisClass::New(); \
671 #define vtkTemplateMacroCase(typeN, type, call) \
672 case typeN: { typedef type VTK_TT; call; }; break
673 #define vtkTemplateMacro(call) \
674 vtkTemplateMacroCase(VTK_DOUBLE, double, call); \
675 vtkTemplateMacroCase(VTK_FLOAT, float, call); \
676 vtkTemplateMacroCase_ll(VTK_LONG_LONG, long long, call) \
677 vtkTemplateMacroCase_ll(VTK_UNSIGNED_LONG_LONG, unsigned long long, call) \
678 vtkTemplateMacroCase_si64(VTK___INT64, __int64, call) \
679 vtkTemplateMacroCase_ui64(VTK_UNSIGNED___INT64, unsigned __int64, call) \
680 vtkTemplateMacroCase(VTK_ID_TYPE, vtkIdType, call); \
681 vtkTemplateMacroCase(VTK_LONG, long, call); \
682 vtkTemplateMacroCase(VTK_UNSIGNED_LONG, unsigned long, call); \
683 vtkTemplateMacroCase(VTK_INT, int, call); \
684 vtkTemplateMacroCase(VTK_UNSIGNED_INT, unsigned int, call); \
685 vtkTemplateMacroCase(VTK_SHORT, short, call); \
686 vtkTemplateMacroCase(VTK_UNSIGNED_SHORT, unsigned short, call); \
687 vtkTemplateMacroCase(VTK_CHAR, char, call); \
688 vtkTemplateMacroCase(VTK_SIGNED_CHAR, signed char, call); \
689 vtkTemplateMacroCase(VTK_UNSIGNED_CHAR, unsigned char, call)
692 #define vtkExtendedTemplateMacro(call) \
693 vtkTemplateMacro(call); \
694 vtkTemplateMacroCase(VTK_STRING, vtkStdString, call)
716 #define vtkArrayIteratorTemplateMacroCase(typeN, type, call) \
717 vtkTemplateMacroCase(typeN, vtkArrayIteratorTemplate<type>, call)
718 #define vtkArrayIteratorTemplateMacro(call) \
719 vtkArrayIteratorTemplateMacroCase(VTK_DOUBLE, double, call); \
720 vtkArrayIteratorTemplateMacroCase(VTK_FLOAT, float, call); \
721 vtkArrayIteratorTemplateMacroCase_ll(VTK_LONG_LONG, long long, call); \
722 vtkArrayIteratorTemplateMacroCase_ll(VTK_UNSIGNED_LONG_LONG, unsigned long long, call);\
723 vtkArrayIteratorTemplateMacroCase_si64(VTK___INT64, __int64, call); \
724 vtkArrayIteratorTemplateMacroCase_ui64(VTK_UNSIGNED___INT64, unsigned __int64, call); \
725 vtkArrayIteratorTemplateMacroCase(VTK_ID_TYPE, vtkIdType, call); \
726 vtkArrayIteratorTemplateMacroCase(VTK_LONG, long, call); \
727 vtkArrayIteratorTemplateMacroCase(VTK_UNSIGNED_LONG, unsigned long, call); \
728 vtkArrayIteratorTemplateMacroCase(VTK_INT, int, call); \
729 vtkArrayIteratorTemplateMacroCase(VTK_UNSIGNED_INT, unsigned int, call); \
730 vtkArrayIteratorTemplateMacroCase(VTK_SHORT, short, call); \
731 vtkArrayIteratorTemplateMacroCase(VTK_UNSIGNED_SHORT, unsigned short, call); \
732 vtkArrayIteratorTemplateMacroCase(VTK_CHAR, char, call); \
733 vtkArrayIteratorTemplateMacroCase(VTK_SIGNED_CHAR, signed char, call); \
734 vtkArrayIteratorTemplateMacroCase(VTK_UNSIGNED_CHAR, unsigned char, call); \
735 vtkArrayIteratorTemplateMacroCase(VTK_STRING, vtkStdString, call); \
736 vtkTemplateMacroCase(VTK_BIT, vtkBitArrayIterator, call);
739 #if defined(VTK_TYPE_USE_LONG_LONG)
740 # define vtkTemplateMacroCase_ll(typeN, type, call) \
741 vtkTemplateMacroCase(typeN, type, call);
742 # define vtkArrayIteratorTemplateMacroCase_ll(typeN, type, call) \
743 vtkArrayIteratorTemplateMacroCase(typeN, type, call)
745 # define vtkTemplateMacroCase_ll(typeN, type, call)
746 # define vtkArrayIteratorTemplateMacroCase_ll(typeN, type, call)
750 #if defined(VTK_TYPE_USE___INT64)
751 # define vtkTemplateMacroCase_si64(typeN, type, call) \
752 vtkTemplateMacroCase(typeN, type, call);
753 # define vtkArrayIteratorTemplateMacroCase_si64(typeN, type, call) \
754 vtkArrayIteratorTemplateMacroCase(typeN, type, call)
756 # define vtkTemplateMacroCase_si64(typeN, type, call)
757 # define vtkArrayIteratorTemplateMacroCase_si64(typeN, type, call)
762 #if defined(VTK_TYPE_USE___INT64) && defined(VTK_TYPE_CONVERT_UI64_TO_DOUBLE)
763 # define vtkTemplateMacroCase_ui64(typeN, type, call) \
764 vtkTemplateMacroCase(typeN, type, call);
765 # define vtkArrayIteratorTemplateMacroCase_ui64(typeN, type, call) \
766 vtkArrayIteratorTemplateMacroCase(typeN, type, call);
768 # define vtkTemplateMacroCase_ui64(typeN, type, call)
769 # define vtkArrayIteratorTemplateMacroCase_ui64(typeN, type, call)
780 #if defined(VTK_LEGACY_REMOVE)
786 # define VTK_LEGACY(method) VTK_LEGACY__0(method,__LINE__)
787 # define VTK_LEGACY__0(method,line) VTK_LEGACY__1(method,line)
788 # define VTK_LEGACY__1(method,line) class vtkLegacyMethodRemoved##line
790 #elif defined(VTK_LEGACY_SILENT) || defined(VTK_WRAPPING_CXX)
792 # define VTK_LEGACY(method) method
796 # if defined(__GNUC__) && !defined(__INTEL_COMPILER)
797 # define VTK_LEGACY(method) method __attribute__((deprecated))
798 # elif defined(_MSC_VER)
799 # define VTK_LEGACY(method) __declspec(deprecated) method
801 # define VTK_LEGACY(method) method
822 #if defined(VTK_LEGACY_REMOVE) || defined(VTK_LEGACY_SILENT)
823 # define VTK_LEGACY_BODY(method, version)
824 # define VTK_LEGACY_REPLACED_BODY(method, version, replace)
826 # define VTK_LEGACY_BODY(method, version) \
827 vtkGenericWarningMacro(#method " was deprecated for " version " and will be removed in a future version.")
828 # define VTK_LEGACY_REPLACED_BODY(method, version, replace) \
829 vtkGenericWarningMacro(#method " was deprecated for " version " and will be removed in a future version. Use " #replace " instead.")
834 #define VTK_WRAP_EXTERN
841 #if __cplusplus >= 201103L && defined(__has_warning)
842 # if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
843 # define VTK_FALLTHROUGH [[clang::fallthrough]]
847 #ifndef VTK_FALLTHROUGH
848 # define VTK_FALLTHROUGH ((void)0)
#define VTKCOMMONCORE_EXPORT
VTKCOMMONCORE_EXPORT void vtkOutputWindowDisplayErrorText(const char *)
VTKCOMMONCORE_EXPORT void vtkOutputWindowDisplayWarningText(const char *)
VTKCOMMONCORE_EXPORT void vtkOutputWindowDisplayGenericWarningText(const char *)
VTKCOMMONCORE_EXPORT void vtkOutputWindowDisplayDebugText(const char *)
VTKCOMMONCORE_EXPORT void vtkOutputWindowDisplayText(const char *)