Browse our Products

Notes de publication Aspose.3D pour Java 23.10

Améliorations et Modifications

KeySummaryCategory
THREEDNET-1424Intégrer la fonctionnalité de manifold et d’opérations booléennes dans Aspose.3DTâche
THREEDNET-1431Afficher un message vers stdout lorsque l’exception d’essai est supprimée.Tâche
THREEDNET-1435Problèmes lors de la mise à jour vers la dernière version en raison de la suppression de la dépendance à System.DrawingSupport

Modifications de l’API

Ajout de membres à la classe com.aspose.threed.Mesh:

    /**
     * Effectuer une opération booléenne sur deux maillages
     * @param op Le type d'opération booléenne.
     * @param a Premier maillage à opérer.
     * @param transformA Matrice de transformation du premier maillage
     * @param b Deuxième maillage à opérer
     * @param transformB Matrice de transformation du deuxième maillage
     * @return Le maillage résultant
     */
    public static Mesh doBoolean(BooleanOperation op, Mesh a, Matrix4 transformA, Mesh b, Matrix4 transformB)
    
    /**
     * Calculer l'union de deux maillages
     * @param a Premier maillage
     * @param b Deuxième maillage
     * @return Maillage résultant
     */
    public static Mesh union(Mesh a, Mesh b)
    
    /**
     * Calculer la différence de deux maillages
     * @param a Premier maillage
     * @param b Deuxième maillage
     * @return Maillage résultant
     */
    public static Mesh difference(Mesh a, Mesh b)
    
    /**
     * Calculer l'intersection de deux maillages
     * @param a Premier maillage
     * @param b Deuxième maillage
     * @return Maillage résultant
     */
    public static Mesh intersect(Mesh a, Mesh b)

La nouvelle fonctionnalité vous permet d’effectuer des opérations booléennes sur deux maillages. Cette fonctionnalité est expérimentale et ne fonctionne que sur les maillages tri-manifold. Malheureusement, les maillages convertis à partir de nos primitives 3D ne sont pas des maillages tri-manifold. Ce problème sera corrigé à l’avenir.

        var a = new Mesh();
        a.getControlPoints().add(new Vector4(0, 0, 0));
        a.getControlPoints().add(new Vector4(1540, 0, 0));
        a.getControlPoints().add(new Vector4(1540, 70, 0));
        a.getControlPoints().add(new Vector4(0, 70, 0));
        a.getControlPoints().add(new Vector4(0, 0, -278.282));
        a.getControlPoints().add(new Vector4(1540, 70, -278.282));
        a.getControlPoints().add(new Vector4(1540, 0, -278.282));
        a.getControlPoints().add(new Vector4(0, 70, -278.282));
        a.createPolygon(0, 1, 2);
        a.createPolygon(2, 3, 0);
        a.createPolygon(4, 5, 6);
        a.createPolygon(5, 4, 7);
        a.createPolygon(6, 2, 1);
        a.createPolygon(6, 5, 2);
        a.createPolygon(5, 3, 2);
        a.createPolygon(5, 7, 3);
        a.createPolygon(7, 0, 3);
        a.createPolygon(7, 4, 0);
        a.createPolygon(4, 1, 0);
        a.createPolygon(4, 6, 1);

        var b = new Mesh();
        b.getControlPoints().add(new Vector4(2.04636e-12, 70, 50000));
        b.getControlPoints().add(new Vector4(2.04636e-12, -1.27898e-13, 50000));
        b.getControlPoints().add(new Vector4(1470, -1.27898e-13, 50000));
        b.getControlPoints().add(new Vector4(1540, 70, 50000));
        b.getControlPoints().add(new Vector4(2.04636e-12, 70, -28.2818));
        b.getControlPoints().add(new Vector4(1470, -1.27898e-13, 0));
        b.getControlPoints().add(new Vector4(2.04636e-12, -1.27898e-13, 0));
        b.getControlPoints().add(new Vector4(1540, 70, -28.2818));

        b.createPolygon(0, 1, 2);
        b.createPolygon(2, 3, 0);
        b.createPolygon(4, 5, 6);
        b.createPolygon(5, 4, 7);
        b.createPolygon(6, 2, 1);
        b.createPolygon(6, 5, 2);
        b.createPolygon(5, 3, 2);
        b.createPolygon(5, 7, 3);
        b.createPolygon(7, 0, 3);
        b.createPolygon(7, 4, 0);
        b.createPolygon(4, 1, 0);
        b.createPolygon(4, 6, 1);

        //calculer l'union de deux maillages
        Mesh union = a.union(b);

        //calculer la différence de deux maillages 
        Mesh diff = a.difference(b);

        //calculer l'intersection de deux maillages
        Mesh intersect = a.intersect(b);


 
 Français