From 928cc7bcc4b5252c815919adb1fe585326873d9a Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 21 Dec 2016 17:02:06 +0100 Subject: [PATCH] replace invalid characters in VRML string with underscore --- src/Gui/ViewProvider.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Gui/ViewProvider.cpp b/src/Gui/ViewProvider.cpp index 2241e87fd..e65b95d48 100644 --- a/src/Gui/ViewProvider.cpp +++ b/src/Gui/ViewProvider.cpp @@ -265,7 +265,21 @@ SbMatrix ViewProvider::convert(const Base::Matrix4D &rcMatrix) const void ViewProvider::addDisplayMaskMode(SoNode *node, const char* type) { - node->setName(type); + if (type) { + std::string name = type; + for (std::string::iterator it = name.begin(); it != name.end(); ++it) { + if (it == name.begin()) { + if (!SbName::isBaseNameStartChar(*it)) + *it = '_'; + } + else { + if (!SbName::isBaseNameChar(*it)) + *it = '_'; + } + } + node->setName(name.c_str()); + } + _sDisplayMaskModes[type] = pcModeSwitch->getNumChildren(); pcModeSwitch->addChild(node); }