public static VoxelGeometry.MeshData CreateMeshData(VoxelStruct vs) { VoxelProduct product = new VoxelProduct(); VoxelData[] datas = vs.datas.ToArray(); Build.Run(new VoxelData2Point(datas), product); Build.Run(new VoxelSplitSmall(new VectorInt3(8, 8, 8)), product); Build.Run(new VoxelMeshBuild(), product); Build.Run(new VoxelRemoveSameVertices(), product); Build.Run(new VoxelRemoveFace(), product); var data = product.getMeshData(); return(data); }
public Task buildData(VoxelStruct vs, MeshDataResult result) { VoxelProduct product = new VoxelProduct(); TaskList tl = new TaskList(); VoxelData[] datas = vs.datas.ToArray(); tl.push(TaskLog.Logger(Build.Task(new VoxelData2Point(datas), product), "d2p")); tl.push(TaskLog.Logger(Build.Task(new VoxelSplitSmall(new VectorInt3(8, 8, 8)), product), "vss")); tl.push(TaskLog.Logger(Build.Task(new VoxelMeshBuild(), product), "vmb")); //43% tl.push(TaskLog.Logger(Build.Task(new VoxelRemoveSameVertices(), product), "vrv")); tl.push(TaskLog.Logger(Build.Task(new VoxelRemoveFace(), product), "vrf")); //47% TaskManager.PushBack(tl, delegate { result(product.getMeshData()); }); return(tl); }
public static Task Struct2Data(VoxelStruct vs, Struct2DataReturn ret) { TaskList tl = new TaskList(); VoxelProduct product = new VoxelProduct(); VoxelData[] datas = vs.datas.ToArray(); tl.push(Build.Task(new VoxelData2Point(datas), product)); tl.push(Build.Task(new VoxelSplitSmall(new VectorInt3(8, 8, 8)), product)); tl.push(Build.Task(new VoxelMeshBuild(), product)); tl.push(Build.Task(new VoxelRemoveSameVertices(), product)); tl.push(Build.Task(new VoxelRemoveFace(), product)); tl.push(Build.Task(new VoxelRemoveSameVertices(), product)); TaskManager.PushBack(tl, delegate { ret(product.getMeshData()); }); return(tl); }