| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | #include "ImportOCAFGui.h" |
| | #include <Gui/Application.h> |
| | #include <Gui/ViewProviderLink.h> |
| | #include <Mod/Part/Gui/ViewProvider.h> |
| |
|
| | using namespace ImportGui; |
| |
|
| | ImportOCAFGui::ImportOCAFGui(Handle(TDocStd_Document) hDoc, App::Document* pDoc, const std::string& name) |
| | : ImportOCAF2(hDoc, pDoc, name) |
| | {} |
| |
|
| | void ImportOCAFGui::applyFaceColors(Part::Feature* part, const std::vector<Base::Color>& colors) |
| | { |
| | auto vp = dynamic_cast<PartGui::ViewProviderPartExt*>( |
| | Gui::Application::Instance->getViewProvider(part) |
| | ); |
| | if (!vp) { |
| | return; |
| | } |
| | if (colors.empty()) { |
| | return; |
| | } |
| |
|
| | if (colors.size() == 1) { |
| | vp->ShapeAppearance.setDiffuseColor(colors.front()); |
| | vp->Transparency.setValue(100 * colors.front().transparency()); |
| | } |
| | else { |
| | vp->ShapeAppearance.setDiffuseColors(colors); |
| | } |
| | } |
| |
|
| | void ImportOCAFGui::applyEdgeColors(Part::Feature* part, const std::vector<Base::Color>& colors) |
| | { |
| | auto vp = dynamic_cast<PartGui::ViewProviderPartExt*>( |
| | Gui::Application::Instance->getViewProvider(part) |
| | ); |
| | if (!vp) { |
| | return; |
| | } |
| | if (colors.size() == 1) { |
| | vp->LineColor.setValue(colors.front()); |
| | } |
| | else { |
| | vp->LineColorArray.setValues(colors); |
| | } |
| | } |
| |
|
| | void ImportOCAFGui::applyLinkColor(App::DocumentObject* obj, int index, Base::Color color) |
| | { |
| | auto vp = dynamic_cast<Gui::ViewProviderLink*>(Gui::Application::Instance->getViewProvider(obj)); |
| | if (!vp) { |
| | return; |
| | } |
| | if (index < 0) { |
| | vp->OverrideMaterial.setValue(true); |
| | vp->ShapeMaterial.setDiffuseColor(color); |
| | return; |
| | } |
| | if (vp->OverrideMaterialList.getSize() <= index) { |
| | vp->OverrideMaterialList.setSize(index + 1); |
| | } |
| | vp->OverrideMaterialList.set1Value(index, true); |
| | App::Material mat(App::Material::DEFAULT); |
| | if (vp->MaterialList.getSize() <= index) { |
| | vp->MaterialList.setSize(index + 1, mat); |
| | } |
| | mat.diffuseColor = color; |
| | vp->MaterialList.set1Value(index, mat); |
| | } |
| |
|
| | void ImportOCAFGui::applyElementColors( |
| | App::DocumentObject* obj, |
| | const std::map<std::string, Base::Color>& colors |
| | ) |
| | { |
| | auto vp = Gui::Application::Instance->getViewProvider(obj); |
| | if (!vp) { |
| | return; |
| | } |
| | (void)colors; |
| | } |
| |
|