private static MeshGeometry3D GetMeshGeometry(double radius, List <Point3D> points) { var builder = new HelixToolkit.Wpf.MeshBuilder(); foreach (var p in points) { builder.AddSphere(p, radius); } return(builder.ToMesh()); }
/// <summary> /// Creates a model of the tetrahedron. Transparency is applied to the color. /// </summary> /// <param name="color"></param> /// <param name="radius"></param> /// <returns>A model representing the tetrahedron</returns> public override Model3D CreateModel(Material material, double radius) { var points = new Point3DCollection(Enumerable.Range(0, 2).Select(i => GetPosition(i))); // Create a mesh builder and add a box to it HelixToolkit.Wpf.MeshBuilder meshBuilder = new HelixToolkit.Wpf.MeshBuilder(false, false); meshBuilder.AddTriangle(Vertices[0].ToPoint3D(), Vertices[1].ToPoint3D(), Vertices[2].ToPoint3D()); MeshGeometry3D mesh = meshBuilder.ToMesh(true); return(new GeometryModel3D { Geometry = mesh, Material = material, BackMaterial = material }); }
/// <summary> /// Creates a model of the tetrahedron. Transparency is applied to the color. /// </summary> /// <param name="color"></param> /// <param name="radius"></param> /// <returns>A model representing the tetrahedron</returns> public override Model3D CreateModel(Material material, double radius) { HelixToolkit.Wpf.MeshBuilder meshBuilder = new HelixToolkit.Wpf.MeshBuilder(false, false); if (ArePointsCoplanar()) { SortVertices(); meshBuilder.AddQuad(Vertices[0].ToPoint3D(), Vertices[1].ToPoint3D(), Vertices[3].ToPoint3D(), Vertices[2].ToPoint3D()); } MeshGeometry3D mesh = meshBuilder.ToMesh(true); return(new GeometryModel3D { Geometry = mesh, Material = material, BackMaterial = material }); }
public static GeometryModel3D newPolygon3DOWN(HciLab.Utilities.Mathematics.Geometry2D.Polygon pPolygon, Color pColor, double pOffesetZ = 0) { GeometryModel3D model = new GeometryModel3D(); if (pPolygon != null) { HelixToolkit.Wpf.MeshBuilder meshBuilder = new HelixToolkit.Wpf.MeshBuilder(false, false); Int32Collection triangleIndexes = CuttingEarsTriangulatorNEW.Triangulate(pPolygon.Points); meshBuilder.Append(pPolygon.ToHelixToolkit3D(pOffesetZ).Points, triangleIndexes); model.Geometry = meshBuilder.ToMesh(); } model.Material = new DiffuseMaterial(new SolidColorBrush(pColor)); return(model); }
public static PanelHolderViewModel ToViewModel(this PanelHolder m, MachineElementViewModel parent = null) { var builder = new HelixToolkit.Wpf.MeshBuilder(); builder.AddSphere(m.Position.ToPoint3D(), 10.0); //return new PanelHolderViewModel() return(new WorkablePanelViewModel() { PanelHolderId = m.Id, Name = m.Name, Corner = m.Corner, Position = m.Position.ToPoint3D(), Parent = parent, MeshGeometry = builder.ToMesh(), Material = HelixToolkit.Wpf.Materials.Blue }); }
/// <summary> /// For 3D polygons /// </summary> /// <param name="pPolygon"></param> /// <returns></returns> internal static MeshGeometry3D FillPolygon(HelixToolkit.Wpf.Polygon3D pPolygon) { try { HelixToolkit.Wpf.MeshBuilder meshBuilder = new HelixToolkit.Wpf.MeshBuilder(false, false); HelixToolkit.Wpf.Polygon polygon = pPolygon.Flatten(); Int32Collection triangleIndexes = HelixToolkit.Wpf.CuttingEarsTriangulator.Triangulate(polygon.Points); meshBuilder.Append(pPolygon.Points, triangleIndexes); return(meshBuilder.ToMesh()); } catch (System.InvalidOperationException exp) { return(null); } }