RE: modernize C++: use range-based for loop
This commit is contained in:
@@ -104,13 +104,13 @@ void Segmentation::accept()
|
||||
finder.FindSegments(segm);
|
||||
|
||||
std::vector<MeshCore::MeshSurfaceSegmentPtr> segmSurf;
|
||||
for (std::vector<MeshCore::MeshSurfaceSegmentPtr>::iterator it = segm.begin(); it != segm.end(); ++it) {
|
||||
const std::vector<MeshCore::MeshSegment>& data = (*it)->GetSegments();
|
||||
for (const auto& it : segm) {
|
||||
const std::vector<MeshCore::MeshSegment>& data = it->GetSegments();
|
||||
|
||||
// For each planar segment compute a plane and use this then for a more accurate 2nd segmentation
|
||||
if (strcmp((*it)->GetType(), "Plane") == 0) {
|
||||
for (std::vector<MeshCore::MeshSegment>::const_iterator jt = data.begin(); jt != data.end(); ++jt) {
|
||||
std::vector<MeshCore::PointIndex> indexes = kernel.GetFacetPoints(*jt);
|
||||
if (strcmp(it->GetType(), "Plane") == 0) {
|
||||
for (const auto& jt : data) {
|
||||
std::vector<MeshCore::PointIndex> indexes = kernel.GetFacetPoints(jt);
|
||||
MeshCore::PlaneFit fit;
|
||||
fit.AddPoints(kernel.GetPoints(indexes));
|
||||
if (fit.Fit() < FLOAT_MAX) {
|
||||
@@ -140,17 +140,17 @@ void Segmentation::accept()
|
||||
std::vector<App::DocumentObject*> failures;
|
||||
algo.SetFacetFlag(MeshCore::MeshFacet::TMP0);
|
||||
|
||||
for (std::vector<MeshCore::MeshSurfaceSegmentPtr>::iterator it = segmSurf.begin(); it != segmSurf.end(); ++it) {
|
||||
const std::vector<MeshCore::MeshSegment>& data = (*it)->GetSegments();
|
||||
for (const auto& it : segmSurf) {
|
||||
const std::vector<MeshCore::MeshSegment>& data = it->GetSegments();
|
||||
std::shared_ptr<MeshCore::MeshDistanceGenericSurfaceFitSegment> genSegm = std::dynamic_pointer_cast
|
||||
<MeshCore::MeshDistanceGenericSurfaceFitSegment>(*it);
|
||||
<MeshCore::MeshDistanceGenericSurfaceFitSegment>(it);
|
||||
|
||||
bool isPlanar = (strcmp(genSegm->GetType(), "Plane") == 0);
|
||||
for (std::vector<MeshCore::MeshSegment>::const_iterator jt = data.begin(); jt != data.end(); ++jt) {
|
||||
for (const auto& jt : data) {
|
||||
// reset flag for facets of segment
|
||||
algo.ResetFacetsFlag(*jt, MeshCore::MeshFacet::TMP0);
|
||||
algo.ResetFacetsFlag(jt, MeshCore::MeshFacet::TMP0);
|
||||
|
||||
Mesh::MeshObject* segment = mesh->meshFromSegment(*jt);
|
||||
Mesh::MeshObject* segment = mesh->meshFromSegment(jt);
|
||||
Mesh::Feature* feaSegm = static_cast<Mesh::Feature*>(group->addObject("Mesh::Feature", "Segment"));
|
||||
Mesh::MeshObject* feaMesh = feaSegm->Mesh.startEditing();
|
||||
feaMesh->swap(*segment);
|
||||
@@ -158,12 +158,12 @@ void Segmentation::accept()
|
||||
delete segment;
|
||||
|
||||
std::stringstream label;
|
||||
label << feaSegm->Label.getValue() << " (" << (*it)->GetType() << ")";
|
||||
label << feaSegm->Label.getValue() << " (" << it->GetType() << ")";
|
||||
feaSegm->Label.setValue(label.str());
|
||||
|
||||
if (createCompound) {
|
||||
std::list<std::vector<Base::Vector3f> > bounds;
|
||||
algo.GetFacetBorders(*jt, bounds);
|
||||
algo.GetFacetBorders(jt, bounds);
|
||||
|
||||
// Handle planar segments
|
||||
if (isPlanar) {
|
||||
@@ -174,10 +174,10 @@ void Segmentation::accept()
|
||||
Handle(Geom_Plane) hPlane(new Geom_Plane(loc, dir));
|
||||
|
||||
std::vector<TopoDS_Wire> wires;
|
||||
for (auto bt = bounds.begin(); bt != bounds.end(); ++bt) {
|
||||
for (const auto & bound : bounds) {
|
||||
// project the points onto the surface
|
||||
std::vector<gp_Pnt> polygon;
|
||||
std::transform(bt->begin(), bt->end(), std::back_inserter(polygon), [&hPlane](const Base::Vector3f& v) {
|
||||
std::transform(bound.begin(), bound.end(), std::back_inserter(polygon), [&hPlane](const Base::Vector3f& v) {
|
||||
gp_Pnt p(v.x, v.y, v.z);
|
||||
return GeomAPI_ProjectPointOnSurf(p, hPlane).NearestPoint();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user