Skip to content

Commit

Permalink
TMetricMapInitializer now uses shared_ptr
Browse files Browse the repository at this point in the history
  • Loading branch information
jlblancoc committed Nov 6, 2023
1 parent bd79cad commit 5942cf8
Show file tree
Hide file tree
Showing 44 changed files with 160 additions and 137 deletions.
6 changes: 3 additions & 3 deletions apps/robot-map-gui/gui/configWidget/CConfigWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -211,11 +211,11 @@ TSetOfMetricMapInitializers CConfigWidget::config()
for (auto& map : it.second)
{
const std::string sMapName = map->getName().toStdString();
TMetricMapInitializer* mi = mmr.factoryMapDefinition(sMapName);
auto mi = mmr.factoryMapDefinition(sMapName);
ASSERT_(mi);

map->updateConfiguration(mi);
mapCfg.push_back(TMetricMapInitializer::Ptr(mi));
map->updateConfiguration(mi.get());
mapCfg.push_back(mi);
++index;
}
}
Expand Down
1 change: 1 addition & 0 deletions doc/source/doxygen-docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
- mrpt::maps::COccupancyGridMap2D
- mrpt::maps::COccupancyGridMap2D
- New virtual method mrpt::maps::CMetricMap::boundingBox()
- mrpt::maps::TMetricMapInitializer now returns `shared_ptr`s instead of plain pointers.
- \ref mrpt_core_grp
- Add the `[[nodiscard]]` attribute to all functions returning a value in `<mrpt/core/bits_math.h>`

Expand Down
4 changes: 2 additions & 2 deletions libs/maps/src/maps/CBeaconMap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,12 @@ void CBeaconMap::TMapDefinition::dumpToTextStream_map_specific(
this->likelihoodOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap* CBeaconMap::internal_CreateFromMapDefinition(
mrpt::maps::CMetricMap::Ptr CBeaconMap::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
const CBeaconMap::TMapDefinition& def =
*dynamic_cast<const CBeaconMap::TMapDefinition*>(&_def);
auto* obj = new CBeaconMap();
auto obj = CBeaconMap::Create();
obj->insertionOptions = def.insertionOpts;
obj->likelihoodOptions = def.likelihoodOpts;
return obj;
Expand Down
4 changes: 2 additions & 2 deletions libs/maps/src/maps/CColouredOctoMap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,12 @@ void CColouredOctoMap::TMapDefinition::dumpToTextStream_map_specific(
this->likelihoodOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap* CColouredOctoMap::internal_CreateFromMapDefinition(
mrpt::maps::CMetricMap::Ptr CColouredOctoMap::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
const CColouredOctoMap::TMapDefinition& def =
*dynamic_cast<const CColouredOctoMap::TMapDefinition*>(&_def);
auto* obj = new CColouredOctoMap(def.resolution);
auto obj = CColouredOctoMap::Create(def.resolution);
obj->insertionOptions = def.insertionOpts;
obj->likelihoodOptions = def.likelihoodOpts;
return obj;
Expand Down
7 changes: 4 additions & 3 deletions libs/maps/src/maps/CColouredPointsMap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,13 @@ void CColouredPointsMap::TMapDefinition::dumpToTextStream_map_specific(
this->colourOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap* CColouredPointsMap::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
mrpt::maps::CMetricMap::Ptr
CColouredPointsMap::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
const CColouredPointsMap::TMapDefinition& def =
*dynamic_cast<const CColouredPointsMap::TMapDefinition*>(&_def);
auto* obj = new CColouredPointsMap();
auto obj = CColouredPointsMap::Create();
obj->insertionOptions = def.insertionOpts;
obj->likelihoodOptions = def.likelihoodOpts;
obj->colorScheme = def.colourOpts;
Expand Down
4 changes: 2 additions & 2 deletions libs/maps/src/maps/CGasConcentrationGridMap2D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,13 @@ void CGasConcentrationGridMap2D::TMapDefinition::dumpToTextStream_map_specific(
this->insertionOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap*
mrpt::maps::CMetricMap::Ptr
CGasConcentrationGridMap2D::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
const CGasConcentrationGridMap2D::TMapDefinition& def =
*dynamic_cast<const CGasConcentrationGridMap2D::TMapDefinition*>(&_def);
auto* obj = new CGasConcentrationGridMap2D(
auto obj = CGasConcentrationGridMap2D::Create(
def.mapType, def.min_x, def.max_x, def.min_y, def.max_y,
def.resolution);
obj->insertionOptions = def.insertionOpts;
Expand Down
4 changes: 2 additions & 2 deletions libs/maps/src/maps/CHeightGridMap2D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,12 @@ void CHeightGridMap2D::TMapDefinition::dumpToTextStream_map_specific(
this->insertionOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap* CHeightGridMap2D::internal_CreateFromMapDefinition(
mrpt::maps::CMetricMap::Ptr CHeightGridMap2D::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
const CHeightGridMap2D::TMapDefinition& def =
*dynamic_cast<const CHeightGridMap2D::TMapDefinition*>(&_def);
auto* obj = new CHeightGridMap2D(
auto obj = CHeightGridMap2D::Create(
def.mapType, def.min_x, def.max_x, def.min_y, def.max_y,
def.resolution);
obj->insertionOptions = def.insertionOpts;
Expand Down
7 changes: 4 additions & 3 deletions libs/maps/src/maps/CHeightGridMap2D_MRF.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,13 @@ void CHeightGridMap2D_MRF::TMapDefinition::dumpToTextStream_map_specific(
this->insertionOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap* CHeightGridMap2D_MRF::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
mrpt::maps::CMetricMap::Ptr
CHeightGridMap2D_MRF::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
const CHeightGridMap2D_MRF::TMapDefinition& def =
*dynamic_cast<const CHeightGridMap2D_MRF::TMapDefinition*>(&_def);
auto* obj = new CHeightGridMap2D_MRF(
auto obj = CHeightGridMap2D_MRF::Create(
def.mapType, def.min_x, def.max_x, def.min_y, def.max_y, def.resolution,
def.run_map_estimation_at_ctor);
obj->insertionOptions = def.insertionOpts;
Expand Down
2 changes: 1 addition & 1 deletion libs/maps/src/maps/CMultiMetricMap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ void CMultiMetricMap::setListOfMaps(const TSetOfMetricMapInitializers& inits)
for (const auto& i : inits)
{
// Create map from the list of all params:
auto* theMap = mmr.factoryMapObjectFromDefinition(*i.get());
auto theMap = mmr.factoryMapObjectFromDefinition(*i.get());
ASSERT_(theMap);
// Add to the list of maps:
this->maps.emplace_back(theMap);
Expand Down
7 changes: 4 additions & 3 deletions libs/maps/src/maps/COccupancyGridMap2D_common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,13 @@ void COccupancyGridMap2D::TMapDefinition::dumpToTextStream_map_specific(
this->likelihoodOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap* COccupancyGridMap2D::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
mrpt::maps::CMetricMap::Ptr
COccupancyGridMap2D::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
const COccupancyGridMap2D::TMapDefinition& def =
*dynamic_cast<const COccupancyGridMap2D::TMapDefinition*>(&_def);
auto* obj = new COccupancyGridMap2D(
auto obj = COccupancyGridMap2D::Create(
def.min_x, def.max_x, def.min_y, def.max_y, def.resolution);
obj->insertionOptions = def.insertionOpts;
obj->likelihoodOptions = def.likelihoodOpts;
Expand Down
7 changes: 4 additions & 3 deletions libs/maps/src/maps/COccupancyGridMap3D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,12 @@ void COccupancyGridMap3D::TMapDefinition::dumpToTextStream_map_specific(
this->likelihoodOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap* COccupancyGridMap3D::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
mrpt::maps::CMetricMap::Ptr
COccupancyGridMap3D::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
auto& def = dynamic_cast<const COccupancyGridMap3D::TMapDefinition&>(_def);
auto* obj = new COccupancyGridMap3D(
auto obj = COccupancyGridMap3D::Create(
mrpt::math::TPoint3D(def.min_x, def.min_y, def.min_z),
mrpt::math::TPoint3D(def.max_x, def.max_y, def.max_z), def.resolution);
obj->insertionOptions = def.insertionOpts;
Expand Down
4 changes: 2 additions & 2 deletions libs/maps/src/maps/COctoMap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,12 @@ void COctoMap::TMapDefinition::dumpToTextStream_map_specific(
this->likelihoodOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap* COctoMap::internal_CreateFromMapDefinition(
mrpt::maps::CMetricMap::Ptr COctoMap::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
const COctoMap::TMapDefinition& def =
*dynamic_cast<const COctoMap::TMapDefinition*>(&_def);
auto* obj = new COctoMap(def.resolution);
auto obj = COctoMap::Create(def.resolution);
obj->insertionOptions = def.insertionOpts;
obj->likelihoodOptions = def.likelihoodOpts;
return obj;
Expand Down
4 changes: 2 additions & 2 deletions libs/maps/src/maps/CPointsMapXYZI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,12 @@ void CPointsMapXYZI::TMapDefinition::dumpToTextStream_map_specific(
this->likelihoodOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap* CPointsMapXYZI::internal_CreateFromMapDefinition(
mrpt::maps::CMetricMap::Ptr CPointsMapXYZI::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
const CPointsMapXYZI::TMapDefinition& def =
*dynamic_cast<const CPointsMapXYZI::TMapDefinition*>(&_def);
auto* obj = new CPointsMapXYZI();
auto obj = CPointsMapXYZI::Create();
obj->insertionOptions = def.insertionOpts;
obj->likelihoodOptions = def.likelihoodOpts;
return obj;
Expand Down
4 changes: 2 additions & 2 deletions libs/maps/src/maps/CReflectivityGridMap2D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,13 @@ void CReflectivityGridMap2D::TMapDefinition::dumpToTextStream_map_specific(
this->insertionOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap*
mrpt::maps::CMetricMap::Ptr
CReflectivityGridMap2D::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
const CReflectivityGridMap2D::TMapDefinition& def =
*dynamic_cast<const CReflectivityGridMap2D::TMapDefinition*>(&_def);
auto* obj = new CReflectivityGridMap2D(
auto obj = CReflectivityGridMap2D::Create(
def.min_x, def.max_x, def.min_y, def.max_y, def.resolution);
obj->insertionOptions = def.insertionOpts;
return obj;
Expand Down
4 changes: 2 additions & 2 deletions libs/maps/src/maps/CSimplePointsMap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,12 @@ void CSimplePointsMap::TMapDefinition::dumpToTextStream_map_specific(
this->renderOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap* CSimplePointsMap::internal_CreateFromMapDefinition(
mrpt::maps::CMetricMap::Ptr CSimplePointsMap::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
const CSimplePointsMap::TMapDefinition& def =
*dynamic_cast<const CSimplePointsMap::TMapDefinition*>(&_def);
auto* obj = new CSimplePointsMap();
auto obj = CSimplePointsMap::Create();
obj->insertionOptions = def.insertionOpts;
obj->likelihoodOptions = def.likelihoodOpts;
obj->renderOptions = def.renderOpts;
Expand Down
4 changes: 2 additions & 2 deletions libs/maps/src/maps/CVoxelMap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ void CVoxelMap::TMapDefinition::dumpToTextStream_map_specific(
this->likelihoodOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap* CVoxelMap::internal_CreateFromMapDefinition(
mrpt::maps::CMetricMap::Ptr CVoxelMap::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
const CVoxelMap::TMapDefinition& def =
*dynamic_cast<const CVoxelMap::TMapDefinition*>(&_def);
auto* obj = new CVoxelMap(def.resolution);
auto obj = CVoxelMap::Create(def.resolution);
obj->insertionOptions = def.insertionOpts;
obj->likelihoodOptions = def.likelihoodOpts;
return obj;
Expand Down
4 changes: 2 additions & 2 deletions libs/maps/src/maps/CVoxelMapRGB.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,12 @@ void CVoxelMapRGB::TMapDefinition::dumpToTextStream_map_specific(
this->likelihoodOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap* CVoxelMapRGB::internal_CreateFromMapDefinition(
mrpt::maps::CMetricMap::Ptr CVoxelMapRGB::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
const CVoxelMapRGB::TMapDefinition& def =
*dynamic_cast<const CVoxelMapRGB::TMapDefinition*>(&_def);
auto* obj = new CVoxelMapRGB(def.resolution);
auto obj = CVoxelMapRGB::Create(def.resolution);
obj->insertionOptions = def.insertionOpts;
obj->likelihoodOptions = def.likelihoodOpts;
return obj;
Expand Down
7 changes: 4 additions & 3 deletions libs/maps/src/maps/CWeightedPointsMap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,13 @@ void CWeightedPointsMap::TMapDefinition::dumpToTextStream_map_specific(
this->likelihoodOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap* CWeightedPointsMap::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
mrpt::maps::CMetricMap::Ptr
CWeightedPointsMap::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
const CWeightedPointsMap::TMapDefinition& def =
*dynamic_cast<const CWeightedPointsMap::TMapDefinition*>(&_def);
auto* obj = new CWeightedPointsMap();
auto obj = CWeightedPointsMap::Create();
obj->insertionOptions = def.insertionOpts;
obj->likelihoodOptions = def.likelihoodOpts;
return obj;
Expand Down
4 changes: 2 additions & 2 deletions libs/maps/src/maps/CWirelessPowerGridMap2D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,13 @@ void CWirelessPowerGridMap2D::TMapDefinition::dumpToTextStream_map_specific(
this->insertionOpts.dumpToTextStream(out);
}

mrpt::maps::CMetricMap*
mrpt::maps::CMetricMap::Ptr
CWirelessPowerGridMap2D::internal_CreateFromMapDefinition(
const mrpt::maps::TMetricMapInitializer& _def)
{
const CWirelessPowerGridMap2D::TMapDefinition& def =
*dynamic_cast<const CWirelessPowerGridMap2D::TMapDefinition*>(&_def);
auto* obj = new CWirelessPowerGridMap2D(
auto obj = CWirelessPowerGridMap2D::Create(
def.mapType, def.min_x, def.max_x, def.min_y, def.max_y,
def.resolution);
obj->insertionOptions = def.insertionOpts;
Expand Down
4 changes: 2 additions & 2 deletions libs/obs/include/mrpt/maps/TMetricMapInitializer.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ struct TMetricMapInitializer : public mrpt::config::CLoadableOptions

/** Looks up in the registry of known map types and call the corresponding
* `<metric_map_class>::MapDefinition()`. */
static TMetricMapInitializer* factory(const std::string& mapClassName);
static Ptr factory(const std::string& mapClassName);

protected:
TMetricMapInitializer(const mrpt::rtti::TRuntimeClassId* classID);
Expand Down Expand Up @@ -97,7 +97,7 @@ class TSetOfMetricMapInitializers : public mrpt::config::CLoadableOptions
template <typename MAP_DEFINITION>
void push_back(const MAP_DEFINITION& o)
{
m_list.push_back(TMetricMapInitializer::Ptr(new MAP_DEFINITION(o)));
m_list.push_back(std::make_shared<MAP_DEFINITION>(o));
}

void push_back(const TMetricMapInitializer::Ptr& o) { m_list.push_back(o); }
Expand Down
Loading

0 comments on commit 5942cf8

Please sign in to comment.