Bitbybit Docs
    Preparing search index...

    Class MeshBitByBit

    Géométrie sur de simples maillages de triangles : un maillage est une liste de triangles, chacun de trois points. Les méthodes ici calculent le plan d'un triangle, la distance d'un point à un plan, et où deux maillages se coupent, sous forme de segments, de polylignes ou de listes de points. Elles n'ont besoin d'aucun noyau CAO, donc elles fonctionnent sur n'importe quelles données triangulées.

    Index

    Constructors

    base

    • Mesure la distance d'un point à un plan, avec un signe : positive du côté vers lequel pointe la normale, négative de l'autre.

      Exemple : point [0,5,0] et le plan XZ de normale [0,1,0] -> 5

      Parameters

      Returns number

      La distance signée en unités du modèle

      const above = bitbybit.mesh.signedDistanceToPlane({ point: [0, 5, 0], plane: { normal: [0, 1, 0], d: 0 } });
      

    mesh

    • Trouve chaque segment où les surfaces de deux maillages se traversent, en testant chaque triangle de l'un contre chaque triangle de l'autre.

      Exemple : un maillage de cube et un maillage de sphère -> les segments qui ensemble tracent leur courbe d'intersection

      Parameters

      Returns Segment3[]

      Les segments de croisement, sans ordre particulier

      const segments = bitbybit.mesh.meshMeshIntersectionSegments({ mesh1: cubeTriangles, mesh2: sphereTriangles, tolerance: 1e-7 });
      
    • Trouve où les surfaces de deux maillages se traversent et réunit les morceaux en polylignes, fermées là où la courbe boucle.

      Exemple : un maillage de cube et un maillage de sphère -> des polylignes fermées là où les deux surfaces se rencontrent

      Parameters

      Returns Polyline3[]

      Les courbes d'intersection sous forme de polylignes

      const curves = bitbybit.mesh.meshMeshIntersectionPolylines({ mesh1: cubeTriangles, mesh2: sphereTriangles, tolerance: 1e-7 });
      
    • Trouve où les surfaces de deux maillages se traversent, sous forme d'une liste de points par courbe.

      Une courbe fermée répète son premier point à la fin pour que la boucle soit explicite. Exemple : un maillage de cube et un maillage de sphère -> des listes de points traçant où les deux surfaces se rencontrent

      Parameters

      Returns Point3[][]

      Une liste de points par courbe d'intersection

      const curves = bitbybit.mesh.meshMeshIntersectionPoints({ mesh1: cubeTriangles, mesh2: sphereTriangles, tolerance: 1e-7 });
      

    traingle

    • Trouve le plan dans lequel se trouve un triangle : sa normale unitaire et sa distance à l'origine le long de cette normale.

      La normale suit la règle de la main droite autour des points du triangle. Un triangle sans aire, dont les points sont alignés, n'a pas de plan et donne undefined. Exemple : [[0,0,0], [1,0,0], [0,1,0]] -> { normal: [0,0,1], d: 0 }

      Parameters

      • inputs: TriangleToleranceDto

        Le triangle et la tolérance en dessous de laquelle son aire est considérée comme nulle

      Returns TrianglePlane3

      Le plan, ou undefined pour un triangle aplati

      const plane = bitbybit.mesh.calculateTrianglePlane({ triangle: [[0, 0, 0], [1, 0, 0], [0, 1, 0]], tolerance: 1e-7 });
      
    • Trouve le segment où deux triangles se traversent.

      Des triangles qui ne se touchent pas, sont parallèles ou se trouvent dans le même plan donnent undefined. Exemple : un triangle dans le plan XY et un autre dressé en travers -> le segment où ils se croisent

      Parameters

      Returns Segment3

      Le segment de croisement, ou undefined quand il n'y en a pas

      const cut = bitbybit.mesh.triangleTriangleIntersection({
      triangle1: [[0, 0, 0], [2, 0, 0], [1, 2, 0]],
      triangle2: [[1, -1, 1], [1, 1, 1], [1, 1, -1]],
      tolerance: 1e-7,
      });