[TechDraw] Improve readability of DrawLeaderLine.cpp

This commit is contained in:
Benjamin Bræstrup Sayoc
2023-04-05 14:22:57 +02:00
committed by WandererFan
parent b57c7eab12
commit e34874b591

View File

@@ -107,20 +107,13 @@ void DrawLeaderLine::onChanged(const App::Property* prop)
short DrawLeaderLine::mustExecute() const
{
bool result = 0;
if (!isRestoring()) {
result = (LeaderParent.isTouched()); //Property changed
}
if (result) {
return result;
if (!isRestoring() && LeaderParent.isTouched()) {
return true; // Property changed
}
const App::DocumentObject* docObj = getBaseObject();
if (docObj) {
result = docObj->isTouched(); //object property points to is touched
}
if (result) {
return result;
if (docObj && docObj->isTouched()) {
return true; // Object property points to is touched
}
return DrawView::mustExecute();
@@ -139,35 +132,27 @@ App::DocumentObjectExecReturn *DrawLeaderLine::execute()
DrawView* DrawLeaderLine::getBaseView() const
{
DrawView* result = nullptr;
App::DocumentObject* baseObj = LeaderParent.getValue();
if (baseObj) {
DrawView* cast = dynamic_cast<DrawView*>(baseObj);
if (cast) {
result = cast;
}
if (!baseObj) {
return nullptr;
}
return result;
DrawView* cast = dynamic_cast<DrawView*>(baseObj);
return cast;
}
App::DocumentObject* DrawLeaderLine::getBaseObject() const
{
App::DocumentObject* result = nullptr;
DrawView* view = getBaseView();
if (view) {
result = view;
}
return result;
return getBaseView();
}
bool DrawLeaderLine::keepUpdated()
{
bool result = false;
DrawView* view = getBaseView();
if (view) {
result = view->keepUpdated();
if (!view) {
return false;
}
return result;
return view->keepUpdated();
}
//need separate getParentScale()???
@@ -175,33 +160,34 @@ bool DrawLeaderLine::keepUpdated()
double DrawLeaderLine::getBaseScale() const
{
// Base::Console().Message("DLL::getBaseScale()\n");
double result = 1.0;
DrawView* parent = getBaseView();
if (parent) {
result = parent->getScale();
if (!parent) {
return 1.0;
}
return result;
return parent->getScale();
}
double DrawLeaderLine::getScale() const
{
// Base::Console().Message("DLL::getScale()\n");
double result = 1.0;
if (Scalable.getValue()) {
DrawView* parent = getBaseView();
if (parent) {
result = parent->getScale();
}
if (!Scalable.getValue()) {
return 1.0;
}
return result;
DrawView* parent = getBaseView();
if (!parent) {
return 1.0;
}
return parent->getScale();
}
Base::Vector3d DrawLeaderLine::getAttachPoint()
{
Base::Vector3d result(X.getValue(),
Y.getValue(),
0.0);
return result;
return Base::Vector3d(
X.getValue(),
Y.getValue(),
0.0
);
}
void DrawLeaderLine::adjustLastSegment()
@@ -209,15 +195,13 @@ void DrawLeaderLine::adjustLastSegment()
// Base::Console().Message("DLL::adjustLastSegment()\n");
bool adjust = AutoHorizontal.getValue();
std::vector<Base::Vector3d> wp = WayPoints.getValues();
if (adjust) {
if (wp.size() > 1) {
int iLast = wp.size() - 1;
int iPen = wp.size() - 2;
Base::Vector3d last = wp.at(iLast);
Base::Vector3d penUlt = wp.at(iPen);
last.y = penUlt.y;
wp.at(iLast) = last;
}
if (adjust && wp.size() > 1) {
int iLast = wp.size() - 1;
int iPen = wp.size() - 2;
Base::Vector3d last = wp.at(iLast);
Base::Vector3d penUlt = wp.at(iPen);
last.y = penUlt.y;
wp.at(iLast) = last;
}
WayPoints.setValues(wp);
}
@@ -225,46 +209,39 @@ void DrawLeaderLine::adjustLastSegment()
//middle of last line segment
Base::Vector3d DrawLeaderLine::getTileOrigin() const
{
Base::Vector3d result;
std::vector<Base::Vector3d> wp = WayPoints.getValues();
if (wp.size() > 1) {
Base::Vector3d last = wp.rbegin()[0];
Base::Vector3d second = wp.rbegin()[1];
result = (last + second) / 2.0;
} else {
Base::Console().Warning("DLL::getTileOrigin - no waypoints\n");
return (last + second) / 2.0;
}
return result;
Base::Console().Warning("DLL::getTileOrigin - no waypoints\n");
return Base::Vector3d();
}
//start of last line segment
Base::Vector3d DrawLeaderLine::getKinkPoint() const
{
Base::Vector3d result;
std::vector<Base::Vector3d> wp = WayPoints.getValues();
if (wp.size() > 1) {
Base::Vector3d second = wp.rbegin()[1];
result = second;
} else {
Base::Console().Warning("DLL::getKinkPoint - no waypoints\n");
return wp.rbegin()[1]; // Second
}
return result;
Base::Console().Warning("DLL::getKinkPoint - no waypoints\n");
return Base::Vector3d();
}
//end of last line segment
Base::Vector3d DrawLeaderLine::getTailPoint() const
{
Base::Vector3d result;
std::vector<Base::Vector3d> wp = WayPoints.getValues();
if (!wp.empty()) {
Base::Vector3d last = wp.rbegin()[0];
result = last;
} else {
Base::Console().Warning("DLL::getTailPoint - no waypoints\n");
return wp.rbegin()[0]; // Last
}
return result;
Base::Console().Warning("DLL::getTailPoint - no waypoints\n");
return Base::Vector3d();
}
@@ -272,8 +249,7 @@ bool DrawLeaderLine::getDefAuto() const
{
Base::Reference<ParameterGrp> hGrp = App::GetApplication().GetUserParameter().GetGroup("BaseApp")->
GetGroup("Preferences")->GetGroup("Mod/TechDraw/LeaderLine");
bool result = hGrp->GetBool("AutoHorizontal", true);
return result;
return hGrp->GetBool("AutoHorizontal", true);
}