===== Mesh ===== * Chaque mesh est identifié par nom alphanumérique. * Chaque mesh retourne un objet javascript. * Chaque mesh est physic. ■ **Result = CreateSphere(Name.s, Size.f, Subdivs = 16)**\\ Créer une sphère. ■ **Result = CreateGround(Name.s, Width.f, Depth.f, Subdivs = 2)**\\ Créer une surface plane horizontale. ■ **Result = CreatePlane(Name.s, Width.f Height.f)**\\ Créer un plan (//vertical par défaut//) ■ **Result = CreateBox(Name.s, Width.f, Height.f, Depth.f)**\\ Créer une boite. ■ **Result = CreateCylinder(Name.s, Height.f, DiamTop.f, DiamBottom.f, Tessellation.i = 30, HeightSubdivs.i = 1)**\\ Créer un cylindre ■ **Result = CreateTorus(Name.s, Diameter, Thickness, Tesselation = 32)**\\ Créer un torus. ■ **Result = CreateTube(Name.s, Array VectorsArray.NewVector(1), Radius.f, Tessellation = 32, RadiusFunction = #PB_Ignore)**\\ Créer un tube. ■ **Result = CreateIcoSphere(Name.s, Radius, RadiusY, Subdivs = 16)**\\ Créer un icosphere. ■ **Result = CreateTerrain(Name.s, HeightMap.s, Width.f, Depth.f, Subdivs.i, Minheight.f, MaxHeight.f)**\\ Créer un terrain. La représentation du relief d'un terrain passe par une carte des altitudes, plus communément appelée par son terme anglo-saxon, heightmap. Les zones les plus claires (//blanches//) correspondent aux hautes altitudes, tandis que les zones les plus sombres (//noires//) correspondent aux basses altitudes. ■ **CreateMeshBody(Mesh, Type, Mass.f = 1.0, Restitution.f = 1.0, Friction = 0.1)**\\ Crée ou change le type de corps physique d'un mesh : **#BJS_PlaneBody**, **#BJS_SphereBody**, **#BJS_BoxBody**, **#BJS_CylinderBody** ■ **ApplyMeshImpulse(Mesh, x.f, y.f, z.f)**\\ Appliquer une impulsion sur l'axe 3D. ■ **MeshCollide(Mesh1, Mesh2, CallBack)**\\ Vérifier si deux entités entrent en collision et définir les actions dans un callback. Pour que les collisions soient gérées par le moteur physique, un mesh a besoin d'un corps (body) créé avec CreateMeshBody(). ■ **Result$ = GetMeshName(Mesh)**\\ Retourner le nom d'un mesh. ■ **Result = GetMeshByName(MeshName.s)**\\ Retourner l'objet mesh associé au nom passé en paramètre. ■ **FreeMesh(Mesh)**\\ Supprimer un mesh de la scene. ■ **MoveMesh(Mesh, x.f, y.f, z.f, Mode = #PB_Absolute)**\\ Déplacer un mesh. ■ **RotateMesh(Mesh, x.f, y.f, z.f, Mode = #PB_Absolute)**\\ Déplacer un mesh. ■ **ScaleMesh(Mesh, x.f, y.f, z.f, Mode = #PB_Absolute)**\\ Changer les dimensions d'un mesh. ■ **Result = CloneMesh(Mesh)**\\ Clone un mesh. ■ **MergeMeshes(Array Meshes(1))**\\ Fusionner plusieurs meshes en un seul mesh. Global Dim Meshes(1) Meshes(0) = CreateBox("box", 0.5, 1, 0.5) Meshes(1) = CreateSphere("sphere", 0.7) MoveMesh(Meshes(1), 0, 0.8, 0) Object = MergeMeshes(Meshes()) Si vous avez besoin d'une copie de ce nouveau mesh, utilisez la fonction CloneMesh() ■ **AttachMesh(Parent, Child, x.f, y.f, z.f)**\\ Attache un mesh fils sur un mesh parent. ■ **MeshLookAt(Mesh, Target)**\\ Spécifier le le mesh qui fait face à un autre mesh. ■ **SetMeshPivot(Mesh, x.f, y.f, z.f) (Prochaine version)**\\ Change le point de pivot d'un mesh. ■ **PickEnable()**\\ Active le system de picking. ■ **IsPick()**\\ Un mesh est t'il cliqué avec la souris ? ■ **PickMesh()**\\ Renvoie l'objet mesh. ■ **Result = PickX()**\\ Renvoie la position de la souris sur l'axe X. ■ **Result = PickY()**\\ Renvoie la position de la souris sur l'axe Y. ■ **Result = PickZ()**\\ Renvoie la position de la souris sur l'axe Z.