private void CheckSceneHelper(FbxNode node, FbxMesh mesh, FbxSurfaceMaterial material) { if (node == null) { return; } Assert.AreEqual(mesh, node.GetMesh()); int matIndex = node.GetMaterialIndex(m_materialName); Assert.GreaterOrEqual(matIndex, 0); Assert.AreEqual(material, node.GetMaterial(matIndex)); for (int i = 0; i < node.GetChildCount(); i++) { // recurse through the hierarchy CheckSceneHelper(node.GetChild(i), mesh, material); } }
protected override void CheckScene(FbxScene scene) { base.CheckScene(scene); FbxNode rootNode = scene.GetRootNode().GetChild(0); Assert.IsNotNull(rootNode); FbxMesh sharedMesh = rootNode.GetMesh(); Assert.IsNotNull(sharedMesh); Assert.AreEqual(m_meshName, sharedMesh.GetName()); int matIndex = rootNode.GetMaterialIndex(m_materialName); Assert.GreaterOrEqual(matIndex, 0); FbxSurfaceMaterial sharedMat = rootNode.GetMaterial(matIndex); Assert.IsNotNull(sharedMat); // check that the mesh is the same for all children CheckSceneHelper(rootNode, sharedMesh, sharedMat); }