home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Multimedia / k3d-setup-0.7.11.0.exe / include / k3d / k3dsdk / classes.h < prev    next >
C/C++ Source or Header  |  2008-01-23  |  6KB  |  113 lines

  1. #ifndef K3DSDK_CLASSES_H
  2. #define K3DSDK_CLASSES_H
  3.  
  4. // K-3D
  5. // Copyright (c) 1995-2006, Timothy M. Shead
  6. //
  7. // Contact: tshead@k-3d.com
  8. //
  9. // This program is free software; you can redistribute it and/or
  10. // modify it under the terms of the GNU General Public
  11. // License as published by the Free Software Foundation; either
  12. // version 2 of the License, or (at your option) any later version.
  13. //
  14. // This program is distributed in the hope that it will be useful,
  15. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  17. // General Public License for more details.
  18. //
  19. // You should have received a copy of the GNU General Public
  20. // License along with this program; if not, write to the Free Software
  21. // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  22.  
  23. /** \file
  24.         \brief Provides public definitions of a subset of commonly-used class IDs
  25.         \author Tim Shead (tshead@k-3d.com)
  26. */
  27.  
  28. #include "uuid.h"
  29.  
  30. namespace k3d
  31. {
  32.  
  33. // Forward declarations
  34. class iunknown;
  35.  
  36. namespace classes
  37. {
  38.  
  39. //////////////////////////////////////////////////////////////////////////////////////////////
  40. //////////////////////////////////////////////////////////////////////////////////////////////
  41. ////
  42. //// DO NOT ADD TO THIS LIST!!!
  43. ////
  44. //// You DO NOT have to add your objects' class IDs to this list to get them recognized
  45. //// by K-3D!  This list only defines the class IDs for a subset of commonly-used objects
  46. //// that need to be explicitly instantiated by other objects (like import plugins).
  47. ////
  48. //// In general, you should never care about an object's class ID - only its capabilities,
  49. //// as advertised by its interfaces!
  50. ////
  51. //// Never, never change the values of the class IDs in this list - they get serialized in
  52. //// documents, and are used to thaw out the correct object types!
  53. ////
  54. //// Now go call your mother!
  55. ////
  56. //////////////////////////////////////////////////////////////////////////////////////////////
  57. //////////////////////////////////////////////////////////////////////////////////////////////
  58.  
  59. /** \name Active class IDs */
  60. //@{
  61. inline const uuid Axes() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x00000001); }
  62. inline const uuid FileBitmap() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x00000003); }
  63. inline const uuid RenderManLight() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x0000001d); }
  64. inline const uuid RenderManMaterial() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x00000024); }
  65. inline const uuid Cone() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x00000064); }
  66. inline const uuid Cylinder() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x00000065); }
  67. inline const uuid Disk() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x00000066); }
  68. inline const uuid Hyperboloid() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x00000067); }
  69. inline const uuid Paraboloid() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x00000068); }
  70. inline const uuid Sphere() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x00000069); }
  71. inline const uuid Torus() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x0000006a); }
  72. inline const uuid PerlEngine() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x00000075); }
  73. inline const uuid PythonEngine() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x00000076); }
  74. inline const uuid ScalarBezierChannel() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x0000007c); }
  75. inline const uuid ColorBezierChannel() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x0000007d); }
  76. inline const uuid TIFFBitmapExporter() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x00000085); }
  77. inline const uuid FrozenMesh() { return uuid(0x305ceb88, 0x7cf34870, 0x8b5e673c, 0x636beab9); }
  78. inline const uuid MeshInstance() { return uuid(0x2c1d60a6, 0x863541a1, 0xbd649bd1, 0x1ea8ae24); }
  79. inline const uuid TimeSource() { return uuid(0x1978f1f7, 0x4a864c99, 0x8caf7cfc, 0xd2591baf); }
  80. inline const uuid OpenGLEngine() { return uuid(0x0059ba47, 0x7bf740f3, 0x93fb523d, 0x5899f22c); }
  81. inline const uuid RenderManEngine() { return uuid(0x0dc5e733, 0xfa684e05, 0x86a3865f, 0x42f7a99d); }
  82. inline const uuid RenderManDisplacementShader() { return uuid(0x62827bb7, 0x4cb64427, 0xa9eadbc8, 0x62e1a3f2); }
  83. inline const uuid RenderManImagerShader() { return uuid(0x91659033, 0xbd124ba0, 0x81eabb0a, 0xc5ecd094); }
  84. inline const uuid RenderManLightShader() { return uuid(0x830e867b, 0x7bc94c6c, 0x8d5087ee, 0x8aa35db2); }
  85. inline const uuid RenderManSurfaceShader() { return uuid(0xb553a3bd, 0xd1044c6e, 0xb3f21e07, 0x87132c31); }
  86. inline const uuid RenderManVolumeShader() { return uuid(0xfd07a255, 0x9bb84841, 0x87632abe, 0x3ceb9fc7); }
  87. inline const uuid Position() { return uuid(0xe2edd795, 0x08f9416a, 0x84139876, 0x9c25a60a); }
  88. inline const uuid Orientation() { return uuid(0xcf562348, 0x02624035, 0xae649a84, 0xf42e0b69); }
  89. inline const uuid Scale() { return uuid(0x542de0d6, 0xe1e94e4a, 0x883eb23c, 0x3612fb8a); }
  90. inline const uuid K3DScriptEngine() { return uuid(0x6598ab84, 0xfa0f48f2, 0xbc690f11, 0xe686e11b); }
  91. inline const uuid FrozenTransformation() { return uuid(0x6ea85710, 0x90da4d35, 0xacec30ee, 0xa6aacb9d); }
  92. inline const uuid Camera() { return uuid(0x45ce1872, 0xaf184b6d, 0xb391e136, 0x0dcfe8b5); }
  93. inline const uuid DocumentExporter() { return uuid(0x0cbc9131, 0x172541b2, 0xb424afab, 0x25143d55); }
  94. inline const uuid DocumentImporter() { return uuid(0xf02e8dac, 0xa57d4d76, 0xa6170c3a, 0x9bf09d3b); }
  95. inline const uuid AqsisDisplacementShaderLayer() { return uuid(0x1802dce3, 0x71004329, 0x80cbdf0e, 0xbc7f142c); }
  96. inline const uuid AqsisSurfaceShaderLayer() { return uuid(0x261e244e, 0xd82947ba, 0x9e56a9af, 0x03d4cc0f); }
  97. inline const uuid MultiMaterial() { return uuid(0x00000001, 0x00000002, 0x00000003, 0x00000004); }
  98. inline const uuid OpenGLMaterial() { return uuid(0x00000001, 0x00000002, 0x00000003, 0x00000005); }
  99. //@}
  100.  
  101. /** \name Inactive class IDs for plugins that have been removed */
  102. //@{
  103. inline const uuid JavaScriptEngine() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x00000048); }
  104. inline const uuid Transform() { return uuid(0x00000001, 0x00000000, 0x00000000, 0x00000081); }
  105. //@}
  106.  
  107. } // namespace classes
  108.  
  109. } // namespace k3d
  110.  
  111. #endif // !K3DSDK_CLASSES_H
  112.  
  113.