Example #1
0
        public Task BuildTreeAsync(IGeometryComponent geo)
        {
            if (!geo.IsValid)
            {
                return(Task.FromResult(0));
            }
            return(Task.Run(() => {
                var norm = geo.Normals.IsDefaultOrEmpty ? null : ConvertToVector3f(geo.Normals);
                DMeshLocal = DMesh3Builder.Build(ConvertToVector3f(geo.Positions), geo.Indices, norm);
                //var sm = new LaplacianMeshSmoother(DMesh);
                //sm.Initialize();
                //sm.SolveAndUpdateMesh();

                //DMesh = sm.Mesh;
                TreeLocal = new DMeshAABBTree3(DMeshLocal);
                TreeLocal.Build();

                box = new BoundingBox(DMeshLocal.GetBounds());

                IsBuilt = true;

                return this;
            }));
        }
Example #2
0
 public void Handle(IGeometryComponent com)
 {
     components.Add(com);
 }