private static void OnIsVisibleChanged(Object sender, DependencyPropertyChangedEventArgs e) { PrimitiveVisual3D p = (PrimitiveVisual3D)sender; bool visible = (bool)e.NewValue; SetIsVisible(p.Children, visible); }
protected static void OnBackMaterialChanged(Object sender, DependencyPropertyChangedEventArgs e) { PrimitiveVisual3D p = (PrimitiveVisual3D)sender; GeometryModel3D geometry = (p.Content as GeometryModel3D); if (geometry != null) { geometry.BackMaterial = (Material)e.NewValue; } }
private void SetMaterial(ModelVisual3D visual, bool frontMaterial, bool backMaterial) { if (GetMaterialShared(visual)) { if (visual is PrimitiveVisual3D) { PrimitiveVisual3D primitive = (PrimitiveVisual3D)visual; if (frontMaterial) { if (this.Material != null) { primitive.Material = this.Material.CloneCurrentValue(); } else { primitive.Material = null; } } if (backMaterial) { if (this.BackMaterial != null) { primitive.BackMaterial = this.BackMaterial.CloneCurrentValue(); } else { primitive.BackMaterial = null; } } } else if (visual is ScreenSpaceLines3D) { if (frontMaterial) { if (GetMaterialShared(visual)) { SetColor(new ModelVisual3D[] { visual }, GetDiffuseMaterial(this.Material)); } } } foreach (Visual3D child in visual.Children) { if (child is ModelVisual3D) { SetMaterial((ModelVisual3D)child, frontMaterial, backMaterial); } } } }
private static void OnIsVisibleChanged(Object sender, DependencyPropertyChangedEventArgs e) { PrimitiveVisual3D p = (PrimitiveVisual3D)sender; bool visible = (bool)e.NewValue; if (visible) { p.Content = p._content; } else { p.Content = null; } }