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

Aspose.3D для Java 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

Добавлен класс com.aspose.threed.JtLoadOptions

    /**
     *  Загрузить свойства из таблицы свойств JT как свойства Aspose.3D.
     *  Значение по умолчанию — false.
     *
     * @return  Загрузить свойства из таблицы свойств JT как свойства Aspose.3D. 
     * Значение по умолчанию — false.
     */
    public boolean getLoadProperties()
    
    /**
     *  Загрузить свойства из таблицы свойств JT как свойства Aspose.3D.
     *  Значение по умолчанию — false.
     *
     * @param value Новое значение
     */
    public void setLoadProperties(boolean value)
    
    /**
     *  Загрузить информацию PMI из файла JT, если это возможно, данные будут сохранены как свойство "PMI" в {@link com.aspose.threed.Scene#getAssetInfo}.
     *  Значение по умолчанию — false.
     *
     * @return  Загрузить информацию PMI из файла JT, если это возможно, данные будут сохранены как свойство "PMI" в {@link com.aspose.threed.Scene#getAssetInfo}.
     * Значение по умолчанию — false.
     */
    public boolean getLoadPMI()
    
    /**
     *  Загрузить информацию PMI из файла JT, если это возможно, данные будут сохранены как свойство "PMI" в {@link com.aspose.threed.Scene#getAssetInfo}.
     *  Значение по умолчанию — false.
     *
     * @param value Новое значение
     */
    public void setLoadPMI(boolean value)
        

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

Пример кода

    var opt = new JtLoadOptions();
    opt.setLoadProperties(true);
    var s = Scene.fromFile("test.jt", opt);
    
    for(var prop : s.getRootNode().getChildNodes().get(0).getProperties())
    {
        System.out.println(prop.getName() + " = " + prop.getValue());
    }

Добавлены члены класса com.aspose.threed.AxisSystem:

    /**
     *  Создать матрицу, используемую для преобразования из текущей системы координат в целевую систему координат.
     *
     * @param targetSystem Целевая система координат
     * @return Новая матрица преобразования для выполнения преобразования системы координат
     */
    public Matrix4 transformTo(AxisSystem targetSystem)


    /**
     *  Создать {@link com.aspose.threed.AxisSystem} из {@link com.aspose.threed.AssetInfo}
     *
     * @param assetInfo Из какого asset info читать систему координат, вектор «вверх» и «вперед».
     * @return Axis system, содержащая систему координат, «вверх», «вперед» из предоставленного asset info
     */
    public static AxisSystem fromAssetInfo(AssetInfo assetInfo)

Пример кода

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

    Scene scene = Scene.fromFile("test.fbx");
    //Создать новую систему координат с вектором вверх к оси +Y и вперед к оси +X.
    var target = new AxisSystem(CoordinateSystem.LEFT_HANDED, Axis.Y_AXIS, Axis.X_AXIS);
    //Создать матрицу преобразования из текущей системы координат сцены в нашу пользовательскую систему координат
    var transform = AxisSystem.fromAssetInfo(scene.getAssetInfo()).transformTo(target);
    //Применить преобразование ко всем геометриям в сцене.
    PolygonModifier.applyTransform(scene.getRootNode(), transform);

Добавлены члены класса com.aspose.threed.PolygonModifier:

    /**
     *  Применить матрицу преобразования к контрольным точкам всех геометрий
     *
     * @param node 
     * @param transform 
     */
    public static void applyTransform(Node node, Matrix4 transform)

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

Пример кода

    Scene scene = Scene.fromFile("test.fbx");
    //Создать новую систему координат с вектором вверх к оси +Y и вперед к оси +X.
    var target = new AxisSystem(CoordinateSystem.LEFT_HANDED, Axis.Y_AXIS, Axis.X_AXIS);
    //Создать матрицу преобразования из текущей системы координат сцены в нашу пользовательскую систему координат
    var transform = AxisSystem.fromAssetInfo(scene.getAssetInfo()).transformTo(target);
    //Применить преобразование ко всем геометриям в сцене.
    PolygonModifier.applyTransform(scene.getRootNode(), transform);


 
 Русский