[TD]fix vertex-edge dimension

This commit is contained in:
wandererfan
2023-12-20 17:53:28 -05:00
parent 817f6539ae
commit 2cc6c1f504
3 changed files with 12 additions and 10 deletions

View File

@@ -429,7 +429,7 @@ void execDistance(Gui::Command* cmd)
StringVector acceptableGeometry({"Edge", "Vertex"});
std::vector<int> minimumCounts({1, 2});
std::vector<DimensionGeometryType> acceptableDimensionGeometrys(
{isVertical, isHorizontal, isDiagonal});
{isVertical, isHorizontal, isDiagonal, isHybrid});
//what 2d geometry configuration did we receive?
DimensionGeometryType geometryRefs2d = validateDimSelection(
@@ -528,7 +528,7 @@ void execDistanceX(Gui::Command* cmd)
//Define the geometric configuration required for a length dimension
StringVector acceptableGeometry({"Edge", "Vertex"});
std::vector<int> minimumCounts({1, 2});
std::vector<DimensionGeometryType> acceptableDimensionGeometrys({isHorizontal, isDiagonal});
std::vector<DimensionGeometryType> acceptableDimensionGeometrys({isHorizontal, isDiagonal, isHybrid});
//what 2d geometry configuration did we receive?
DimensionGeometryType geometryRefs2d = validateDimSelection(
@@ -627,7 +627,7 @@ void execDistanceY(Gui::Command* cmd)
//Define the geometric configuration required for a length dimension
StringVector acceptableGeometry({"Edge", "Vertex"});
std::vector<int> minimumCounts({1, 2});
std::vector<DimensionGeometryType> acceptableDimensionGeometrys({isVertical, isDiagonal});
std::vector<DimensionGeometryType> acceptableDimensionGeometrys({isVertical, isDiagonal, isHybrid});
//what 2d geometry configuration did we receive?
DimensionGeometryType geometryRefs2d = validateDimSelection(

View File

@@ -278,7 +278,12 @@ bool TechDraw::checkGeometryOccurences(StringVector subNames, GeomCountMap keyed
//return the first valid configuration contained in the already validated references
DimensionGeometryType TechDraw::getGeometryConfiguration(ReferenceVector valid2dReferences)
{
DimensionGeometryType config = isValidMultiEdge(valid2dReferences);
DimensionGeometryType config = isValidHybrid(valid2dReferences);
if (config > isInvalid) {
return config;
}
config = isValidMultiEdge(valid2dReferences);
if (config > isInvalid) {
return config;
}
@@ -290,10 +295,6 @@ DimensionGeometryType TechDraw::getGeometryConfiguration(ReferenceVector valid2d
if (config > isInvalid) {
return config;
}
config = isValidHybrid(valid2dReferences);
if (config > isInvalid) {
return config;
}
// no valid configuration found
return isInvalid;
@@ -660,7 +661,7 @@ DimensionGeometryType TechDraw::isValidHybrid(ReferenceVector refs)
}
if (vertexCount > 0 && edgeCount > 0) {
//must be a diagonal dim? could it be isHorizontal or isVertical?
return isDiagonal;
return isHybrid;
}
return isInvalid;
@@ -670,7 +671,7 @@ DimensionGeometryType TechDraw::isValidHybrid(ReferenceVector refs)
DimensionGeometryType TechDraw::isValidHybrid3d(DrawViewPart* dvp, ReferenceVector refs)
{
(void)dvp;
//we don't have a special check for 3d in this case
//we can reuse the 2d check here.
return isValidHybrid(refs);
}

View File

@@ -59,6 +59,7 @@ enum DimensionGeometryEnum {
isAngle3Pt,
isMultiEdge,
isZLimited,
isHybrid,
isViewReference //never needs to be specified in the acceptable list
};