public static Geometry3D GetProbePointModel(Point3D position, double radius) { var builder = new MeshBuilder(); builder.AddSphere(position.ToVector3(), radius); return(builder.ToMesh()); }
private IMachineElementViewModel CreateInjectElement(Point3D position, Vector3D direction) { var builder = new HelixToolkit.Wpf.SharpDX.MeshBuilder(); builder.AddCone((position + direction * 20.0).ToVector3(), position.ToVector3(), 4.0, true, 20); return(new InserterObjectViewModel() { Geometry = builder.ToMesh(), Material = Material, Visible = true }); }
private IProcedural GenerateMesh() { //GenerateMaterialProperties(); //GenerateCubeFaces(); //while (Material == null) { Debug.WriteLine($"Waiting for material - {Id}"); } //Debug.WriteLine($"Got material - {Id}"); HelixToolkit.Wpf.SharpDX.MeshBuilder b = new HelixToolkit.Wpf.SharpDX.MeshBuilder(); foreach (var f in Faces) { var face = f.Value; b.AddCubeFace(face.CubeCenter, face.Normal, face.Up, face.Distance, face.Width, face.Height); } var m = new MeshGeometryModel3D { Geometry = b.ToMesh(), CullMode = SharpDX.Direct3D11.CullMode.Back }; var scale = new ScaleTransform3D(1, 1, 1); var translate = new TranslateTransform3D(0, 0, 0); var group = new Transform3DGroup(); group.Children.Add(scale); group.Children.Add(translate); m.Transform = group; m.Material = PhysicalMaterial; if (PhysicalMaterial.DiffuseColor.Alpha < 1) { m.IsTransparent = true; } Mesh = m; return(this); }