Crée le moteur de transformation. Initialise les tableaux de fragments et transformations.
Anime la séparation des fragments pour preview (écartement radial).
Progression 0-1
OptionalmaxSeparation: number = 2.0Distance maximale de séparation
Calcule la profondeur d'extrusion automatique (5% de la taille moyenne de bbox).
Boîte englobante du mesh
Profondeur recommandée
Calcule les normales par sommet en moyennant les normales des triangles adjacents.
Triangles source
Sommets uniques
Normales par sommet
Crée les meshes Three.js pour tous les fragments avec matériau. CORRECTION: Position initiale = centre original (géométrie déjà recentrée).
Optionalmaterial: Material = nullMatériau à appliquer (défaut: MeshPhongMaterial orange)
Meshes créés
Crée un volume 3D par enveloppe convexe autour d'une région de surface. Génère des points internes par offset selon les normales pour épaisseur.
Région avec vertexIndices, position, normal, seed
OptionalinwardOffset: number = 0.15Distance d'offset interne pour épaisseur
Géométrie convexe ou null si < 4 points
Crée un volume 3D par extrusion des triangles de surface vers l'intérieur. Génère faces extérieures, intérieures et latérales de connexion.
Triangles de surface (v0, v1, v2)
Profondeur d'extrusion
Géométrie extrudée ou null si < 3 sommets
Coupe récursivement des régions avec une liste de plans (BSP).
Régions à découper
Plans de coupe
Optionaldepth: number = 0Profondeur récursive actuelle
OptionalmaxDepth: number = 8Profondeur maximale
Régions découpées
Libère toutes les ressources (géométries et matériaux).
Extrait les arêtes de bordure (arêtes présentes dans un seul triangle).
Triangles de la région
Sommets uniques
Paires d'indices de sommets formant bordure
Extrait les sommets uniques d'un ensemble de triangles (dédoublonnage spatial).
Triangles avec v0, v1, v2
Sommets uniques
Trouve l'indice de la graine la plus proche d'un point.
Point à tester
Graines Voronoï
Indice de la graine la plus proche
Trouve l'indice d'un sommet dans un tableau (comparaison avec epsilon).
Sommet à chercher
Tableau de sommets
Indice ou -1 si non trouvé
Fragmente un mesh en morceaux volumétriques avec recentrage des géométries. CORRECTION: Les géométries sont translatées pour avoir leur centre en (0,0,0) local, garantissant des rotations et physiques correctes.
Mesh à fragmenter
OptionalfragmentCount: number = 30Nombre de fragments cibles
OptionalpartitionMethod: string = "bsp"Méthode de partition ("voronoi" | "bsp")
OptionalvolumeMethod: string = "extrusion"Méthode de volumétrisation ("convexhull" | "extrusion")
Optionaloptions: any = {}Options (inwardOffset, extrudeDepth)
Tableau de fragments avec géométrie, position, vélocités
API simplifiée de fragmentation avec modes prédéfinis.
Mesh à fragmenter
OptionalfragmentCount: number = 30Nombre de fragments
Optionalmode: string = "bsp-extrusion"Mode ("voronoi-convex" | "voronoi-extrusion" | "bsp-convex" | "bsp-extrusion" | "hybrid" | "extrusion")
Optionaloptions: any = {}Options additionnelles
Tableau de fragments
Génère des plans de coupe aléatoires pour partition BSP. 30% de plans alignés sur axes, 70% orientés aléatoirement.
Géométrie source
Nombre de plans
Plans de coupe
Génère des graines Voronoï distribuées sur la surface par échantillonnage d'aire. Les triangles plus grands ont plus de probabilité d'héberger une graine.
Géométrie source
Nombre de graines
Positions des graines
Extrait tous les triangles d'une géométrie indexée.
Géométrie source
Triangles avec v0, v1, v2
Génère des clés uniques pour identifier les arêtes (ordre canonique).
Indice sommet 1
Indice sommet 2
Clé "i0,i1" avec i0 < i1
Retourne tous les meshes de fragments créés.
Meshes (null exclus)
Parse une clé d'arête en indices de sommets.
Clé format "i0,i1"
[i0, i1]
Partition par Binary Space Partitioning récursif. Coupe l'espace avec plans aléatoires orientés et positionnés près du centre.
Géométrie source
Nombre de plans de coupe
Régions découpées avec triangles et bounds
Partition par diagramme de Voronoï avec échantillonnage pondéré par aire. Génère des graines sur la surface selon la densité de triangles.
Géométrie source
Nombre de régions Voronoï
Régions avec triangles, indices de sommets et graine
Réinitialise les fragments avec nouvelles vélocités d'explosion aléatoires.
Réinitialise tous les fragments à leur position compacte d'origine (vélocités nulles).
Divise une région en deux selon un plan (devant/derrière).
Région avec triangles
Plan de coupe
{ front, back } avec triangles séparés
Met à jour la physique des fragments (gravité, friction, position, rotation).
Temps écoulé (secondes)
Optionalgravity: number = -9.8Accélération gravitationnelle
Optionalfriction: number = 0.98Coefficient de friction (0-1)
Moteur de transformations géométriques pour fragmentation de meshes 3D. Implémente deux méthodes de partition (Voronoi, BSP) et deux méthodes de volumétrisation (Convex Hull, Extrusion). Gère le recentrage automatique des géométries pour physiques correctes.