summaryrefslogtreecommitdiff
path: root/libs/cglm/docs/source/sphere.rst
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2022-06-14 00:06:42 -0500
committersanine <sanine.not@pm.me>2022-06-14 00:06:42 -0500
commit2f518e5e28d35ae24a5ac0e31000835e43b01972 (patch)
tree47fdeb9fa5b04e267702acb06424d3f87b37dd84 /libs/cglm/docs/source/sphere.rst
parent034d5c965ff34cfdf4b153af9f32360a02e35684 (diff)
add cglm as 3rd-party library
Diffstat (limited to 'libs/cglm/docs/source/sphere.rst')
-rw-r--r--libs/cglm/docs/source/sphere.rst74
1 files changed, 74 insertions, 0 deletions
diff --git a/libs/cglm/docs/source/sphere.rst b/libs/cglm/docs/source/sphere.rst
new file mode 100644
index 0000000..db238f4
--- /dev/null
+++ b/libs/cglm/docs/source/sphere.rst
@@ -0,0 +1,74 @@
+.. default-domain:: C
+
+Sphere
+================================================================================
+
+Header: cglm/sphere.h
+
+**Definition of sphere:**
+
+Sphere Representation in cglm is *vec4*: **[center.x, center.y, center.z, radii]**
+
+You can call any vec3 function by pasing sphere. Because first three elements
+defines center of sphere.
+
+Table of contents (click to go):
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Functions:
+
+1. :c:func:`glm_sphere_radii`
+#. :c:func:`glm_sphere_transform`
+#. :c:func:`glm_sphere_merge`
+#. :c:func:`glm_sphere_sphere`
+#. :c:func:`glm_sphere_point`
+
+Functions documentation
+~~~~~~~~~~~~~~~~~~~~~~~
+
+.. c:function:: float glm_sphere_radii(vec4 s)
+
+ | helper for getting sphere radius
+
+ Parameters:
+ | *[in]* **s** sphere
+
+ Returns:
+ returns radii
+
+.. c:function:: void glm_sphere_transform(vec4 s, mat4 m, vec4 dest)
+
+ | apply transform to sphere, it is just wrapper for glm_mat4_mulv3
+
+ Parameters:
+ | *[in]* **s** sphere
+ | *[in]* **m** transform matrix
+ | *[out]* **dest** transformed sphere
+
+.. c:function:: void glm_sphere_merge(vec4 s1, vec4 s2, vec4 dest)
+
+ | merges two spheres and creates a new one
+
+ two sphere must be in same space, for instance if one in world space then
+ the other must be in world space too, not in local space.
+
+ Parameters:
+ | *[in]* **s1** sphere 1
+ | *[in]* **s2** sphere 2
+ | *[out]* **dest** merged/extended sphere
+
+.. c:function:: bool glm_sphere_sphere(vec4 s1, vec4 s2)
+
+ | check if two sphere intersects
+
+ Parameters:
+ | *[in]* **s1** sphere
+ | *[in]* **s2** other sphere
+
+.. c:function:: bool glm_sphere_point(vec4 s, vec3 point)
+
+ | check if sphere intersects with point
+
+ Parameters:
+ | *[in]* **s** sphere
+ | *[in]* **point** point