Skip to content

Commit

Permalink
Fix initializing proper material for new layer
Browse files Browse the repository at this point in the history
  • Loading branch information
michaliskambi committed Aug 2, 2019
1 parent 35edb9a commit 5546ee8
Showing 1 changed file with 22 additions and 4 deletions.
26 changes: 22 additions & 4 deletions unity/Holo/Assets/Scripts/model_with_plate/ModelWithPlate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -641,9 +641,7 @@ private void LoadLayer(ModelLayer layer)

// Assign material to all MeshRenderer and SkinnedMeshRenderer inside
foreach (var renderer in l.Instance.GetComponentsInChildren<Renderer>()) {
renderer.sharedMaterial = layer.Simulation ?
DataVisualizationMaterial :
DefaultModelMaterial;
renderer.sharedMaterial = LayerMaterial(layer);
}

// update layersLoaded dictionary
Expand Down Expand Up @@ -737,18 +735,38 @@ public float AnimationSpeed
}
}

/* Based on layer properties, and current properties like Transparent,
* determine proper material of the layer.
*/
private Material LayerMaterial(ModelLayer layer)
{
if (layer.Simulation)
{
return DataVisualizationMaterial;
} else
if (Transparent)
{
return DefaultModelTransparentMaterial;
} else
{
return DefaultModelMaterial;
}
}

private bool transparent;
public bool Transparent {
get { return transparent; }
set
{
transparent = value;

// Transparent value changed, so update materials
if (layersLoaded != null) {
foreach (var layerPair in layersLoaded)
{
if (!layerPair.Key.Simulation) {
foreach (var renderer in layerPair.Value.Instance.GetComponentsInChildren<Renderer>()) {
renderer.sharedMaterial = value ? DefaultModelTransparentMaterial : DefaultModelMaterial;
renderer.sharedMaterial = LayerMaterial(layerPair.Key);
}
}
}
Expand Down

0 comments on commit 5546ee8

Please sign in to comment.