WeakArray.inl.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. // Copyright (C) 2009-2022, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #include <AnKi/Util/WeakArray.h>
  6. #include <AnKi/Util/DynamicArray.h>
  7. namespace anki {
  8. template<typename T, typename TSize>
  9. WeakArray<T, TSize>::WeakArray(DynamicArray<T, TSize>& arr)
  10. : WeakArray()
  11. {
  12. if(arr.getSize())
  13. {
  14. m_data = &arr[0];
  15. m_size = arr.getSize();
  16. }
  17. }
  18. template<typename T, typename TSize>
  19. WeakArray<T, TSize>::WeakArray(DynamicArrayAuto<T, TSize>& arr)
  20. : WeakArray()
  21. {
  22. if(arr.getSize())
  23. {
  24. m_data = &arr[0];
  25. m_size = arr.getSize();
  26. }
  27. }
  28. template<typename T, typename TSize>
  29. WeakArray<T, TSize>& WeakArray<T, TSize>::operator=(DynamicArray<T, TSize>& arr)
  30. {
  31. m_data = (arr.getSize()) ? &arr[0] : nullptr;
  32. m_size = arr.getSize();
  33. return *this;
  34. }
  35. template<typename T, typename TSize>
  36. WeakArray<T, TSize>& WeakArray<T, TSize>::operator=(DynamicArrayAuto<T, TSize>& arr)
  37. {
  38. m_data = (arr.getSize()) ? &arr[0] : nullptr;
  39. m_size = arr.getSize();
  40. return *this;
  41. }
  42. template<typename T, typename TSize>
  43. ConstWeakArray<T, TSize>::ConstWeakArray(const DynamicArray<T, TSize>& arr)
  44. : ConstWeakArray()
  45. {
  46. if(arr.getSize())
  47. {
  48. m_data = &arr[0];
  49. m_size = arr.getSize();
  50. }
  51. }
  52. template<typename T, typename TSize>
  53. ConstWeakArray<T, TSize>::ConstWeakArray(const DynamicArrayAuto<T, TSize>& arr)
  54. : ConstWeakArray()
  55. {
  56. if(arr.getSize())
  57. {
  58. m_data = &arr[0];
  59. m_size = arr.getSize();
  60. }
  61. }
  62. template<typename T, typename TSize>
  63. ConstWeakArray<T, TSize>& ConstWeakArray<T, TSize>::operator=(const DynamicArray<T, TSize>& arr)
  64. {
  65. m_data = (arr.getSize()) ? &arr[0] : nullptr;
  66. m_size = arr.getSize();
  67. return *this;
  68. }
  69. template<typename T, typename TSize>
  70. ConstWeakArray<T, TSize>& ConstWeakArray<T, TSize>::operator=(const DynamicArrayAuto<T, TSize>& arr)
  71. {
  72. m_data = (arr.getSize()) ? &arr[0] : nullptr;
  73. m_size = arr.getSize();
  74. return *this;
  75. }
  76. } // end namespace anki