Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void offshore::Scene::NodeColor(int nodeIndex, osg::Vec3f& color)
- {
- int maxColorCoordinate = 255;
- ed::string wireColor = getNodeParam(nodeIndex, "WireColor");
- if(wireColor.size() == 0)
- return;
- std::reverse(wireColor.begin(), wireColor.end());
- while(wireColor.size() > 6)
- wireColor.pop_back();
- while(wireColor.size() < 6)
- wireColor.push_back('0');
- std::reverse(wireColor.begin(), wireColor.end());
- for(size_t i = 0; i != wireColor.size(); i++)
- {
- wireColor[i] = toupper( wireColor[i]);
- if((wireColor[i] < '0') || ((wireColor[i] > '9') && (wireColor[i] < 'A')) || (wireColor[i] > 'F'))
- return;
- }
- color.z() = static_cast<float>( strtol( wireColor.c_str() + 4, NULL, 16 ) ) / maxColorCoordinate;
- wireColor.pop_back();
- wireColor.pop_back();
- color.y() = static_cast<float>( strtol( wireColor.c_str() + 2, NULL, 16 ) ) / maxColorCoordinate;
- wireColor.pop_back();
- wireColor.pop_back();
- color.x() = static_cast<float>( strtol( wireColor.c_str(), NULL, 16 ) ) / maxColorCoordinate;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement