Sketcher: GeometryFacade and ExternalGeometryFacade nullptr creation

====================================================================

If the Part::Geometry * is nullptr, then it is convenient to have a
std::unique<GeometryFacade> that contains a nullptr too, because many
functions check for a Part::Geometry being a nullptr.
This commit is contained in:
Abdullah Tahiri
2020-12-05 09:41:33 +01:00
committed by abdullahtahiriyo
parent 279346cbf2
commit f3595f1058
3 changed files with 25 additions and 8 deletions

View File

@@ -50,17 +50,24 @@ GeometryFacade::GeometryFacade(const Part::Geometry * geometry)
initExtension();
else
THROWM(Base::ValueError, "GeometryFacade initialized with Geometry null pointer");
}
std::unique_ptr<GeometryFacade> GeometryFacade::getFacade(Part::Geometry * geometry)
{
return std::unique_ptr<GeometryFacade>(new GeometryFacade(geometry));
if(geometry != nullptr)
return std::unique_ptr<GeometryFacade>(new GeometryFacade(geometry));
else
return std::unique_ptr<GeometryFacade>(nullptr);
//return std::make_unique<GeometryFacade>(geometry); // make_unique has no access to private constructor
}
std::unique_ptr<const GeometryFacade> GeometryFacade::getFacade(const Part::Geometry * geometry)
{
return std::unique_ptr<const GeometryFacade>(new GeometryFacade(geometry));
if(geometry != nullptr)
return std::unique_ptr<const GeometryFacade>(new GeometryFacade(geometry));
else
return std::unique_ptr<const GeometryFacade>(nullptr);
//return std::make_unique<const GeometryFacade>(geometry); // make_unique has no access to private constructor
}