mirror of
https://github.com/4sval/FModel.git
synced 2026-04-25 15:39:01 -05:00
fix material color overlapping material name
This commit is contained in:
parent
45f4e9a476
commit
061a0de29b
|
|
@ -278,10 +278,10 @@ namespace FModel.ViewModels
|
||||||
|
|
||||||
public void CopySelectedMaterialName()
|
public void CopySelectedMaterialName()
|
||||||
{
|
{
|
||||||
if (SelectedModel is not { } m || m.SelectedGeometry is null)
|
if (SelectedModel is not { } m || m.SelectedGeometry?.Tag is null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Clipboard.SetText(m.SelectedGeometry.Name.TrimEnd());
|
Clipboard.SetText(m.SelectedGeometry.DisplayName.TrimEnd());
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<bool> TryChangeSelectedMaterial(UMaterialInstance materialInstance)
|
public async Task<bool> TryChangeSelectedMaterial(UMaterialInstance materialInstance)
|
||||||
|
|
@ -314,10 +314,10 @@ namespace FModel.ViewModels
|
||||||
Application.Current.Dispatcher.Invoke(() =>
|
Application.Current.Dispatcher.Invoke(() =>
|
||||||
{
|
{
|
||||||
var s = FixName(materialInstance.Name);
|
var s = FixName(materialInstance.Name);
|
||||||
cam.Group3d.Add(new MeshGeometryModel3D
|
cam.Group3d.Add(new CustomMeshGeometryModel3D
|
||||||
{
|
{
|
||||||
Transform = new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(1,0,0), -90)),
|
Transform = new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(1,0,0), -90)),
|
||||||
Tag = s, Name = s, Geometry = builder.ToMeshGeometry3D(),
|
DisplayName = s, Geometry = builder.ToMeshGeometry3D(),
|
||||||
Material = m, IsTransparent = isTransparent, IsRendering = isRendering
|
Material = m, IsTransparent = isTransparent, IsRendering = isRendering
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
@ -384,9 +384,9 @@ namespace FModel.ViewModels
|
||||||
var (m, isRendering, isTransparent) = LoadMaterial(unrealMaterial);
|
var (m, isRendering, isTransparent) = LoadMaterial(unrealMaterial);
|
||||||
Application.Current.Dispatcher.Invoke(() =>
|
Application.Current.Dispatcher.Invoke(() =>
|
||||||
{
|
{
|
||||||
cam.Group3d.Add(new MeshGeometryModel3D
|
cam.Group3d.Add(new CustomMeshGeometryModel3D
|
||||||
{
|
{
|
||||||
Name = unrealMaterial.Name, Tag = FixName(section.MaterialName ?? unrealMaterial.Name),
|
DisplayName = FixName(section.MaterialName ?? unrealMaterial.Name),
|
||||||
Geometry = builder.ToMeshGeometry3D(), Material = m, IsTransparent = isTransparent,
|
Geometry = builder.ToMeshGeometry3D(), Material = m, IsTransparent = isTransparent,
|
||||||
IsRendering = isRendering
|
IsRendering = isRendering
|
||||||
});
|
});
|
||||||
|
|
@ -642,7 +642,7 @@ namespace FModel.ViewModels
|
||||||
SetProperty(ref _renderingToggle, value);
|
SetProperty(ref _renderingToggle, value);
|
||||||
foreach (var g in Group3d)
|
foreach (var g in Group3d)
|
||||||
{
|
{
|
||||||
if (g is not MeshGeometryModel3D geometryModel)
|
if (g is not CustomMeshGeometryModel3D geometryModel)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
geometryModel.IsRendering = !geometryModel.IsRendering;
|
geometryModel.IsRendering = !geometryModel.IsRendering;
|
||||||
|
|
@ -659,7 +659,7 @@ namespace FModel.ViewModels
|
||||||
SetProperty(ref _wireframeToggle, value);
|
SetProperty(ref _wireframeToggle, value);
|
||||||
foreach (var g in Group3d)
|
foreach (var g in Group3d)
|
||||||
{
|
{
|
||||||
if (g is not MeshGeometryModel3D geometryModel)
|
if (g is not CustomMeshGeometryModel3D geometryModel)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
geometryModel.RenderWireframe = !geometryModel.RenderWireframe;
|
geometryModel.RenderWireframe = !geometryModel.RenderWireframe;
|
||||||
|
|
@ -676,7 +676,7 @@ namespace FModel.ViewModels
|
||||||
SetProperty(ref _showMaterialColor, value);
|
SetProperty(ref _showMaterialColor, value);
|
||||||
for (int i = 0; i < Group3d.Count; i++)
|
for (int i = 0; i < Group3d.Count; i++)
|
||||||
{
|
{
|
||||||
if (Group3d[i] is not MeshGeometryModel3D { Material: PBRMaterial material } m)
|
if (Group3d[i] is not CustomMeshGeometryModel3D { Material: PBRMaterial material } m)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
var index = B(i);
|
var index = B(i);
|
||||||
|
|
@ -701,7 +701,7 @@ namespace FModel.ViewModels
|
||||||
SetProperty(ref _diffuseOnlyToggle, value);
|
SetProperty(ref _diffuseOnlyToggle, value);
|
||||||
foreach (var g in Group3d)
|
foreach (var g in Group3d)
|
||||||
{
|
{
|
||||||
if (g is not MeshGeometryModel3D { Material: PBRMaterial material })
|
if (g is not CustomMeshGeometryModel3D { Material: PBRMaterial material })
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
material.RenderAmbientOcclusionMap = !material.RenderAmbientOcclusionMap;
|
material.RenderAmbientOcclusionMap = !material.RenderAmbientOcclusionMap;
|
||||||
|
|
@ -716,8 +716,8 @@ namespace FModel.ViewModels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private MeshGeometryModel3D _selectedGeometry; // selected material
|
private CustomMeshGeometryModel3D _selectedGeometry; // selected material
|
||||||
public MeshGeometryModel3D SelectedGeometry
|
public CustomMeshGeometryModel3D SelectedGeometry
|
||||||
{
|
{
|
||||||
get => _selectedGeometry;
|
get => _selectedGeometry;
|
||||||
set => SetProperty(ref _selectedGeometry, value);
|
set => SetProperty(ref _selectedGeometry, value);
|
||||||
|
|
@ -754,4 +754,9 @@ namespace FModel.ViewModels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class CustomMeshGeometryModel3D : MeshGeometryModel3D
|
||||||
|
{
|
||||||
|
public string DisplayName { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ namespace FModel.Views
|
||||||
|
|
||||||
private void OnMouse3DDown(object sender, MouseDown3DEventArgs e)
|
private void OnMouse3DDown(object sender, MouseDown3DEventArgs e)
|
||||||
{
|
{
|
||||||
if (!Keyboard.Modifiers.HasFlag(ModifierKeys.Shift) || e.HitTestResult.ModelHit is not MeshGeometryModel3D m) return;
|
if (!Keyboard.Modifiers.HasFlag(ModifierKeys.Shift) || e.HitTestResult.ModelHit is not CustomMeshGeometryModel3D m) return;
|
||||||
_applicationView.ModelViewer.SelectedModel.SelectedGeometry = m;
|
_applicationView.ModelViewer.SelectedModel.SelectedGeometry = m;
|
||||||
MaterialsListName.ScrollIntoView(m);
|
MaterialsListName.ScrollIntoView(m);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -657,7 +657,7 @@
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Image Grid.Column="0" Source="/FModel;component/Resources/materialicon.png" Width="16" Height="16" Margin="5 0" HorizontalAlignment="Center" />
|
<Image Grid.Column="0" Source="/FModel;component/Resources/materialicon.png" Width="16" Height="16" Margin="5 0" HorizontalAlignment="Center" />
|
||||||
<TextBlock Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Center" Text="{Binding Tag}" TextTrimming="CharacterEllipsis" />
|
<TextBlock Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Center" Text="{Binding DisplayName}" TextTrimming="CharacterEllipsis" />
|
||||||
<ToggleButton Grid.Column="3" IsChecked="{Binding IsRendering}" Padding="3" Style="{DynamicResource {x:Static adonisUi:Styles.ToolbarToggleButton}}">
|
<ToggleButton Grid.Column="3" IsChecked="{Binding IsRendering}" Padding="3" Style="{DynamicResource {x:Static adonisUi:Styles.ToolbarToggleButton}}">
|
||||||
<Viewbox Width="16" Height="16" HorizontalAlignment="Center">
|
<Viewbox Width="16" Height="16" HorizontalAlignment="Center">
|
||||||
<Canvas Width="24" Height="24">
|
<Canvas Width="24" Height="24">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user