/src/aerys/minko/scene/data/MeshVisibilityDataProvider.as

https://bitbucket.org/HopeSky/mars_nd2d · ActionScript · 92 lines · 79 code · 13 blank · 0 comment · 6 complexity · ffb592bece9daf30149d0e006c11224d MD5 · raw file

  1. package aerys.minko.scene.data
  2. {
  3. import aerys.minko.type.Signal;
  4. import aerys.minko.type.binding.IDataProvider;
  5. import aerys.minko.type.enum.DataProviderUsage;
  6. public final class MeshVisibilityDataProvider implements IDataProvider
  7. {
  8. private static const DATA_DESCRIPTOR : Object = {
  9. 'visible' : 'visible',
  10. 'frustumCulling' : 'frustumCulling',
  11. 'inFrustum' : 'insideFrustum'
  12. };
  13. private var _visible : Boolean = true;
  14. private var _frustumCulling : uint = 0;
  15. private var _inFrustum : Boolean = true;
  16. private var _changed : Signal = new Signal('MeshVisibilityDataProvider.changed');
  17. private var _propertyChanged : Signal = new Signal('MeshVisibilityDataProvider.propertyChanged');
  18. public function get usage() : uint
  19. {
  20. return DataProviderUsage.EXCLUSIVE;
  21. }
  22. public function get visible() : Boolean
  23. {
  24. return _visible;
  25. }
  26. public function set visible(value : Boolean) : void
  27. {
  28. if (_visible != value)
  29. {
  30. _visible = value;
  31. _changed.execute(this, 'visible');
  32. }
  33. }
  34. public function get frustumCulling() : uint
  35. {
  36. return _frustumCulling;
  37. }
  38. public function set frustumCulling(value : uint) : void
  39. {
  40. if (_frustumCulling != value)
  41. {
  42. _frustumCulling = value;
  43. _changed.execute(this, 'frustumCulling');
  44. }
  45. }
  46. public function get inFrustum() : Boolean
  47. {
  48. return _inFrustum;
  49. }
  50. public function set inFrustum(value : Boolean) : void
  51. {
  52. if (_inFrustum != value)
  53. {
  54. _inFrustum = value;
  55. _changed.execute(this, 'inFrustum');
  56. }
  57. }
  58. public function get propertyChanged() : Signal
  59. {
  60. return _propertyChanged;
  61. }
  62. public function get changed() : Signal
  63. {
  64. return _changed;
  65. }
  66. public function get dataDescriptor() : Object
  67. {
  68. return DATA_DESCRIPTOR;
  69. }
  70. public function clone() : IDataProvider
  71. {
  72. var clone : MeshVisibilityDataProvider = new MeshVisibilityDataProvider();
  73. clone.visible = visible;
  74. clone.frustumCulling = frustumCulling;
  75. clone.inFrustum = inFrustum;
  76. return clone;
  77. }
  78. }
  79. }