Import: Fix of alpha channel misinterpretation

This commit is contained in:
wmayer
2024-11-30 14:01:07 +01:00
committed by Chris Hennes
parent 9d895e433e
commit fcf009a230
6 changed files with 21 additions and 25 deletions

View File

@@ -1002,7 +1002,7 @@ void LinkView::setMaterial(int index, const App::Material *material) {
return;
}
App::Color c = material->diffuseColor;
c.a = material->transparency;
c.setTransparency(material->transparency);
pcLinkRoot->setColorOverride(c);
for(int i=0;i<getSize();++i)
setMaterial(i,nullptr);
@@ -1015,7 +1015,7 @@ void LinkView::setMaterial(int index, const App::Material *material) {
return;
}
App::Color c = material->diffuseColor;
c.a = material->transparency;
c.setTransparency(material->transparency);
info.pcRoot->setColorOverride(c);
}
}
@@ -3074,7 +3074,7 @@ std::map<std::string, App::Color> ViewProviderLink::getElementColors(const char
if(wildcard == "Face" || wildcard == "Face*" || wildcard.empty()) {
if(wildcard.size()==4 || OverrideMaterial.getValue()) {
App::Color c = ShapeMaterial.getValue().diffuseColor;
c.a = ShapeMaterial.getValue().transparency;
c.setTransparency(ShapeMaterial.getValue().transparency);
colors["Face"] = c;
if(wildcard.size()==4)
return colors;
@@ -3113,7 +3113,7 @@ std::map<std::string, App::Color> ViewProviderLink::getElementColors(const char
while(true) {
if(wildcard!=ViewProvider::hiddenMarker() && vp->OverrideMaterial.getValue()) {
auto color = ShapeMaterial.getValue().diffuseColor;
color.a = ShapeMaterial.getValue().transparency;
color.setTransparency(ShapeMaterial.getValue().transparency);
colors.emplace(wildcard,color);
}
auto link = vp->getObject()->getLinkedObject(false);
@@ -3139,7 +3139,7 @@ std::map<std::string, App::Color> ViewProviderLink::getElementColors(const char
if(!overrides[i])
continue;
auto color = mat.diffuseColor;
color.a = mat.transparency;
color.setTransparency(mat.transparency);
colors.emplace(std::to_string(i)+"."+wildcard,color);
}
}
@@ -3284,7 +3284,7 @@ void ViewProviderLink::setElementColors(const std::map<std::string, App::Color>
if(hasFaceColor) {
auto mat = ShapeMaterial.getValue();
mat.diffuseColor = faceColor;
mat.transparency = faceColor.a;
mat.transparency = faceColor.transparency();
ShapeMaterial.setStatus(App::Property::User3,true);
ShapeMaterial.setValue(mat);
ShapeMaterial.setStatus(App::Property::User3,false);