From 34af069a1387f95d513388f5d3bc2e1dc5a106db Mon Sep 17 00:00:00 2001 From: gil zhang Date: Sat, 3 Jun 2023 12:33:24 +0800 Subject: [PATCH] add model color --- .../DefaultActionExpressionProvider.cs | 6 +- .../ModelLoadCompactOverlayViewModel.cs | 118 ++++++++++++++++++ 2 files changed, 123 insertions(+), 1 deletion(-) diff --git a/src/ElectronBot.Braincase/Services/ActionExpression/DefaultActionExpressionProvider.cs b/src/ElectronBot.Braincase/Services/ActionExpression/DefaultActionExpressionProvider.cs index b261133..8f90952 100644 --- a/src/ElectronBot.Braincase/Services/ActionExpression/DefaultActionExpressionProvider.cs +++ b/src/ElectronBot.Braincase/Services/ActionExpression/DefaultActionExpressionProvider.cs @@ -123,7 +123,11 @@ public class DefaultActionExpressionProvider : IActionExpressionProvider //EmojiPlayHelper.Current.Enqueue(frameData); - + + if (!ElectronBotHelper.Instance.EbConnected) + { + await Task.Delay(40); + } _ = await service.SendToUsbDeviceAsync(frameData); //通过grpc通讯和树莓派传输数据 diff --git a/src/ElectronBot.Braincase/ViewModels/ModelLoadCompactOverlayViewModel.cs b/src/ElectronBot.Braincase/ViewModels/ModelLoadCompactOverlayViewModel.cs index 704de9f..bbb9283 100644 --- a/src/ElectronBot.Braincase/ViewModels/ModelLoadCompactOverlayViewModel.cs +++ b/src/ElectronBot.Braincase/ViewModels/ModelLoadCompactOverlayViewModel.cs @@ -121,6 +121,32 @@ public partial class ModelLoadCompactOverlayViewModel : ObservableRecipient } } } + else if (modelName == "Head1.obj") + { + if (newScene != null && newScene.Root != null) + { + foreach (var node in newScene.Root.Traverse()) + { + if (node is MeshNode meshNode) + { + meshNode.Material = DiffuseMaterials.LightBlue; + } + } + } + } + else if (modelName == "Head2.obj") + { + if (newScene != null && newScene.Root != null) + { + foreach (var node in newScene.Root.Traverse()) + { + if (node is MeshNode meshNode) + { + meshNode.Material = DiffuseMaterials.PureWhite; + } + } + } + } } } @@ -146,6 +172,30 @@ public partial class ModelLoadCompactOverlayViewModel : ObservableRecipient /// Must use UI thread to set value back. ModelCentroidPoint = centroid; } + + if (newScene != null && newScene.Root != null) + { + foreach (var node in newScene.Root.Traverse()) + { + if (node is MeshNode meshNode) + { + meshNode.Material = DiffuseMaterials.PureWhite; + } + } + } + } + else if (modelName == "Body1.obj") + { + if (newScene != null && newScene.Root != null) + { + foreach (var node in newScene.Root.Traverse()) + { + if (node is MeshNode meshNode) + { + meshNode.Material = DiffuseMaterials.LightBlue; + } + } + } } } } @@ -171,6 +221,33 @@ public partial class ModelLoadCompactOverlayViewModel : ObservableRecipient } } + + if (modelName == "RightArm1.obj") + { + if (newScene != null && newScene.Root != null) + { + foreach (var node in newScene.Root.Traverse()) + { + if (node is MeshNode meshNode) + { + meshNode.Material = DiffuseMaterials.PureWhite; + } + } + } + } + else if (modelName == "RightArm2.obj") + { + if (newScene != null && newScene.Root != null) + { + foreach (var node in newScene.Root.Traverse()) + { + if (node is MeshNode meshNode) + { + meshNode.Material = DiffuseMaterials.LightBlue; + } + } + } + } } } @@ -196,6 +273,33 @@ public partial class ModelLoadCompactOverlayViewModel : ObservableRecipient } } + + if (modelName == "LeftArm1.obj") + { + if (newScene != null && newScene.Root != null) + { + foreach (var node in newScene.Root.Traverse()) + { + if (node is MeshNode meshNode) + { + meshNode.Material = DiffuseMaterials.PureWhite; + } + } + } + } + else if (modelName == "LeftArm2.obj") + { + if (newScene != null && newScene.Root != null) + { + foreach (var node in newScene.Root.Traverse()) + { + if (node is MeshNode meshNode) + { + meshNode.Material = DiffuseMaterials.LightBlue; + } + } + } + } } } @@ -220,6 +324,20 @@ public partial class ModelLoadCompactOverlayViewModel : ObservableRecipient } } + + if (modelName == "Base.obj") + { + if (newScene != null && newScene.Root != null) + { + foreach (var node in newScene.Root.Traverse()) + { + if (node is MeshNode meshNode) + { + meshNode.Material = DiffuseMaterials.PureWhite; + } + } + } + } } }