@@ -43,16 +43,11 @@ namespace {
4343
4444struct TempHM3DObject {
4545 int objInstanceID;
46+ int objCatID;
4647 std::string categoryName;
4748 std::string objInstanceName;
4849 Mn::Vector3ub color;
4950 std::shared_ptr<SemanticRegion> region;
50-
51- void setObjInstanceAndName (int _objInstanceID) {
52- objInstanceID = _objInstanceID;
53- objInstanceName =
54- Cr::Utility::formatString (" {}_{}" , categoryName, objInstanceID);
55- }
5651};
5752
5853struct TempHM3DRegion {
@@ -95,7 +90,7 @@ bool SemanticScene::buildHM3DHouse(std::ifstream& ifs,
9590 // Line :
9691 // Unique Instance ID (int), color (hex RGB), category name
9792 // (string), room/region ID (int)
98- // instance ID is first token
93+ // unique instance ID is first token
9994 int instanceID = std::stoi (tokens[0 ]);
10095 // semantic color is 2nd token, as hex string
10196 auto colorVec = getVec3ub (tokens[1 ]);
@@ -107,7 +102,10 @@ bool SemanticScene::buildHM3DHouse(std::ifstream& ifs,
107102 // room/region
108103 int regionID = std::stoi (tokens[3 ]);
109104 // build initial temp object
110- TempHM3DObject obj{0 , objCategoryName, " " , colorVec};
105+ TempHM3DObject obj{
106+ instanceID, 0 , objCategoryName,
107+ Cr::Utility::formatString (" {}_{}" , objCategoryName, instanceID),
108+ colorVec};
111109 objInstance[instanceID] = obj;
112110 // find category, build if dne
113111 TempHM3DCategory tmpCat{
@@ -126,7 +124,7 @@ bool SemanticScene::buildHM3DHouse(std::ifstream& ifs,
126124 std::vector<TempHM3DObject*>& objsWithCat = item.second .objInstances ;
127125 int objCatIdx = 0 ;
128126 for (TempHM3DObject* objItem : objsWithCat) {
129- objItem->setObjInstanceAndName ( objCatIdx++) ;
127+ objItem->objCatID = objCatIdx++;
130128 }
131129 // build category item and place within temp map
132130 item.second .category_ = std::make_shared<HM3DObjectCategory>(
@@ -160,7 +158,7 @@ bool SemanticScene::buildHM3DHouse(std::ifstream& ifs,
160158 for (auto & item : objInstance) {
161159 TempHM3DObject obj = item.second ;
162160 auto objPtr = std::make_shared<HM3DObjectInstance>(HM3DObjectInstance (
163- item. first , obj.objInstanceID , obj.objInstanceName , obj.color ));
161+ obj. objInstanceID , obj.objCatID , obj.objInstanceName , obj.color ));
164162 objPtr->category_ = categories[obj.categoryName ].category_ ;
165163 // set region
166164 objPtr->parentIndex_ = obj.region ->index_ ;
0 commit comments