Sketcher: SketchObject - method to getCompleteGeometry as GeometryFacade

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

As GeometryFacade is provided with more sketcher specific functionality, the demand
for to get GeometryFacades instead of Part::Geometry object increases too. This
addition reflects this increase of demand.
This commit is contained in:
Abdullah Tahiri
2021-12-07 14:03:33 +01:00
parent 9a6e12b73d
commit 0331b8a0ab
2 changed files with 17 additions and 1 deletions

View File

@@ -7035,11 +7035,25 @@ void SketchObject::rebuildExternalGeometry(void)
std::vector<Part::Geometry*> SketchObject::getCompleteGeometry(void) const
{
std::vector<Part::Geometry*> vals=getInternalGeometry();
std::vector<Part::Geometry*> vals = getInternalGeometry();
vals.insert(vals.end(), ExternalGeo.rbegin(), ExternalGeo.rend()); // in reverse order
return vals;
}
std::vector<std::unique_ptr<const GeometryFacade>> SketchObject::getCompleteGeometryFacade(void) const
{
std::vector<std::unique_ptr<const GeometryFacade>> facade;
facade.reserve( Geometry.getSize() + ExternalGeo.size() );
for(auto geo : Geometry.getValues())
facade.push_back(GeometryFacade::getFacade(geo));
for(auto rit = ExternalGeo.rbegin(); rit != ExternalGeo.rend(); rit++)
facade.push_back(GeometryFacade::getFacade(*rit));
return facade;
}
void SketchObject::rebuildVertexIndex(void)
{
VertexId2GeoId.resize(0);