Esempio n. 1
0
        /// <summary>
        /// 違うところを集める(debug用)
        /// </summary>
        public static List <ModelDiff> Diff(this Model lhs, Model rhs)
        {
            var context = ModelDiffContext.Create();

            context.Enter(nameof(lhs.AssetGenerator)).Push(lhs.AssetGenerator, rhs.AssetGenerator, StringEquals);
            context.Enter(nameof(lhs.AssetVersion)).Push(lhs.AssetVersion, rhs.AssetVersion, StringEquals);
            context.Enter(nameof(lhs.AssetMinVersion)).Push(lhs.AssetMinVersion, rhs.AssetMinVersion, StringEquals);
            context.Enter(nameof(lhs.AssetCopyright)).Push(lhs.AssetCopyright, rhs.AssetCopyright, StringEquals);

            // Materialの参照で比較する
            ListDiff(context.Enter("Materials"), lhs.Materials, rhs.Materials, MaterialEquals);
            ListDiff(context.Enter("Meshes"), lhs.MeshGroups, rhs.MeshGroups, MeshGroupEquals);
            ListDiff(context.Enter("Nodes"), lhs.Nodes, rhs.Nodes, NodeEquals);
            ListDiff(context.Enter("Skins"), lhs.Skins, rhs.Skins, SkinEquals);
            Vrm(context.Enter("Vrm"), lhs, rhs);

            return(context.List);
        }