示例#1
0
        public static TvS ConvertToSkinning <TvS>(this IVertexSkinning src)
            where TvS : struct, IVertexSkinning
        {
            if (src is TvS srcTyped)
            {
                return(srcTyped);
            }
            var srcWeights = src.MaxBindings > 0 ? src.GetBindings() : default;

            var dst = default(TvS);

            if (dst.MaxBindings > 0)
            {
                dst.SetBindings(srcWeights);
            }

            return(dst);
        }
示例#2
0
        public static TvS ConvertToSkinning <TvS>(this IVertexSkinning src)
            where TvS : struct, IVertexSkinning
        {
            if (src.GetType() == typeof(TvS))
            {
                return((TvS)src);
            }

            var sparse = src.MaxBindings > 0 ? src.GetWeights() : default;

            var dst = default(TvS);

            if (dst.MaxBindings > 0)
            {
                dst.SetWeights(sparse);
            }

            return(dst);
        }
        public static string _GetDebuggerDisplay(IVertexSkinning skin)
        {
            var txt = string.Empty;

            for (int i = 0; i < skin.MaxBindings; ++i)
            {
                var(joint, weight) = skin.GetBinding(i);
                if (weight == 0)
                {
                    continue;
                }

                if (txt.Length != 0)
                {
                    txt += " ";
                }

                txt += $"<𝐉:{joint} 𝐖:{weight}>";
            }

            return(txt);
        }