MLRCardCloud.hpp 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. //===========================================================================//
  2. // Copyright (C) Microsoft Corporation. All rights reserved. //
  3. //===========================================================================//
  4. #pragma once
  5. #define MLR_MLRCardCloud_HPP
  6. #if !defined(MLR_MLR_HPP)
  7. #include <MLR\MLR.hpp>
  8. #endif
  9. #if !defined(MLR_MLREFFECT_HPP)
  10. #include <MLR\MLREffect.hpp>
  11. #endif
  12. namespace MidLevelRenderer {
  13. //##########################################################################
  14. //####################### MLRCardCloud ###############################
  15. //##########################################################################
  16. class MLRCardCloud:
  17. public MLREffect
  18. {
  19. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  20. // Initialization
  21. //
  22. public:
  23. static void
  24. InitializeClass();
  25. static void
  26. TerminateClass();
  27. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  28. // Constructors/Destructors
  29. //
  30. public:
  31. MLRCardCloud(int);
  32. ~MLRCardCloud();
  33. void
  34. SetData(
  35. const int *count,
  36. const Stuff::Point3D *point_data,
  37. const Stuff::RGBAColor *color_data,
  38. const Vector2DScalar *uv_data
  39. );
  40. void
  41. SetData(
  42. const int *count,
  43. const Stuff::Point3D *point_data,
  44. const Stuff::RGBAColor *color_data
  45. );
  46. void Draw (DrawEffectInformation*, GOSVertexPool*, MLRSorter*);
  47. int Clip(MLRClippingState, GOSVertexPool*);
  48. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  49. // Class Data Support
  50. //
  51. public:
  52. static ClassData
  53. *DefaultData;
  54. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  55. // Testing
  56. //
  57. public:
  58. void
  59. TestInstance() const;
  60. protected:
  61. const int *usedNrOfCards;
  62. const Vector2DScalar *texCoords;
  63. static Stuff::DynamicArrayOf<MLRClippingState> *clipPerVertex; // , Max_Number_Vertices_Per_Mesh
  64. static Stuff::DynamicArrayOf<Stuff::Vector4D> *clipExtraCoords; // , Max_Number_Vertices_Per_Mesh
  65. static Stuff::DynamicArrayOf<Stuff::RGBAColor> *clipExtraColors; // , Max_Number_Vertices_Per_Mesh
  66. static Stuff::DynamicArrayOf<Vector2DScalar> *clipExtraTexCoords; // , Max_Number_Vertices_Per_Mesh
  67. static Stuff::DynamicArrayOf<int> *clipExtraLength; // , Max_Number_Primitives_Per_Frame
  68. };
  69. }