| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #ifndef TECHDRAW_DIMENSIONVALIDATORS_H |
| | #define TECHDRAW_DIMENSIONVALIDATORS_H |
| |
|
| | #include <Mod/TechDraw/TechDrawGlobal.h> |
| | #include <Mod/TechDraw/App/DrawViewDimension.h> |
| |
|
| |
|
| | namespace App |
| | { |
| | class Document; |
| | class DocumentObject; |
| | } |
| |
|
| | using StringVector = std::vector<std::string>; |
| | using GeomCount = std::pair<std::string, int>; |
| | using GeomCountVector = std::vector<GeomCount>; |
| | using GeomCountMap = std::map<std::string, int>; |
| | using GeometrySet = std::unordered_set<std::string>; |
| |
|
| | namespace TechDraw |
| | { |
| |
|
| | class DrawViewPart; |
| |
|
| | enum class DimensionGeometry { |
| | isInvalid, |
| | isHorizontal, |
| | isVertical, |
| | isDiagonal, |
| | isCircle, |
| | isEllipse, |
| | isBSplineCircle, |
| | isBSpline, |
| | isAngle, |
| | isAngle3Pt, |
| | isMultiEdge, |
| | isZLimited, |
| | isHybrid, |
| | isFace, |
| | isViewReference |
| | }; |
| |
|
| | DrawViewPart* getReferencesFromSelection(ReferenceVector& references2d, |
| | ReferenceVector& references3d); |
| | DimensionGeometry validateDimSelection(const ReferenceVector& references, |
| | const StringVector& acceptableGeometry, |
| | const std::vector<int>& minimumCounts, |
| | const std::vector<DimensionGeometry>& acceptableDimensionGeometrys); |
| | DimensionGeometry validateDimSelection3d(DrawViewPart* dvp, |
| | const ReferenceVector& references, |
| | const StringVector& acceptableGeometry, |
| | const std::vector<int>& minimumCounts, |
| | const std::vector<DimensionGeometry>& acceptableDimensionGeometrys); |
| |
|
| | bool validateSubnameList(const StringVector& subNames, const GeometrySet& acceptableGeometrySet); |
| |
|
| | DimensionGeometry getGeometryConfiguration(ReferenceVector valid2dReferences); |
| | DimensionGeometry getGeometryConfiguration3d(DrawViewPart* dvp, |
| | const ReferenceVector& valid3dReferences); |
| |
|
| | GeomCountMap loadRequiredCounts(const StringVector& acceptableGeometry, |
| | const std::vector<int>& minimumCouts); |
| | bool checkGeometryOccurrences(const StringVector& subNames, GeomCountMap keyedMinimumCounts); |
| |
|
| | DimensionGeometry isValidVertexes(const ReferenceVector& refs); |
| | DimensionGeometry isValidMultiEdge(const ReferenceVector& refs); |
| | DimensionGeometry isValidSingleEdge(const ReferenceEntry& ref); |
| | DimensionGeometry isValidSingleFace(const ReferenceEntry& ref); |
| | DimensionGeometry isValidHybrid(const ReferenceVector& refs); |
| |
|
| | DimensionGeometry isValidVertexes3d(DrawViewPart* dvp, const ReferenceVector& refs); |
| | DimensionGeometry isValidMultiEdge3d(DrawViewPart* dvp, const ReferenceVector& refs); |
| | DimensionGeometry isValidSingleEdge3d(DrawViewPart* dvp, const ReferenceEntry& ref); |
| | DimensionGeometry isValidSingleFace3d(DrawViewPart* dvp, const ReferenceEntry& ref); |
| | DimensionGeometry isValidHybrid3d(DrawViewPart* dvp, const ReferenceVector& refs); |
| |
|
| | long int mapGeometryTypeToDimType(long int dimType, DimensionGeometry geometry2d, |
| | DimensionGeometry geometry3d); |
| |
|
| | bool refsMatchToken(const ReferenceVector& refs, const std::string& matchToken); |
| |
|
| | DimensionGeometry lineOrientation(const Base::Vector3d& point0, |
| | const Base::Vector3d& point1); |
| |
|
| |
|
| | } |
| | #endif |
| |
|
| |
|