7#include "MRPch/MRBindingMacros.h"
19[[nodiscard]] MRMESH_API std::string
systemToUtf8(
const std::string & system );
23[[nodiscard]] MRMESH_API std::string
utf8ToSystem(
const std::string & utf8 );
30[[nodiscard]]
MR_BIND_IGNORE MRMESH_API std::string Utf16ToUtf8(
const std::wstring_view & utf16 );
33#if defined __cpp_lib_char8_t
35[[nodiscard]]
MR_BIND_IGNORE inline std::string
asString(
const std::u8string & s ) {
return { s.begin(), s.end() }; }
36[[nodiscard]]
MR_BIND_IGNORE inline std::u8string
asU8String(
const std::string & s ) {
return { s.begin(), s.end() }; }
38#if defined( _LIBCPP_VERSION ) && _LIBCPP_VERSION < 12000
39[[nodiscard]]
MR_BIND_IGNORE inline std::filesystem::path
pathFromUtf8(
const std::string & s ) {
return std::filesystem::path( s ); }
40[[nodiscard]]
MR_BIND_IGNORE inline std::filesystem::path
pathFromUtf8(
const char * s ) {
return std::filesystem::path( std::string( s ) ); }
60#if defined( _LIBCPP_VERSION ) && _LIBCPP_VERSION < 12000
61[[nodiscard]]
inline std::string
utf8string(
const std::filesystem::path & path )
62 {
return path.u8string(); }
64[[nodiscard]]
inline std::string
utf8string(
const std::filesystem::path & path )
65 {
return asString( path.u8string() ); }
73[[nodiscard]] MRMESH_API std::string
utf8substr(
const char * s,
size_t pos,
size_t count );
87 {
return c ==
'?' || c ==
'*' || c ==
'/' || c ==
'\\' || c ==
'"' || c ==
'<' || c ==
'>' || c ==
':' || c ==
'|' || (unsigned)c < 32; }
108[[nodiscard]] MRMESH_API std::string
commonFilesName(
const std::vector<std::filesystem::path> & files );
116[[deprecated(
"Use `valueToString()` from `MRViewer/MRUnits.h` instead!")]]
128 return "Loading canceled: " +
utf8string( path );
132[[nodiscard]] MRMESH_API std::string
toLower( std::string str );
MRMESH_API std::string utf8ToSystem(const std::string &utf8)
std::string utf8string(const std::filesystem::path &path)
returns filename as UTF8-encoded string
Definition MRStringConvert.h:64
MRMESH_API std::string systemToUtf8(const std::string &system)
converts system encoded string to UTF8-encoded string
MR_BIND_IGNORE MRMESH_API std::wstring utf8ToWide(const char *utf8)
converts UTF8-encoded string into UTF16-encoded string
MRMESH_API std::string utf8substr(const char *s, size_t pos, size_t count)
MR_BIND_IGNORE const std::string & asU8String(const std::string &s)
Definition MRStringConvert.h:49
MR_BIND_IGNORE MRMESH_API std::string wideToUtf8(const wchar_t *wide)
converts wide null terminating string to UTF8-encoded string
MR_BIND_IGNORE std::filesystem::path pathFromUtf8(const std::string &s)
Definition MRStringConvert.h:54
ImVec2 size(const ViewportRectangle &rect)
Definition MRViewport.h:32
MR_BIND_IGNORE auto unexpected(E &&e)
Definition MRExpected.h:37
tl::expected< T, E > Expected
Definition MRExpected.h:31
MRMESH_API const char * asString(ColoringType ct)
returns string representation of enum values
std::array< Vector3f, 3 > MR_BIND_IGNORE
Definition MRMeshBuilderTypes.h:13
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
MRMESH_API MR_BIND_IGNORE char * formatNoTrailingZeros(char *fmt, double v, int digitsAfterPoint, int precision=6)
std::string getCancelMessage(const std::filesystem::path &path)
Returns message showed when loading is canceled.
Definition MRStringConvert.h:126
MRMESH_API std::string bytesString(size_t size)
MRMESH_API double roundToPrecision(double v, int precision)
returns given value rounded to given number of decimal digits
MRMESH_API bool hasProhibitedChars(const std::string &line)
returns true if line contains at least one character (c) for which isProhibitedChar(c)==true
Expected< T > addFileNameInError(Expected< T > v, const std::filesystem::path &file)
if (v) contains an error, then appends given file name to that error
Definition MRStringConvert.h:97
MRMESH_API std::string toLower(std::string str)
return a copy of the string with all alphabetic ASCII characters replaced with upper-case variants
MRMESH_API std::string replaceProhibitedChars(const std::string &line, char replacement='_')
replace all characters (c), where isProhibitedChar(c)==true, with replacement char
MRMESH_API std::string commonFilesName(const std::vector< std::filesystem::path > &files)
bool isProhibitedChar(char c)
Definition MRStringConvert.h:86