ImathForward.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. //
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. // Copyright Contributors to the OpenEXR Project.
  4. //
  5. #ifndef INCLUDED_IMATHFORWARD_H
  6. #define INCLUDED_IMATHFORWARD_H
  7. #include "ImathNamespace.h"
  8. #include "ImathExport.h"
  9. IMATH_INTERNAL_NAMESPACE_HEADER_ENTER
  10. /// @cond Doxygen_Suppress
  11. //
  12. // Basic template type declarations.
  13. //
  14. //
  15. // Note: declarations with attributes generate warnings with
  16. // -Wattributes or -Wall if the type is already defined, i.e. the
  17. // header is already included. To avoid the warning, only make the
  18. // forward declaration if the header has not yet been included.
  19. //
  20. #ifndef INCLUDED_IMATHBOX_H
  21. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Box;
  22. #endif
  23. #ifndef INCLUDED_IMATHCOLOR_H
  24. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Color3;
  25. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Color4;
  26. #endif
  27. #ifndef INCLUDED_IMATHEULER_H
  28. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Euler;
  29. #endif
  30. #ifndef INCLUDED_IMATHFRUSTUM_H
  31. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Frustum;
  32. #endif
  33. #ifndef INCLUDED_IMATHFRUSTUMTEST_H
  34. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE FrustumTest;
  35. #endif
  36. #ifndef INCLUDED_IMATHINTERVAL_H
  37. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Interval;
  38. #endif
  39. #ifndef INCLUDED_IMATHLINE_H
  40. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Line3;
  41. #endif
  42. #ifndef INCLUDED_IMATHMATRIX_H
  43. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Matrix33;
  44. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Matrix44;
  45. #endif
  46. #ifndef INCLUDED_IMATHPLANE_H
  47. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Plane3;
  48. #endif
  49. #ifndef INCLUDED_IMATHQUAT_H
  50. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Quat;
  51. #endif
  52. #ifndef INCLUDED_IMATHSHEAR_H
  53. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Shear6;
  54. #endif
  55. #ifndef INCLUDED_IMATHSPHERE_H
  56. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Sphere3;
  57. #endif
  58. #ifndef INCLUDED_IMATHVEC_H
  59. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2;
  60. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec3;
  61. template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec4;
  62. #endif
  63. #ifndef INCLUDED_IMATHRANDOM_H
  64. class IMATH_EXPORT_TYPE Rand32;
  65. class IMATH_EXPORT_TYPE Rand48;
  66. #endif
  67. /// @endcond
  68. IMATH_INTERNAL_NAMESPACE_HEADER_EXIT
  69. #endif // INCLUDED_IMATHFORWARD_H