# 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 passing sphere. Because first three elements defines center of sphere.

## Table of contents (click to go):

Functions:

1. `glm_sphere_radii()`

2. `glm_sphere_transform()`

3. `glm_sphere_merge()`

4. `glm_sphere_sphere()`

5. `glm_sphere_point()`

## Functions documentation

float glm_sphere_radii(vec4 s)
  helper for getting sphere radius
  Parameters:
    [in] s sphere
  Returns:

    returns radii

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

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

bool glm_sphere_sphere(vec4 s1, vec4 s2)
  check if two sphere intersects
  Parameters:
    [in] s1 sphere
    [in] s2 other sphere

bool glm_sphere_point(vec4 s, vec3 point)
  check if sphere intersects with point
  Parameters:
    [in] s sphere
    [in] point point