Mesh::GetRegionName(element_or_elindex)

This commit is contained in:
Matthias Hochsteger 2024-11-22 15:39:07 +01:00
parent 7d483dcade
commit dd6638b1ab
4 changed files with 34 additions and 0 deletions

View File

@ -223,6 +223,16 @@ MyStr::MyStr(const string & st)
strcpy (str, st.c_str());
}
MyStr::MyStr(string_view sv)
{
length = unsigned(sv.length());
if (length > SHORTLEN)
str = new char[length + 1];
else
str = shortstr;
strcpy (str, sv.data());
}
MyStr::MyStr(const filesystem::path & path)
: MyStr(path.string())
{ }

View File

@ -60,6 +60,7 @@ public:
MyStr(const Point3d& p);
MyStr(const Vec3d& p);
MyStr(const string & st);
MyStr(string_view sv);
MyStr(const filesystem::path & st);
~MyStr();

View File

@ -7528,6 +7528,21 @@ namespace netgen
}
}
std::string_view Mesh :: GetRegionName (const Segment & el) const
{
return *const_cast<Mesh&>(*this).GetRegionNamesCD(GetDimension()-1)[el.edgenr-1];
}
std::string_view Mesh :: GetRegionName (const Element2d & el) const
{
return *const_cast<Mesh&>(*this).GetRegionNamesCD(GetDimension()-2)[GetFaceDescriptor(el).BCProperty()-1];
}
std::string_view Mesh :: GetRegionName (const Element & el) const
{
return *const_cast<Mesh&>(*this).GetRegionNamesCD(GetDimension()-3)[el.GetIndex()-1];
}
void Mesh :: SetUserData(const char * id, NgArray<int> & data)

View File

@ -749,6 +749,14 @@ namespace netgen
DLL_HEADER NgArray<string*> & GetRegionNamesCD (int codim);
DLL_HEADER std::string_view GetRegionName(const Segment & el) const;
DLL_HEADER std::string_view GetRegionName(const Element2d & el) const;
DLL_HEADER std::string_view GetRegionName(const Element & el) const;
std::string_view GetRegionName(SegmentIndex ei) const { return GetRegionName((*this)[ei]); }
std::string_view GetRegionName(SurfaceElementIndex ei) const { return GetRegionName((*this)[ei]); }
std::string_view GetRegionName(ElementIndex ei) const { return GetRegionName((*this)[ei]); }
///
void ClearFaceDescriptors()