VFX Forge - v1.0.0
    Preparing search index...

    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.

    Index

    Constructors

    • Crée le moteur de transformation. Initialise les tableaux de fragments et transformations.

      Returns TransformEngine

    Properties

    fragments: any[]
    transformations: Map<any, any>

    Methods

    • Anime la séparation des fragments pour preview (écartement radial).

      Parameters

      • progress: number

        Progression 0-1

      • OptionalmaxSeparation: number = 2.0

        Distance maximale de séparation

      Returns void

    • Calcule la profondeur d'extrusion automatique (5% de la taille moyenne de bbox).

      Parameters

      • boundingBox: Box3

        Boîte englobante du mesh

      Returns number

      Profondeur recommandée

    • Calcule les normales par sommet en moyennant les normales des triangles adjacents.

      Parameters

      • triangles: any[]

        Triangles source

      • vertices: Vector3[]

        Sommets uniques

      Returns Vector3[]

      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).

      Parameters

      • Optionalmaterial: Material = null

        Matériau à appliquer (défaut: MeshPhongMaterial orange)

      Returns Mesh[]

      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.

      Parameters

      • region: any

        Région avec vertexIndices, position, normal, seed

      • OptionalinwardOffset: number = 0.15

        Distance d'offset interne pour épaisseur

      Returns any

      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.

      Parameters

      • surfaceTriangles: any[]

        Triangles de surface (v0, v1, v2)

      • extrudeDepth: number

        Profondeur d'extrusion

      Returns any

      Géométrie extrudée ou null si < 3 sommets

    • Coupe récursivement des régions avec une liste de plans (BSP).

      Parameters

      • regions: any[]

        Régions à découper

      • planes: Plane[]

        Plans de coupe

      • Optionaldepth: number = 0

        Profondeur récursive actuelle

      • OptionalmaxDepth: number = 8

        Profondeur maximale

      Returns any[]

      Régions découpées

    • Libère toutes les ressources (géométries et matériaux).

      Returns void

    • Extrait les arêtes de bordure (arêtes présentes dans un seul triangle).

      Parameters

      • triangles: any[]

        Triangles de la région

      • vertices: Vector3[]

        Sommets uniques

      Returns number[][]

      Paires d'indices de sommets formant bordure

    • Extrait les sommets uniques d'un ensemble de triangles (dédoublonnage spatial).

      Parameters

      • triangles: any[]

        Triangles avec v0, v1, v2

      Returns Vector3[]

      Sommets uniques

    • Trouve l'indice de la graine la plus proche d'un point.

      Parameters

      • point: Vector3

        Point à tester

      • seeds: Vector3[]

        Graines Voronoï

      Returns number

      Indice de la graine la plus proche

    • Trouve l'indice d'un sommet dans un tableau (comparaison avec epsilon).

      Parameters

      • vertex: Vector3

        Sommet à chercher

      • vertices: Vector3[]

        Tableau de sommets

      Returns number

      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.

      Parameters

      • mesh: Mesh

        Mesh à fragmenter

      • OptionalfragmentCount: number = 30

        Nombre 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)

      Returns any[]

      Tableau de fragments avec géométrie, position, vélocités

    • API simplifiée de fragmentation avec modes prédéfinis.

      Parameters

      • mesh: Mesh

        Mesh à fragmenter

      • OptionalfragmentCount: number = 30

        Nombre de fragments

      • Optionalmode: string = "bsp-extrusion"

        Mode ("voronoi-convex" | "voronoi-extrusion" | "bsp-convex" | "bsp-extrusion" | "hybrid" | "extrusion")

      • Optionaloptions: any = {}

        Options additionnelles

      Returns any[]

      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.

      Parameters

      • geometry: BufferGeometry

        Géométrie source

      • count: number

        Nombre de plans

      Returns Plane[]

      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.

      Parameters

      • geometry: BufferGeometry

        Géométrie source

      • count: number

        Nombre de graines

      Returns Vector3[]

      Positions des graines

    • Extrait tous les triangles d'une géométrie indexée.

      Parameters

      • geometry: BufferGeometry

        Géométrie source

      Returns any[]

      Triangles avec v0, v1, v2

    • Génère des clés uniques pour identifier les arêtes (ordre canonique).

      Parameters

      • i0: number

        Indice sommet 1

      • i1: number

        Indice sommet 2

      Returns string

      Clé "i0,i1" avec i0 < i1

    • Retourne tous les meshes de fragments créés.

      Returns Mesh[]

      Meshes (null exclus)

    • Parse une clé d'arête en indices de sommets.

      Parameters

      • key: string

        Clé format "i0,i1"

      Returns number[]

      [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.

      Parameters

      • geometry: BufferGeometry

        Géométrie source

      • count: number

        Nombre de plans de coupe

      Returns any[]

      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.

      Parameters

      • geometry: BufferGeometry

        Géométrie source

      • count: number

        Nombre de régions Voronoï

      Returns any[]

      Régions avec triangles, indices de sommets et graine

    • Réinitialise les fragments avec nouvelles vélocités d'explosion aléatoires.

      Returns void

    • Réinitialise tous les fragments à leur position compacte d'origine (vélocités nulles).

      Returns void

    • Divise une région en deux selon un plan (devant/derrière).

      Parameters

      • region: any

        Région avec triangles

      • plane: Plane

        Plan de coupe

      Returns any

      { front, back } avec triangles séparés

    • Met à jour la physique des fragments (gravité, friction, position, rotation).

      Parameters

      • deltaTime: number

        Temps écoulé (secondes)

      • Optionalgravity: number = -9.8

        Accélération gravitationnelle

      • Optionalfriction: number = 0.98

        Coefficient de friction (0-1)

      Returns void