Пример #1
0
        /// <summary>
        /// ignoreVrm: VRM-0.XX では無変換で入出力してた。VRM-1.0 では変換する。
        /// </summary>
        public static void ConvertCoordinate(this Model model, Coordinates coordinates, bool ignoreVrm = false)
        {
            if (model.Coordinates.Equals(coordinates))
            {
                return;
            }

            if (model.Coordinates.IsVrm0 && coordinates.IsUnity)
            {
                model.ReverseAxisAndFlipTriangle(ZReverser, ignoreVrm);
                model.UVVerticalFlip();
            }
            else if (model.Coordinates.IsUnity && coordinates.IsVrm0)
            {
                model.ReverseAxisAndFlipTriangle(ZReverser, ignoreVrm);
                model.UVVerticalFlip();
            }
            else if (model.Coordinates.IsVrm1 && coordinates.IsUnity)
            {
                model.ReverseAxisAndFlipTriangle(XReverser, ignoreVrm);
                model.UVVerticalFlip();
            }
            else if (model.Coordinates.IsUnity && coordinates.IsVrm1)
            {
                model.ReverseAxisAndFlipTriangle(XReverser, ignoreVrm);
                model.UVVerticalFlip();
            }
            else
            {
                throw new NotImplementedException();
            }
        }