[TD]Refactor Dimensions for 3d upgrade

- separate validation, geometry and reference handling into
  individual files
- improve 3d reference geometry handling
- eliminate duplicate dim creation code

- add Dimension reference repair dialog

- Refactor formatting out of DrawViewDimension

- move dimension repaint control to ViewProvider
This commit is contained in:
wandererfan
2022-10-28 08:46:37 -04:00
committed by WandererFan
parent aeeb62d204
commit 1b547dff72
39 changed files with 5181 additions and 2544 deletions

View File

@@ -73,8 +73,8 @@ PyObject* DrawViewDimensionPy::getLinearPoints(PyObject* args)
DrawViewDimension* dvd = getDrawViewDimensionPtr();
pointPair pts = dvd->getLinearPoints();
Py::List ret;
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.first))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.second))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.first()))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.second()))));
return Py::new_reference_to(ret);
}
@@ -88,10 +88,10 @@ PyObject* DrawViewDimensionPy::getArcPoints(PyObject* args)
arcPoints pts = dvd->getArcPoints();
Py::List ret;
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.center))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.onCurve.first))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.onCurve.second))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.arcEnds.first))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.arcEnds.second))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.onCurve.first()))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.onCurve.second()))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.arcEnds.first()))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.arcEnds.second()))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.midArc))));
return Py::new_reference_to(ret);
}
@@ -105,9 +105,9 @@ PyObject* DrawViewDimensionPy::getAnglePoints(PyObject* args)
DrawViewDimension* dvd = getDrawViewDimensionPtr();
anglePoints pts = dvd->getAnglePoints();
Py::List ret;
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.ends.first))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.ends.second))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.vertex))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.first()))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.second()))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.vertex()))));
return Py::new_reference_to(ret);
}
@@ -120,8 +120,8 @@ PyObject* DrawViewDimensionPy::getArrowPositions(PyObject* args)
DrawViewDimension* dvd = getDrawViewDimensionPtr();
pointPair pts = dvd->getArrowPositions();
Py::List ret;
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.first))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.second))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.first()))));
ret.append(Py::asObject(new Base::VectorPy(new Base::Vector3d(pts.second()))));
return Py::new_reference_to(ret);
}
PyObject *DrawViewDimensionPy::getCustomAttributes(const char* /*attr*/) const