bitMaskAttribute.I 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. // Filename: bitMaskAttribute.I
  2. // Created by: drose (08Jun00)
  3. //
  4. ////////////////////////////////////////////////////////////////////
  5. #include <indent.h>
  6. template<class MaskType>
  7. TypeHandle BitMaskAttribute<MaskType>::_type_handle;
  8. ////////////////////////////////////////////////////////////////////
  9. // Function: BitMaskAttribute::Constructor
  10. // Access: Public
  11. // Description:
  12. ////////////////////////////////////////////////////////////////////
  13. template<class MaskType>
  14. INLINE BitMaskAttribute<MaskType>::
  15. BitMaskAttribute() {
  16. }
  17. ////////////////////////////////////////////////////////////////////
  18. // Function: BitMaskAttribute::Constructor
  19. // Access: Public
  20. // Description:
  21. ////////////////////////////////////////////////////////////////////
  22. template<class MaskType>
  23. INLINE BitMaskAttribute<MaskType>::
  24. BitMaskAttribute(const MaskType &mask) :
  25. _mask(mask)
  26. {
  27. }
  28. ////////////////////////////////////////////////////////////////////
  29. // Function: BitMaskAttribute::Copy Constructor
  30. // Access: Public
  31. // Description:
  32. ////////////////////////////////////////////////////////////////////
  33. template<class MaskType>
  34. INLINE BitMaskAttribute<MaskType>::
  35. BitMaskAttribute(const BitMaskAttribute &copy) :
  36. NodeAttribute(copy),
  37. _mask(copy._mask)
  38. {
  39. }
  40. ////////////////////////////////////////////////////////////////////
  41. // Function: BitMaskAttribute::Copy Assignment Operator
  42. // Access: Public
  43. // Description:
  44. ////////////////////////////////////////////////////////////////////
  45. template<class MaskType>
  46. INLINE void BitMaskAttribute<MaskType>::
  47. operator = (const BitMaskAttribute &copy) {
  48. NodeAttribute::operator = (copy);
  49. _mask = copy._mask;
  50. }
  51. ////////////////////////////////////////////////////////////////////
  52. // Function: BitMaskAttribute::set_mask
  53. // Access: Public
  54. // Description:
  55. ////////////////////////////////////////////////////////////////////
  56. template<class MaskType>
  57. INLINE void BitMaskAttribute<MaskType>::
  58. set_mask(const MaskType &mask) {
  59. _mask = mask;
  60. }
  61. ////////////////////////////////////////////////////////////////////
  62. // Function: BitMaskAttribute::get_maskType
  63. // Access: Public
  64. // Description:
  65. ////////////////////////////////////////////////////////////////////
  66. template<class MaskType>
  67. INLINE const MaskType &BitMaskAttribute<MaskType>::
  68. get_mask() const {
  69. return _mask;
  70. }
  71. ////////////////////////////////////////////////////////////////////
  72. // Function: BitMaskAttribute::output
  73. // Access: Public, Virtual
  74. // Description:
  75. ////////////////////////////////////////////////////////////////////
  76. template<class MaskType>
  77. void BitMaskAttribute<MaskType>::
  78. output(ostream &out) const {
  79. out << _mask;
  80. }
  81. ////////////////////////////////////////////////////////////////////
  82. // Function: BitMaskAttribute::internal_compare_to
  83. // Access: Public, Virtual
  84. // Description:
  85. ////////////////////////////////////////////////////////////////////
  86. template<class MaskType>
  87. int BitMaskAttribute<MaskType>::
  88. internal_compare_to(const NodeAttribute *other) const {
  89. const BitMaskAttribute *ot;
  90. DCAST_INTO_R(ot, other, false);
  91. return _mask.compare_to(ot->_mask);
  92. }