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

@@ -54,14 +54,18 @@ ExternalGeometryFacade::ExternalGeometryFacade(const Part::Geometry * geometry)
std::unique_ptr<ExternalGeometryFacade> ExternalGeometryFacade::getFacade(Part::Geometry * geometry)
{
return std::unique_ptr<ExternalGeometryFacade>(new ExternalGeometryFacade(geometry));
//return std::make_unique<ExternalGeometryFacade>(geometry); // make_unique has no access to private constructor
if(geometry != nullptr)
return std::unique_ptr<ExternalGeometryFacade>(new ExternalGeometryFacade(geometry));
else
return std::unique_ptr<ExternalGeometryFacade>(nullptr);
}
std::unique_ptr<const ExternalGeometryFacade> ExternalGeometryFacade::getFacade(const Part::Geometry * geometry)
{
return std::unique_ptr<const ExternalGeometryFacade>(new ExternalGeometryFacade(geometry));
//return std::make_unique<const ExternalGeometryFacade>(geometry); // make_unique has no access to private constructor
if(geometry != nullptr)
return std::unique_ptr<const ExternalGeometryFacade>(new ExternalGeometryFacade(geometry));
else
return std::unique_ptr<const ExternalGeometryFacade>(nullptr);
}
void ExternalGeometryFacade::setGeometry(Part::Geometry *geometry)