public void FlushMeshGenerationData(string outputDirectory) { if (outputPoints.Count == 0) { return; } var data = outputPoints.ToDictionary(x => x.Key, x => x.Value.Position); EditorTreeUtility.SaveMeshGenerationData( Path.Combine(outputDirectory, $"{nodeRecord.Identifier}.meshdata"), cellsPerAxis, data); bool IsEdgeCell(int id) { var xyz = TreeUtility.Unflatten(id, cellsPerAxis); return((xyz.x == 0) || (xyz.y == 0) || (xyz.z == 0)); } var edgeData = data .Where(x => IsEdgeCell(x.Key)) .ToDictionary(x => x.Key, x => x.Value); if (edgeData.Count == 0) { return; } EditorTreeUtility.SaveMeshGenerationData( Path.Combine(outputDirectory, $"{nodeRecord.Identifier}.meshedge"), cellsPerAxis, edgeData); }
public void UpdateVolatileData() { builderVerts.Clear(); foreach (var cell in cells) { var coord = TreeUtility.Unflatten(cell.Key, gridSize); builderVerts.Add(coord, new Vert() { position = cell.Value }); } }