Toponaming: Squash to one index character in element names

This commit is contained in:
bgbsww
2024-08-10 23:23:32 -04:00
parent 5b7e03013e
commit da61574bb4
3 changed files with 3 additions and 6 deletions

View File

@@ -93,8 +93,6 @@ const char *Data::hasMappedElementName(const char *subname) {
return isMappedElement(findElementName(subname));
}
// Currently used by CrossSection.cpp and FeatureTransformed.cpp with different label types
// with a default of "I" and "_" used by CrossSection.
const std::string Data::indexSuffix(int index, const char *label)
{
if ( index < 2 ) { // Don't add a suffix for item #1, begin appending at 2

View File

@@ -69,8 +69,7 @@ constexpr const char* POSTFIX_GEN = ";:G";
constexpr const char* POSTFIX_MODGEN = ";:MG";
constexpr const char* POSTFIX_DUPLICATE = ";D";
constexpr const char* ELEMENT_MAP_INDEX = "I";
constexpr const char* ELEMENT_MAP_INDEX2 = "_";
constexpr const char* ELEMENT_MAP_INDEX = "_";
/// Check if a subname contains missing element
AppExport bool hasMissingElement(const char *subname);

View File

@@ -265,7 +265,7 @@ void TopoCrossSection::sliceNonSolid(int idx,
BRepAlgoAPI_Section cs(shape.getShape(), gp_Pln(a, b, c, -d));
if (cs.IsDone()) {
std::string prefix(op);
prefix += Data::indexSuffix(idx,Data::ELEMENT_MAP_INDEX2);
prefix += Data::indexSuffix(idx);
auto res = TopoShape()
.makeElementShape(cs, shape, prefix.c_str())
.makeElementWires()
@@ -294,7 +294,7 @@ void TopoCrossSection::sliceSolid(int idx,
BRepPrimAPI_MakeHalfSpace mkSolid(TopoDS::Face(face.getShape()), refPoint);
TopoShape solid(idx);
std::string prefix(op);
prefix += Data::indexSuffix(idx,Data::ELEMENT_MAP_INDEX2);
prefix += Data::indexSuffix(idx);
solid.makeElementShape(mkSolid, face, prefix.c_str());
BRepAlgoAPI_Cut mkCut(shape.getShape(), solid.getShape());