| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #ifndef MEASURE_MEASUREMENT_H |
| | #define MEASURE_MEASUREMENT_H |
| |
|
| | #include <gp_Pnt.hxx> |
| | #include <TopAbs_ShapeEnum.hxx> |
| |
|
| | #include <App/DocumentObject.h> |
| | #include <App/PropertyLinks.h> |
| |
|
| | #include <Base/BaseClass.h> |
| | #include <Base/Vector3D.h> |
| | #include <Mod/Measure/MeasureGlobal.h> |
| |
|
| |
|
| | class TopoDS_Shape; |
| | namespace Measure |
| | { |
| | enum class MeasureType |
| | { |
| | Volumes, |
| | Edges, |
| | Line, |
| | TwoLines, |
| | TwoParallelLines, |
| | Circle, |
| | CircleArc, |
| | TwoCircles, |
| | CircleToEdge, |
| | CircleToSurface, |
| | CircleToCylinder, |
| | Surfaces, |
| | Cylinder, |
| | CylinderSection, |
| | TwoCylinders, |
| | Cone, |
| | Sphere, |
| | Torus, |
| | Plane, |
| | TwoPlanes, |
| | Points, |
| | PointToPoint, |
| | PointToEdge, |
| | PointToCircle, |
| | PointToSurface, |
| | PointToCylinder, |
| | EdgeToEdge, |
| | Invalid |
| | }; |
| |
|
| | class MeasureExport Measurement: public Base::BaseClass |
| | { |
| | TYPESYSTEM_HEADER_WITH_OVERRIDE(); |
| |
|
| | public: |
| | App::PropertyLinkSubList References3D; |
| |
|
| | public: |
| | Measurement(); |
| | ~Measurement() override; |
| |
|
| | void clear(); |
| | bool has3DReferences(); |
| |
|
| | |
| | int addReference3D(App::DocumentObject* obj, const std::string& subName); |
| | int addReference3D(App::DocumentObject* obj, const char* subName); |
| |
|
| | MeasureType getType(); |
| | MeasureType findType(); |
| |
|
| | |
| | PyObject* getPyObject() override; |
| | virtual unsigned int getMemSize() const; |
| |
|
| | |
| | double length() const; |
| | Base::Vector3d delta() const; |
| | double lineLineDistance() const; |
| | double circleCenterDistance() const; |
| | double planePlaneDistance() const; |
| | double cylinderAxisDistance() const; |
| |
|
| | |
| | double radius() const; |
| |
|
| | |
| | double diameter() const; |
| |
|
| | |
| | double angle(const Base::Vector3d& param = Base::Vector3d(0, 0, 0)) const; |
| |
|
| | |
| | Base::Vector3d massCenter() const; |
| |
|
| | |
| | double volume() const; |
| |
|
| | |
| | double area() const; |
| |
|
| | static Base::Vector3d toVector3d(const gp_Pnt gp) |
| | { |
| | return Base::Vector3d(gp.X(), gp.Y(), gp.Z()); |
| | } |
| |
|
| | bool planesAreParallel() const; |
| | bool linesAreParallel() const; |
| |
|
| | protected: |
| | |
| | |
| | TopoDS_Shape getShape( |
| | App::DocumentObject* obj, |
| | const char* subName, |
| | TopAbs_ShapeEnum hint = TopAbs_COMPOUND |
| | ) const; |
| |
|
| | private: |
| | MeasureType measureType; |
| | Py::SmartPtr PythonObject; |
| | }; |
| |
|
| |
|
| | } |
| |
|
| |
|
| | #endif |
| |
|