public static CompressedMesh Convert(IExportContainer container, ref CompressedMesh origin) { CompressedMesh instance = new CompressedMesh(); instance.Vertices = origin.Vertices.Convert(container); instance.UV = origin.UV.Convert(container); if (CompressedMesh.HasBindPoses(container.ExportVersion)) { instance.BindPoses = origin.BindPoses.Convert(container); } instance.Normals = origin.Normals.Convert(container); instance.Tangents = origin.Tangents.Convert(container); instance.Weights = origin.Weights.Convert(container); instance.NormalSigns = origin.NormalSigns.Convert(container); instance.TangentSigns = origin.TangentSigns.Convert(container); if (CompressedMesh.HasFloatColors(container.ExportVersion)) { instance.FloatColors = GetFloatColors(container, ref origin); } instance.BoneIndices = origin.BoneIndices.Convert(container); instance.Triangles = origin.Triangles.Convert(container); if (CompressedMesh.HasColors(container.ExportVersion)) { instance.Colors = GetColors(container, ref origin); } if (CompressedMesh.HasUVInfo(container.ExportVersion)) { instance.UVInfo = GetUVInfo(container, ref origin); } return(instance); }
private static PackedFloatVector GetFloatColors(IExportContainer container, ref CompressedMesh origin) { if (CompressedMesh.HasFloatColors(container.Version)) { return(origin.FloatColors.Convert(container)); } else { #warning TODO: convert Colors to FloatColors if (origin.Colors.IsSet) { Logger.Log(LogType.Warning, LogCategory.Export, "Color conversion isn't implemented"); } return(new PackedFloatVector(true)); } }