public void TestWithSimpleDirectory() { var assetPath = new UDirectory("/a/b/c"); Assert.AreEqual("/a/b/c", assetPath.GetDirectory()); Assert.AreEqual("/a/b/c", assetPath.FullPath); }
public void TestIsDirectoryOnly() { var dirPath = new UDirectory("/a/b/c"); Assert.Equal("/a/b/c", dirPath.GetDirectory()); var filePath = new UFile("/test.txt"); Assert.Equal("/", filePath.GetDirectory()); Assert.Equal("test.txt", filePath.GetFileName()); }
public void TestWithSimpleDirectory() { var assetPath = new UDirectory("/a/b/c"); Assert.Equal("/a/b/c", assetPath.GetDirectory()); Assert.Equal("/a/b/c", assetPath.FullPath); var directory = new UDirectory("C:/a"); Assert.Equal("/a", directory.GetDirectory()); directory = new UDirectory("/a"); Assert.Equal("/a", directory.GetDirectory()); }
public void TestIsDirectoryOnly() { Assert.False(new UFile("/a/b/c.txt").IsDirectoryOnly); var dirPath = new UDirectory("/a/b/c"); Assert.True(dirPath.IsDirectoryOnly); Assert.AreEqual("/a/b/c", dirPath.GetDirectory()); var filePath = new UFile("/test.txt"); Assert.AreEqual("/", filePath.GetDirectory()); Assert.AreEqual("test.txt", filePath.GetFileNameWithExtension()); }
/// <summary> /// Create the structures to perform the reductions. /// </summary> public void PrepareForFlattening(UDirectory baseDir = null) { var reducer = new MaterialTreeReducer(Material); reducer.ReduceTrees(); var reducedTrees = reducer.ReducedTrees; var textureVisitor = new MaterialTextureVisitor(Material); foreach (var materialReference in reducedTrees) { Material.Nodes[materialReference.Key] = materialReference.Value; textureVisitor.AssignDefaultTextureKeys(materialReference.Value); } commandList.Clear(); textureVisitor.ResetTextureIndices(); var basePath = (baseDir == null || baseDir.GetDirectory() == "" ? "" : baseDir.ToString() + "/") + "__reduced_textures__"; foreach (var materialReferenceKey in Material.Nodes) { if (materialReferenceKey.Value == null) { continue; } var materialReferenceName = materialReferenceKey.Key; var materialNode = materialReferenceKey.Value; textureVisitor.AssignDefaultTextureKeys(materialNode); var nodesToReduce = reducer.GetReducibleSubTrees(materialNode); for (var i = 0; i < nodesToReduce.Count; ++i) { var nodeToReduce = nodesToReduce[i]; var finalTextureUrl = new UFile(basePath, materialReferenceName + "_Texture" + (nodesToReduce.Count > 1 ? i.ToString() : ""), null); var infos = new MaterialReductionInfo { ToExecute = false, TextureUrl = finalTextureUrl }; var canBeReduced = textureVisitor.HasUniqueTexcoord(nodeToReduce, out infos.TexcoordIndex); infos.OldNode = nodeToReduce; if (!canBeReduced) { continue; // throw new Exception("Unsolvable tree"); } commandList.Add(infos); } } }
public void TestWithSimpleDirectory() { var assetPath = new UDirectory("/a/b/c"); Assert.AreEqual("/a/b/c", assetPath.GetDirectory()); Assert.AreEqual("/a/b/c", assetPath.FullPath); var directory = new UDirectory("/a"); Assert.AreEqual("/a", directory.GetDirectory()); }