Several fixes:

+ use different iterator variable for nexted loops
+ avoid loss of data warnings
+ improve layout
This commit is contained in:
wmayer 2017-01-20 19:40:49 +01:00
parent 0955ccf594
commit 62b4782ed6
2 changed files with 60 additions and 70 deletions

View File

@ -2144,9 +2144,9 @@ int SketchObject::addSymmetric(const std::vector<int> &geoIdList, int refGeoId,
std::vector<Base::Vector3d> poles = geosymbsp->getPoles();
for(std::vector<Base::Vector3d>::iterator it = poles.begin(); it != poles.end(); ++it){
for(std::vector<Base::Vector3d>::iterator jt = poles.begin(); jt != poles.end(); ++jt){
(*it) = (*it) + 2.0*((*it).Perpendicular(refGeoLine->getStartPoint(),vectline)-(*it));
(*jt) = (*jt) + 2.0*((*jt).Perpendicular(refGeoLine->getStartPoint(),vectline)-(*jt));
}
geosymbsp->setPoles(poles);
@ -2671,9 +2671,9 @@ int SketchObject::addCopy(const std::vector<int> &geoIdList, const Base::Vector3
std::vector<Base::Vector3d> poles = geobsp->getPoles();
for(std::vector<Base::Vector3d>::iterator it = poles.begin(); it != poles.end(); ++it){
for(std::vector<Base::Vector3d>::iterator jt = poles.begin(); jt != poles.end(); ++jt){
(*it) = (*it) + double(x)*displacement + double(y)*perpendicularDisplacement;
(*jt) = (*jt) + double(x)*displacement + double(y)*perpendicularDisplacement;
}
geobsp->setPoles(poles);
@ -3554,8 +3554,7 @@ int SketchObject::DeleteUnusedInternalGeometry(int GeoId)
std::sort(delgeometries.begin(), delgeometries.end()); // indices over an erased element get automatically updated!!
if(delgeometries.size()>0)
{
if (delgeometries.size()>0) {
for (std::vector<int>::reverse_iterator it=delgeometries.rbegin(); it!=delgeometries.rend(); ++it) {
delGeometry(*it);
}
@ -3572,10 +3571,8 @@ int SketchObject::DeleteUnusedInternalGeometry(int GeoId)
const std::vector< Sketcher::Constraint * > &vals = Constraints.getValues();
for (std::vector< Sketcher::Constraint * >::const_iterator it= vals.begin();
it != vals.end(); ++it) {
if((*it)->Type == Sketcher::InternalAlignment && (*it)->Second == GeoId)
{
for (std::vector< Sketcher::Constraint * >::const_iterator it= vals.begin(); it != vals.end(); ++it) {
if ((*it)->Type == Sketcher::InternalAlignment && (*it)->Second == GeoId) {
switch ((*it)->AlignmentType) {
case Sketcher::ParabolaFocus:
focus1elementindex = (*it)->First;
@ -3619,9 +3616,7 @@ int SketchObject::DeleteUnusedInternalGeometry(int GeoId)
int majorconstraints=0; // number of constraints associated to the geoid of the major axis other than the coincident ones
int focus1constraints=0;
for (std::vector< Sketcher::Constraint * >::const_iterator it= vals.begin();
it != vals.end(); ++it) {
for (std::vector< Sketcher::Constraint * >::const_iterator it= vals.begin(); it != vals.end(); ++it) {
if( (*it)->Second == majorelementindex ||
(*it)->First == majorelementindex ||
(*it)->Third == majorelementindex)
@ -3644,8 +3639,7 @@ int SketchObject::DeleteUnusedInternalGeometry(int GeoId)
std::sort(delgeometries.begin(), delgeometries.end()); // indices over an erased element get automatically updated!!
if(delgeometries.size()>0)
{
if (delgeometries.size()>0) {
for (std::vector<int>::reverse_iterator it=delgeometries.rbegin(); it!=delgeometries.rend(); ++it) {
delGeometry(*it);
}
@ -3672,13 +3666,11 @@ int SketchObject::DeleteUnusedInternalGeometry(int GeoId)
const std::vector< Sketcher::Constraint * > &vals = Constraints.getValues();
// search for existing poles
for (std::vector< Sketcher::Constraint * >::const_iterator it= vals.begin();
it != vals.end(); ++it) {
if((*it)->Type == Sketcher::InternalAlignment && (*it)->Second == GeoId)
{
switch((*it)->AlignmentType){
for (std::vector< Sketcher::Constraint * >::const_iterator jt = vals.begin(); jt != vals.end(); ++jt) {
if ((*jt)->Type == Sketcher::InternalAlignment && (*jt)->Second == GeoId) {
switch ((*jt)->AlignmentType) {
case Sketcher::BSplineControlPoint:
controlpointgeoids[(*it)->InternalAlignmentIndex] = (*it)->First;
controlpointgeoids[(*jt)->InternalAlignmentIndex] = (*jt)->First;
break;
default:
return -1;
@ -3710,8 +3702,7 @@ int SketchObject::DeleteUnusedInternalGeometry(int GeoId)
std::sort(delgeometries.begin(), delgeometries.end()); // indices over an erased element get automatically updated!!
if(delgeometries.size()>0)
{
if (delgeometries.size()>0) {
for (std::vector<int>::reverse_iterator it=delgeometries.rbegin(); it!=delgeometries.rend(); ++it) {
delGeometry(*it);
}
@ -3723,10 +3714,10 @@ int SketchObject::DeleteUnusedInternalGeometry(int GeoId)
if (controlpointgeoids[0] != -1 && !firstpoledeleted) {
// look for a circle at geoid index
for (std::vector< Sketcher::Constraint * >::const_iterator itc= vals.begin();
itc != vals.end(); ++itc) {
if((*itc)->Second == controlpointgeoids[0] || (*itc)->First == controlpointgeoids[0] || (*itc)->Third == controlpointgeoids[0])
for (std::vector< Sketcher::Constraint * >::const_iterator itc= vals.begin(); itc != vals.end(); ++itc) {
if ((*itc)->Second == controlpointgeoids[0] ||
(*itc)->First == controlpointgeoids[0] ||
(*itc)->Third == controlpointgeoids[0])
associatedcontraints[0]++;
}
@ -3734,19 +3725,18 @@ int SketchObject::DeleteUnusedInternalGeometry(int GeoId)
delgeometries.push_back(controlpointgeoids[0]);
}
if(delgeometries.size()>0)
{
if (delgeometries.size()>0) {
for (std::vector<int>::reverse_iterator it=delgeometries.rbegin(); it!=delgeometries.rend(); ++it) {
delGeometry(*it);
}
}
return delgeometries.size(); //number of deleted elements
}
else
else {
return -1; // not supported type
}
}
int SketchObject::addExternal(App::DocumentObject *Obj, const char* SubName)
{
@ -3766,6 +3756,7 @@ int SketchObject::addExternal(App::DocumentObject *Obj, const char* SubName)
Base::Console().Error("Internal error: counts of objects and subelements in external geometry links do not match\n");
return -1;
}
for (size_t i = 0 ; i < Objects.size() ; ++i){
if (Objects[i] == Obj && std::string(SubName) == SubElements[i]){
Base::Console().Error("Link to %s already exists in this sketch.\n",SubName);
@ -3773,7 +3764,6 @@ int SketchObject::addExternal(App::DocumentObject *Obj, const char* SubName)
}
}
// add the new ones
Objects.push_back(Obj);
SubElements.push_back(std::string(SubName));

View File

@ -669,7 +669,7 @@ DeriVector2 BSpline::Value(double u, double du, double* derivparam)
int BSpline::PushOwnParams(VEC_pD &pvec)
{
int cnt=0;
std::size_t cnt=0;
for(VEC_P::const_iterator it = poles.begin(); it != poles.end(); ++it) {
pvec.push_back( (*it).x );
@ -689,7 +689,7 @@ int BSpline::PushOwnParams(VEC_pD &pvec)
pvec.push_back(end.x); cnt++;
pvec.push_back(end.y); cnt++;
return cnt;
return static_cast<int>(cnt);
}
void BSpline::ReconstructOnNewPvec(VEC_pD &pvec, int &cnt)