製品を閲覧する

Aspose.3D for Node.js via Java 24.2 リリースノート

改善点と変更点

Key概要カテゴリ
THREEDJAVA-329Scene の IO 操作に、ネイティブの InputStream/OutputStream を追加改善
THREEDNET-1499OBJ から GLTF への変換 - 頂点の数が大きい改善
THREEDNET-1509.net 7.0 のサポートを .net 8.0 にアップグレード改善
THREEDNET-1460FBX でエクスポートされたスケルトンノードは、変換を持たずにポーズを持つバグ修正
THREEDNET-1494GLTF のインポートで KHR_mesh_quantization 拡張のサポートを追加バグ修正
THREEDNET-1495GLB から FBX へのアニメーションのエクスポートで Slerp が失敗するバグ修正
THREEDNET-1496サポートされていない属性タイプが Maya インポーターの停止を引き起こすバグ修正
THREEDNET-1497無効なプロパティ値を持つプリミティブが USD でロードに失敗するバグ修正
THREEDNET-14983MF の外部参照の問題が、ビルト要素で発生するバグ修正
THREEDNJS-115Node.js で MathUtils に ’toRadian’ メソッドを追加改善

API の変更点

このバージョンは主にバグ修正バージョンであり、いくつかの API 変更点があります。

クラス com.aspose.threed.Mesh にメンバーを追加:

    /**
     *  三角形に分割されたメッシュを返します
     *
     * @return メッシュがすでに三角形に分割されている場合は、現在のメッシュが返されます。そうでない場合は、新しい三角形に分割されたメッシュが計算され、返されます
     *
     */
    public Mesh triangulate()

この関数を使用すると、簡単にメッシュを三角形に分割できます。

サンプルコード

        //The plane mesh has only one polygon with 4 control points
        Mesh mesh = (new Plane()).toMesh();
        //After triangulated, the new mesh's rectangle will become 2 triangles.
        Mesh triangulated = mesh.triangulate();

クラス com.aspose.threed.TriMesh にメンバーを追加:

    /**
     *  新しい三角形を追加します
     *
     * @param a 最初の頂点のインデックス
     * @param b 2番目の頂点のインデックス
     * @param c 3番目の頂点のインデックス
     */
    public void addTriangle(int a, int b, int c);

    /**    
     * 頂点データを指定されたストリームに書き込みます    
     *    
     * @param stream 頂点データが書き込まれるストリーム    
     */    
    public void writeVerticesTo(OutputStream stream)    throws IOException;

    /**    
     * インデックスデータを 16 ビット整数としてストリームに書き込みます    
     *    
     * @param stream     
     * </pre>    
     *    
     */    
    public void write16bIndicesTo(OutputStream stream)    throws IOException;
        
    /**    
     * インデックスデータを 32 ビット整数としてストリームに書き込みます    
     *    
     * @param stream     
     */    
    public void write32bIndicesTo(OutputStream stream)    throws IOException;

この関数を使用すると、TriMesh に三角形を手動で追加できます。

サンプルコード

  int[] indices = new int[] { 0,  1,  2 };
  byte[] vertices = new byte[]{
      0, 0, 0, 191,
      0, 0, 0, 0,
      0, 0, 0, 191,
      0, 0, 0, 191,
      0, 0, 0, 0,
      0, 0, 0, 63,
      0, 0, 0, 63,
      0, 0, 0, 0,
      0, 0, 0, 63
  };

  VertexDeclaration vd = new VertexDeclaration();
  vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.POSITION);
  //create an empty TriMesh with specified vertex declaration
  var triMesh = new TriMesh("", vd);
  //load vertices directly from bytes
  triMesh.loadVerticesFromBytes(vertices);
  triMesh.addTriangle(0, 1, 2);

クラス com.aspose.threed.Scene にメンバーを追加:

    /**    
     *  指定されたファイル形式を使用して、指定されたストリームからシーンを開きます。    
     *    
     * @param stream 入力ストリーム。ストリームのクローズはユーザーの責任です。    
     * @param format ファイル形式。    
     * @param cancellationToken ロードタスクのキャンセルタスク    
     *    
     */    
    public static Scene fromStream(InputStream stream, FileFormat format, Cancellation cancellationToken)    
            throws IOException    
    /**    
     *  指定されたファイル形式を使用して、指定されたストリームからシーンを開きます。    
     *    
     * @param stream 入力ストリーム。ストリームのクローズはユーザーの責任です。    
     * @param format ファイル形式。    
     *    
     */    
    public static Scene fromStream(InputStream stream, FileFormat format)    
            throws IOException    
    /**    
     *  指定された IO 設定を使用して、指定されたストリームからシーンを開きます。    
     *    
     * @param stream 入力ストリーム。ストリームのクローズはユーザーの責任です。    
     * @param options より詳細な設定でストリームを開きます。    
     *    
     */    
    public void open(InputStream stream, SaveOptions options)    
            throws IOException    
    /**    
     *   指定されたストリームからシーンを開きます    
     *    
     * @param stream 入力ストリーム。ストリームのクローズはユーザーの責任です。    
     *    
     */    
    public void open(InputStream stream)    
            throws IOException    
    /**    
     *  指定されたファイル形式を使用して、シーンをストリームに保存します。    
     *    
     * @param stream 出力ストリーム。ストリームのクローズはユーザーの責任です。    
     * @param format 形式。    
     *    
     */    
    public void save(OutputStream stream, FileFormat format)    
            throws IOException    
    /**    
     *  指定されたファイル形式を使用して、シーンをストリームに保存します。    
     *    
     * @param stream 出力ストリーム。ストリームのクローズはユーザーの責任です。    
     * @param format 形式。    
     * @param cancellationToken 保存タスクのキャンセルタスク    
     */    
    public void save(OutputStream stream, FileFormat format, Cancellation cancellationToken)    
            throws IOException    
    /**    
     *  指定されたファイル形式を使用して、シーンをストリームに保存します。    
     *    
     * @param stream 出力ストリーム。ストリームのクローズはユーザーの責任です。    
     * @param options より詳細な設定でストリームを保存します。    
     *    
     */    
    public void save(OutputStream stream, SaveOptions options)    
            throws IOException    
    /**    
     *  指定されたファイル形式を使用して、シーンをストリームに保存します。    
     *    
     * @param stream 出力ストリーム。ストリームのクローズはユーザーの責任です。    
     * @param options より詳細な設定でストリームを保存します。    
     * @param cancellationToken 保存タスクのキャンセルタスク    
     *    
     */    
    public void save(OutputStream stream, SaveOptions options, Cancellation cancellationToken)    
            throws IOException    

以前はストリームバージョンの save/open/fromStream しかありませんでしたが、JDK の InputStream/OutputStream をサポートするようになりました。


 
 日本