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:
committed by
abdullahtahiriyo
parent
858abd99ca
commit
2b35a7eec4
@@ -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)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -222,10 +222,16 @@ class SketcherExport GeometryTypedFacade : public GeometryFacade
|
||||
|
||||
public: // Factory methods
|
||||
static std::unique_ptr<GeometryTypedFacade<GeometryT>> getTypedFacade(GeometryT * geometry) {
|
||||
return std::unique_ptr<GeometryTypedFacade<GeometryT>>(new GeometryTypedFacade(geometry));
|
||||
if(geometry != nullptr)
|
||||
return std::unique_ptr<GeometryTypedFacade<GeometryT>>(new GeometryTypedFacade(geometry));
|
||||
else
|
||||
return std::unique_ptr<GeometryTypedFacade<GeometryT>>(nullptr);
|
||||
}
|
||||
static std::unique_ptr<const GeometryTypedFacade<GeometryT>> getTypedFacade(const GeometryT * geometry) {
|
||||
return std::unique_ptr<const GeometryTypedFacade<GeometryT>>(new GeometryTypedFacade(geometry));
|
||||
if(geometry != nullptr)
|
||||
return std::unique_ptr<const GeometryTypedFacade<GeometryT>>(new GeometryTypedFacade(geometry));
|
||||
else
|
||||
return std::unique_ptr<const GeometryTypedFacade<GeometryT>>(nullptr);
|
||||
}
|
||||
|
||||
template < typename... Args >
|
||||
|
||||
Reference in New Issue
Block a user