FIX:ui_and_3d_volume_map should consider obj_idx

jira: github 5195
Change-Id: I0726b183257604336c274e60d8cc76a3f81877b7
(cherry picked from commit b82de541f5860553a4ec3d88396676f4cbca0b2e)
This commit is contained in:
zhou.xu
2024-11-14 21:08:19 +08:00
committed by Noisyfox
parent 8e288051e3
commit 92a71d27dc
2 changed files with 24 additions and 19 deletions

View File

@@ -352,26 +352,30 @@ class ObjectDataViewModel :public wxDataViewModel
wxDataViewCtrl* m_ctrl { nullptr };
std::vector<std::tuple<ObjectDataViewModelNode*, wxString, wxString>> assembly_name_list;
std::vector<std::tuple<ObjectDataViewModelNode*, wxString, wxString>> search_found_list;
std::map<int, int> m_ui_and_3d_volume_map;
std::map<int,std::map<int, int>> m_ui_and_3d_volume_maps;
public:
ObjectDataViewModel();
~ObjectDataViewModel();
void Init();
std::map<int, int> &get_ui_and_3d_volume_map() { return m_ui_and_3d_volume_map; }
int get_real_volume_index_in_3d(int ui_value)
std::map<int, std::map<int, int>> &get_ui_and_3d_volume_map() { return m_ui_and_3d_volume_maps; }
int get_real_volume_index_in_3d(int ui_object_value, int ui_volume_value)
{
if (m_ui_and_3d_volume_map.find(ui_value) != m_ui_and_3d_volume_map.end()) {
return m_ui_and_3d_volume_map[ui_value];
if (m_ui_and_3d_volume_maps.find(ui_object_value) != m_ui_and_3d_volume_maps.end()) {
auto cur_map = m_ui_and_3d_volume_maps[ui_object_value];
if (cur_map.find(ui_volume_value) != cur_map.end()) { return cur_map[ui_volume_value]; }
}
return ui_value;
return ui_volume_value;
}
int get_real_volume_index_in_ui(int _3d_value)
int get_real_volume_index_in_ui(int ui_object_value, int _3d_value)
{
for (auto item: m_ui_and_3d_volume_map) {
if (item.second == _3d_value) {
return item.first;
if (m_ui_and_3d_volume_maps.find(ui_object_value) != m_ui_and_3d_volume_maps.end()) {
auto cur_map = m_ui_and_3d_volume_maps[ui_object_value];
for (auto item : cur_map) {
if (item.second == _3d_value) {
return item.first;
}
}
}
return _3d_value;