NavBuildData.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // Copyright (c) 2008-2023 the Urho3D project
  2. // License: MIT
  3. #include "../Precompiled.h"
  4. #include "../Navigation/NavBuildData.h"
  5. #include <DetourTileCache/DetourTileCacheBuilder.h>
  6. #include <Recast/Recast.h>
  7. namespace Urho3D
  8. {
  9. NavBuildData::NavBuildData() :
  10. ctx_(new rcContext(true)),
  11. heightField_(nullptr),
  12. compactHeightField_(nullptr)
  13. {
  14. }
  15. NavBuildData::~NavBuildData()
  16. {
  17. delete(ctx_);
  18. ctx_ = nullptr;
  19. rcFreeHeightField(heightField_);
  20. heightField_ = nullptr;
  21. rcFreeCompactHeightfield(compactHeightField_);
  22. compactHeightField_ = nullptr;
  23. }
  24. SimpleNavBuildData::SimpleNavBuildData() :
  25. NavBuildData(),
  26. contourSet_(nullptr),
  27. polyMesh_(nullptr),
  28. polyMeshDetail_(nullptr)
  29. {
  30. }
  31. SimpleNavBuildData::~SimpleNavBuildData()
  32. {
  33. rcFreeContourSet(contourSet_);
  34. contourSet_ = nullptr;
  35. rcFreePolyMesh(polyMesh_);
  36. polyMesh_ = nullptr;
  37. rcFreePolyMeshDetail(polyMeshDetail_);
  38. polyMeshDetail_ = nullptr;
  39. }
  40. DynamicNavBuildData::DynamicNavBuildData(dtTileCacheAlloc* allocator) :
  41. NavBuildData(),
  42. contourSet_(nullptr),
  43. polyMesh_(nullptr),
  44. heightFieldLayers_(nullptr),
  45. alloc_(allocator)
  46. {
  47. assert(allocator);
  48. }
  49. DynamicNavBuildData::~DynamicNavBuildData()
  50. {
  51. dtFreeTileCacheContourSet(alloc_, contourSet_);
  52. contourSet_ = nullptr;
  53. dtFreeTileCachePolyMesh(alloc_, polyMesh_);
  54. polyMesh_ = nullptr;
  55. rcFreeHeightfieldLayerSet(heightFieldLayers_);
  56. heightFieldLayers_ = nullptr;
  57. }
  58. }