diff options
| author | Ray <[email protected]> | 2021-10-18 00:06:41 +0200 |
|---|---|---|
| committer | Ray <[email protected]> | 2021-10-18 00:06:41 +0200 |
| commit | 7f0e6dee5c99b14a104ee55fd7699723771d2a9b (patch) | |
| tree | 3119b56d8c8bc7c9e27879163397d7f66cb8e0e9 /cheatsheet/raylib_models.c | |
| parent | be0adede500a565bbdd4976e361549f6fdc7ef85 (diff) | |
| download | raylib.com-7f0e6dee5c99b14a104ee55fd7699723771d2a9b.tar.gz raylib.com-7f0e6dee5c99b14a104ee55fd7699723771d2a9b.zip | |
Update cheatsheet
Diffstat (limited to 'cheatsheet/raylib_models.c')
| -rw-r--r-- | cheatsheet/raylib_models.c | 87 |
1 files changed, 45 insertions, 42 deletions
diff --git a/cheatsheet/raylib_models.c b/cheatsheet/raylib_models.c index 6e3c4bb..8d61eba 100644 --- a/cheatsheet/raylib_models.c +++ b/cheatsheet/raylib_models.c @@ -10,11 +10,14 @@ void DrawCubeWires(Vector3 position, float width, float height, float length, Color color); // Draw cube wires void DrawCubeWiresV(Vector3 position, Vector3 size, Color color); // Draw cube wires (Vector version) void DrawCubeTexture(Texture2D texture, Vector3 position, float width, float height, float length, Color color); // Draw cube textured + void DrawCubeTextureRec(Texture2D texture, Rectangle source, Vector3 position, float width, float height, float length, Color color); // Draw cube with a region of a texture void DrawSphere(Vector3 centerPos, float radius, Color color); // Draw sphere void DrawSphereEx(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere with extended parameters void DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere wires - void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone - void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone wires + void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone + void DrawCylinderEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color); // Draw a cylinder with base at startPos and top at endPos + void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone wires + void DrawCylinderWiresEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color); // Draw a cylinder wires with base at startPos and top at endPos void DrawPlane(Vector3 centerPos, Vector2 size, Color color); // Draw a plane XZ void DrawRay(Ray ray, Color color); // Draw a ray line void DrawGrid(int slices, float spacing); // Draw a grid (centered at (0, 0, 0)) @@ -24,28 +27,28 @@ Model LoadModelFromMesh(Mesh mesh); // Load model from generated mesh (default material) void UnloadModel(Model model); // Unload model (including meshes) from memory (RAM and/or VRAM) void UnloadModelKeepMeshes(Model model); // Unload model (but not meshes) from memory (RAM and/or VRAM) + BoundingBox GetModelBoundingBox(Model model); // Compute model bounding box limits (considers all meshes) - // Mesh loading/unloading functions - void UploadMesh(Mesh *mesh, bool dynamic); // Upload vertex data into GPU and provided VAO/VBO ids - void UpdateMeshBuffer(Mesh mesh, int index, void *data, int dataSize, int offset); // Update mesh vertex data in GPU for a specific buffer index + // Model drawing functions + void DrawModel(Model model, Vector3 position, float scale, Color tint); // Draw a model (with texture if set) + void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model with extended parameters + void DrawModelWires(Model model, Vector3 position, float scale, Color tint); // Draw a model wires (with texture if set) + void DrawModelWiresEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model wires (with texture if set) with extended parameters + void DrawBoundingBox(BoundingBox box, Color color); // Draw bounding box (wires) + void DrawBillboard(Camera camera, Texture2D texture, Vector3 position, float size, Color tint); // Draw a billboard texture + void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector2 size, Color tint); // Draw a billboard texture defined by source + void DrawBillboardPro(Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector3 up, Vector2 size, Vector2 origin, float rotation, Color tint); // Draw a billboard texture defined by source and rotation + + // Mesh management functions + void UploadMesh(Mesh *mesh, bool dynamic); // Upload mesh vertex data in GPU and provide VAO/VBO ids + void UpdateMeshBuffer(Mesh mesh, int index, void *data, int dataSize, int offset); // Update mesh vertex data in GPU for a specific buffer index + void UnloadMesh(Mesh mesh); // Unload mesh data from CPU and GPU void DrawMesh(Mesh mesh, Material material, Matrix transform); // Draw a 3d mesh with material and transform void DrawMeshInstanced(Mesh mesh, Material material, Matrix *transforms, int instances); // Draw multiple mesh instances with material and different transforms - void UnloadMesh(Mesh mesh); // Unload mesh data from CPU and GPU bool ExportMesh(Mesh mesh, const char *fileName); // Export mesh data to file, returns true on success - - // Material loading/unloading functions - Material *LoadMaterials(const char *fileName, int *materialCount); // Load materials from model file - Material LoadMaterialDefault(void); // Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) - void UnloadMaterial(Material material); // Unload material from GPU memory (VRAM) - void SetMaterialTexture(Material *material, int mapType, Texture2D texture); // Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) - void SetModelMeshMaterial(Model *model, int meshId, int materialId); // Set material for a mesh - - // Model animations loading/unloading functions - ModelAnimation *LoadModelAnimations(const char *fileName, int *animsCount); // Load model animations from file - void UpdateModelAnimation(Model model, ModelAnimation anim, int frame); // Update model animation pose - void UnloadModelAnimation(ModelAnimation anim); // Unload animation data - void UnloadModelAnimations(ModelAnimation* animations, unsigned int count); // Unload animation array data - bool IsModelAnimationValid(Model model, ModelAnimation anim); // Check model animation skeleton match + BoundingBox GetMeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits + void GenMeshTangents(Mesh *mesh); // Compute mesh tangents + void GenMeshBinormals(Mesh *mesh); // Compute mesh binormals // Mesh generation functions Mesh GenMeshPoly(int sides, float radius); // Generate polygonal mesh @@ -54,34 +57,34 @@ Mesh GenMeshSphere(float radius, int rings, int slices); // Generate sphere mesh (standard sphere) Mesh GenMeshHemiSphere(float radius, int rings, int slices); // Generate half-sphere mesh (no bottom cap) Mesh GenMeshCylinder(float radius, float height, int slices); // Generate cylinder mesh + Mesh GenMeshCone(float radius, float height, int slices); // Generate cone/pyramid mesh Mesh GenMeshTorus(float radius, float size, int radSeg, int sides); // Generate torus mesh Mesh GenMeshKnot(float radius, float size, int radSeg, int sides); // Generate trefoil knot mesh Mesh GenMeshHeightmap(Image heightmap, Vector3 size); // Generate heightmap mesh from image data Mesh GenMeshCubicmap(Image cubicmap, Vector3 cubeSize); // Generate cubes-based map mesh from image data - // Mesh manipulation functions - BoundingBox GetMeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits - void MeshTangents(Mesh *mesh); // Compute mesh tangents - void MeshBinormals(Mesh *mesh); // Compute mesh binormals + // Material loading/unloading functions + Material *LoadMaterials(const char *fileName, int *materialCount); // Load materials from model file + Material LoadMaterialDefault(void); // Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) + void UnloadMaterial(Material material); // Unload material from GPU memory (VRAM) + void SetMaterialTexture(Material *material, int mapType, Texture2D texture); // Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) + void SetModelMeshMaterial(Model *model, int meshId, int materialId); // Set material for a mesh - // Model drawing functions - void DrawModel(Model model, Vector3 position, float scale, Color tint); // Draw a model (with texture if set) - void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model with extended parameters - void DrawModelWires(Model model, Vector3 position, float scale, Color tint); // Draw a model wires (with texture if set) - void DrawModelWiresEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model wires (with texture if set) with extended parameters - void DrawBoundingBox(BoundingBox box, Color color); // Draw bounding box (wires) - void DrawBillboard(Camera camera, Texture2D texture, Vector3 center, float size, Color tint); // Draw a billboard texture - void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle source, Vector3 center, float size, Color tint); // Draw a billboard texture defined by source + // Model animations loading/unloading functions + ModelAnimation *LoadModelAnimations(const char *fileName, unsigned int *animCount); // Load model animations from file + void UpdateModelAnimation(Model model, ModelAnimation anim, int frame); // Update model animation pose + void UnloadModelAnimation(ModelAnimation anim); // Unload animation data + void UnloadModelAnimations(ModelAnimation* animations, unsigned int count); // Unload animation array data + bool IsModelAnimationValid(Model model, ModelAnimation anim); // Check model animation skeleton match // Collision detection functions - bool CheckCollisionSpheres(Vector3 center1, float radius1, Vector3 center2, float radius2); // Detect collision between two spheres - bool CheckCollisionBoxes(BoundingBox box1, BoundingBox box2); // Detect collision between two bounding boxes - bool CheckCollisionBoxSphere(BoundingBox box, Vector3 center, float radius); // Detect collision between box and sphere - bool CheckCollisionRaySphere(Ray ray, Vector3 center, float radius); // Detect collision between ray and sphere - bool CheckCollisionRaySphereEx(Ray ray, Vector3 center, float radius, Vector3 *collisionPoint); // Detect collision between ray and sphere, returns collision point - bool CheckCollisionRayBox(Ray ray, BoundingBox box); // Detect collision between ray and box - RayHitInfo GetCollisionRayMesh(Ray ray, Mesh mesh, Matrix transform); // Get collision info between ray and mesh - RayHitInfo GetCollisionRayModel(Ray ray, Model model); // Get collision info between ray and model - RayHitInfo GetCollisionRayTriangle(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3); // Get collision info between ray and triangle - RayHitInfo GetCollisionRayGround(Ray ray, float groundHeight); // Get collision info between ray and ground plane (Y-normal plane) + bool CheckCollisionSpheres(Vector3 center1, float radius1, Vector3 center2, float radius2); // Check collision between two spheres + bool CheckCollisionBoxes(BoundingBox box1, BoundingBox box2); // Check collision between two bounding boxes + bool CheckCollisionBoxSphere(BoundingBox box, Vector3 center, float radius); // Check collision between box and sphere + RayCollision GetRayCollisionSphere(Ray ray, Vector3 center, float radius); // Get collision info between ray and sphere + RayCollision GetRayCollisionBox(Ray ray, BoundingBox box); // Get collision info between ray and box + RayCollision GetRayCollisionModel(Ray ray, Model model); // Get collision info between ray and model + RayCollision GetRayCollisionMesh(Ray ray, Mesh mesh, Matrix transform); // Get collision info between ray and mesh + RayCollision GetRayCollisionTriangle(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3); // Get collision info between ray and triangle + RayCollision GetRayCollisionQuad(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4); // Get collision info between ray and quad |
