11#pragma once
22#include < functional>
33#define WIN32_LEAN_AND_MEAN
4+ #include < map>
45#include < windows.h>
5- #include " ../model/ZPathfinding .h"
6+ #include " ../model/Json .h"
67
78class Scene {
89public:
@@ -18,26 +19,32 @@ class Scene {
1819
1920 void setLastSaveFileName (char *file_name);
2021
21- void loadScene (const std::string &fileName, const std::function<void ()> &callback,
22- const std::function<void()> &errorCallback);
23-
24- void saveScene (char *fileName) const ;
22+ void saveScene (const std::string& fileName) const ;
2523
2624 void handleOpenSceneClicked ();
2725
2826 void handleSaveSceneClicked ();
2927
30- void loadMeshes (const std::function<void ()> &errorCallback,
31- simdjson::simdjson_result<simdjson::ondemand::document> &jsonDocument);
32-
33- void loadPfBoxes (const std::function<void ()> &errorCallback,
34- simdjson::simdjson_result<simdjson::ondemand::document> &jsonDocument);
28+ void loadScene (const std::string &fileName, const std::function<void ()> &callback,
29+ const std::function<void()> &errorCallback);
3530
3631 void loadVersion (
3732 simdjson::simdjson_result<simdjson::ondemand::document> &jsonDocument);
3833
34+ void loadMeshes (const std::function<void ()> &errorCallback,
35+ simdjson::simdjson_result<simdjson::ondemand::document> &jsonDocument);
36+
37+ void loadPfBoxes (const std::function<void ()> &errorCallback,
38+ simdjson::simdjson_result<simdjson::ondemand::document> &jsonDocument);
39+
3940 void loadPfSeedPoints (const std::function<void ()> &errorCallback,
40- simdjson::simdjson_result<simdjson::ondemand::document> &jsonDocument);
41+ simdjson::simdjson_result<simdjson::ondemand::document> &jsonDocument);
42+
43+ void loadMatis (const std::function<void ()>& errorCallback,
44+ simdjson::simdjson_result<simdjson::ondemand::document>& jsonDocument);
45+
46+ void loadPrimMatis (const std::function<void ()>& errorCallback,
47+ simdjson::simdjson_result<simdjson::ondemand::document>& jsonDocument);
4148
4249 void showSceneDialog ();
4350
@@ -55,20 +62,23 @@ class Scene {
5562 std::string lastLoadSceneFile;
5663 bool sceneLoaded;
5764
58- std::vector<ZPathfinding::Mesh> meshes;
59- std::vector<ZPathfinding::Mesh> prims;
60- ZPathfinding::PfBox includeBox;
61- std::vector<ZPathfinding::PfBox> exclusionBoxes;
62- std::vector<ZPathfinding::PfSeedPoint> pfSeedPoints;
65+ std::vector<Json::Mesh> meshes;
66+ std::vector<Json::Mesh> prims;
67+ Json::PfBox includeBox;
68+ std::vector<Json::PfBox> exclusionBoxes;
69+ std::vector<Json::PfSeedPoint> pfSeedPoints;
70+ std::map<std::string, Json::Mati> matis;
71+ std::map<std::string, Json::PrimMati> primMatis;
6372 std::optional<std::jthread> backgroundWorker;
6473 float bBoxPos[3 ]{};
6574 float bBoxScale[3 ]{};
6675 bool showBBox;
6776 int version;
6877 static HWND hSceneDialog;
6978
70- const ZPathfinding ::Mesh *findMeshByHashAndIdAndPos (const std::string &hash, const std::string &id, const float *pos) const ;
79+ const Json ::Mesh *findMeshByHashAndIdAndPos (const std::string &hash, const std::string &id, const float *pos) const ;
7180
81+ static inline const std::string OUTPUT_SCENE_FILE_NAME = " output.nav.json" ;
7282private:
7383 std::string loadSceneName;
7484 std::string saveSceneName;
0 commit comments