public bool Load(IEnumerable <Vector3D> net, IEnumerable <Thetra> thetras) { try { Figures = thetras.ToList(); Vector3D max = net.ElementAt(0), min = max; foreach (var x in net) { max = Vector3D.Max(max, x); min = Vector3D.Min(min, x); } tree = new OctoTree(min, max); tree.minDist = dist; foreach (var x in net) { tree.AddElement(x); } isLoad = true; } catch (Exception) { isLoad = false; return(false); } return(true); }
public bool Load(IMesh3D mesh) { tree = new OctoTree(mesh.Center - new Vector3D(1, 1, 1) * mesh.Radius, mesh.Center + new Vector3D(1, 1, 1) * mesh.Radius); foreach (Vector3D vector in mesh.Vertices) { tree.AddElement(vector); } foreach (var domain in mesh.AllDomains) { if (domain.GeometryElements.All(x => x.Geometry.Metadata.Master.ElementType == ElementType.Tetrahedron)) { foreach (var gemobj in domain.GeometryElements) { Figures.Add(new Thetra(gemobj.Geometry.Indices)); Figures[Figures.Count - 1].material = domain.MaterialNumber; } } } isLoad = true; return(true); }