MLRNGonCloud.hpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. //===========================================================================//
  2. // Copyright (C) Microsoft Corporation. All rights reserved. //
  3. //===========================================================================//
  4. #pragma once
  5. #define MLR_MLRNGONCLOUD_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. //##################### MLRNGonCloud #############################
  15. //##########################################################################
  16. class MLRNGonCloud:
  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. MLRNGonCloud(int vertices, int number);
  32. ~MLRNGonCloud();
  33. void
  34. SetData(
  35. const int *count,
  36. const Stuff::Point3D *point_data,
  37. const Stuff::RGBAColor *color_data
  38. );
  39. void Draw (DrawEffectInformation*, GOSVertexPool*, MLRSorter*);
  40. int Clip(MLRClippingState, GOSVertexPool*);
  41. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  42. // Class Data Support
  43. //
  44. public:
  45. static ClassData
  46. *DefaultData;
  47. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  48. // Testing
  49. //
  50. public:
  51. void
  52. TestInstance() const;
  53. protected:
  54. int numOfVertices;
  55. const int *usedNrOfNGons;
  56. static Stuff::DynamicArrayOf<Stuff::RGBAColor> *clipExtraColors;
  57. Stuff::DynamicArrayOf<Stuff::RGBAColor> specialClipColors;
  58. static Stuff::DynamicArrayOf<MLRClippingState> *clipPerVertex;
  59. static Stuff::DynamicArrayOf<Stuff::Vector4D> *clipExtraCoords;
  60. static Stuff::DynamicArrayOf<int> *clipExtraLength;
  61. };
  62. }