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:
@@ -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);
|
||||
|
||||
@@ -194,6 +194,8 @@ public:
|
||||
/// retrieves a vector containing both normal and external Geometry (including the sketch axes)
|
||||
std::vector<Part::Geometry*> getCompleteGeometry(void) const;
|
||||
|
||||
std::vector<std::unique_ptr<const GeometryFacade>> getCompleteGeometryFacade(void) const;
|
||||
|
||||
/// converts a GeoId index into an index of the CompleteGeometry vector
|
||||
int getCompleteGeometryIndex(int GeoId) const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user