Просмотрите наши продукты

Примечания к выпуску Aspose.3D для .NET 24.8

Улучшения и изменения

KeySummaryCategory
THREEDNET-1576Предоставить пользователю внутренние утилиты системы координат.Задача
THREEDNET-1579Реализовать полную поддержку потока XZЗадача
THREEDNET-1578Метаданные версии JT 9.5Улучшение
THREEDNET-1580Добавить поддержку PMI для формата JT 9Улучшение
THREEDNET-1575Преобразовано вращение модели GLBИсправление ошибки
THREEDNET-1577Ошибка «не удается открыть этот файл» для файла 3mfИсправление ошибки

Изменения API

Добавлен класс Aspose.ThreeD.Formats.SiemensJT.JtLoadOptions

        /// <summary>
        /// Загружать свойства из таблицы свойств JT как свойства Aspose.3D. 
        /// Значение по умолчанию — false.
        /// </summary>
        public bool LoadProperties { get; set; }

        /// <summary>
        /// Загружать информацию PMI из файла JT, если это возможно, данные будут сохранены как свойство "PMI" <see cref="Scene.AssetInfo"/>.
        /// Значение по умолчанию — false.
        /// </summary>
        public bool LoadPMI { get; set; }
        

Новый добавленный JtLoadOptions позволяет инструктировать Aspose.3D для разбора метаданных файла JT и сохранения их как стандартные свойства Aspose.3D.

Пример кода

    var opt = new JtLoadOptions();
    opt.LoadProperties = true;
    var s = Scene.FromFile("test.jt", opt);
    
    foreach (var prop in s.RootNode.ChildNodes[0].Properties)
    {
        Console.WriteLine($"{prop.Name} = {prop.Value}");
    }

Добавлены члены класса Aspose.ThreeD.AxisSystem:

    /// <summary>
    /// Создать матрицу, используемую для преобразования из текущей системы координат в целевую систему координат.
    /// </summary>
    /// <param name="targetSystem">Целевая система координат</param>
    /// <returns>Новая матрица преобразования для выполнения преобразования системы координат</returns>
    public Aspose.ThreeD.Utilities.Matrix4 TransformTo(Aspose.ThreeD.AxisSystem targetSystem)

    /// <summary>
    /// Создать <see cref="AxisSystem"/> из <see cref="AssetInfo"/>
    /// </summary>
    /// <param name="assetInfo">Из какого asset info читать систему координат, вектор «вверх» и «вперед».</param>
    /// <returns>Система координат, содержащая систему координат, «вверх», «вперед» из предоставленного asset info</returns>
    public static Aspose.ThreeD.AxisSystem FromAssetInfo(Aspose.ThreeD.AssetInfo assetInfo)

Пример кода

Новый добавленный метод позволяет создать матрицу преобразования для преобразования вектора из одной системы координат в другую систему координат.

    Scene scene = Scene.FromFile("test.fbx");
    //Создать новую систему координат с вектором «вверх» к оси +Y и «вперед» к оси +X.
    var target = new AxisSystem(CoordinateSystem.LeftHanded, Axis.YAxis, Axis.XAxis);
    //Создать матрицу преобразования из текущей системы координат сцены в нашу пользовательскую систему координат
    var transform = AxisSystem.FromAssetInfo(scene.AssetInfo).TransformTo(target);
    //Применить преобразование ко всем геометриям в сцене.
    PolygonModifier.ApplyTransform(scene.RootNode, transform);

Добавлены члены класса Aspose.ThreeD.Entities.PolygonModifier:

        /// <summary>
        /// Применить матрицу преобразования к контрольным точкам всех геометрий
        /// </summary>
        /// <param name="node">Узел, геометрии которого будут применены с помощью данной матрицы преобразования</param>
        /// <param name="transform">Матрица преобразования, которая будет применена к контрольным точкам.</param>
        public static void ApplyTransform(Aspose.ThreeD.Node node, Aspose.ThreeD.Utilities.Matrix4 transform)

Этот новый метод позволяет применить матрицу ко всем контрольным точкам всех потомков геометрий.

Пример кода

    Scene scene = Scene.FromFile("test.fbx");
    //Создать новую систему координат с вектором «вверх» к оси +Y и «вперед» к оси +X.
    var target = new AxisSystem(CoordinateSystem.LeftHanded, Axis.YAxis, Axis.XAxis);
    //Создать матрицу преобразования из текущей системы координат сцены в нашу пользовательскую систему координат
    var transform = AxisSystem.FromAssetInfo(scene.AssetInfo).TransformTo(target);
    //Применить преобразование ко всем геометриям в сцене.
    PolygonModifier.ApplyTransform(scene.RootNode, transform);


 
 Русский