Forge
Forge is a basic utility library, consisting of pure c functions that are useful in any development. Forge is meant to be included in to all c files and all other Quel Solaar libraries and applications. Because it is included in all files it can provide some very useful functiuonality such as debugging memory and help find memory leaks. Forge is designed to be lightweight and compleatly platform and dependency indipendent.
Contents:
- Debugging
- f_debug_memory_init
- f_debug_mem_malloc
- f_debug_mem_realloc
- f_debug_mem_free
- f_debug_mem_comment
- f_debug_mem_print
- f_debug_mem_reset
- f_debug_mem_consumption
- f_debug_mem_query
- f_debug_mem_test
- f_debug_memory
- f_debug_memory_fopen
- f_debug_memory_fclose
- exit_crash
- RNG
- f_randf
- f_randd
- f_randnf
- f_randnd
- f_randi
- Vector math
- f_sqrtf
- f_length2f
- f_length3f
- f_distance2f
- f_distance3f
- f_dot2f
- f_dot3f
- f_cross2f
- f_cross3f
- f_normalize2f
- f_normalize3f
- f_normalize4f
- f_vector2f
- f_vector3f
- f_vector4f
- f_vector_normalized2f
- f_vector_normalized3f
- f_vector_normalized4f
- f_normal2f
- f_normal3f
- f_area2f
- f_area3f
- f_reflect2f
- f_reflect3f
- f_flatten2f
- f_flatten3f
- f_project2f
- f_project3f
- f_intersect2f
- f_intersect_test2f
- f_intersect3f
- f_distance_to_line3f
- f_length2d
- f_length3d
- f_distance2d
- f_distance3d
- f_dot2d
- f_dot3d
- f_cross2d
- f_cross3d
- f_normalize2d
- f_normalize3d
- f_normalize4d
- f_vector2d
- f_vector3d
- f_vector4d
- f_vector_normalized2d
- f_vector_normalized3d
- f_vector_normalized4d
- f_normal2d
- f_normal3d
- f_area2d
- f_area3d
- f_reflect2d
- f_reflect3d
- f_flatten2d
- f_flatten3d
- f_project2d
- f_project3d
- f_intersect2d
- f_intersect_test2d
- f_intersect3d
- f_distance_to_line3d
- Int vector math
- f_sqrti
- f_normalize_2di
- f_normalize_3di
- f_intersect2di
- f_sqrti64
- f_normalize_2di64
- f_normalize_3di64
- f_intersect2di64
- Matrix operations
- f_matrix_clearf
- f_matrix_cleard
- f_transform3f
- f_transform3d
- f_transform4f
- f_transform4d
- f_transforminv3f
- f_transforminv3d
- f_transforminv_scaled3f
- f_matrix_multiplyf
- f_matrix_multiplyd
- f_matrix_reverse4f
- f_matrix_reverse4d
- f_quaternion_to_matrixf
- f_quaternion_to_matrixd
- f_matrix_to_quaternionf
- f_matrix_to_quaterniond
- f_matrix_to_pos_quaternion_scalef
- f_matrix_to_pos_quaternion_scaled
- f_pos_quaternion_scale_to_matrixf
- f_pos_quaternion_scale_to_matrixd
- f_pos_quaternion_scale_to_matrix_invf
- f_pos_quaternion_scale_to_matrix_invd
- f_matrix_rotatef
- f_matrix_rotated
- Matrix Creation
- f_matrixxyf
- f_matrixxzf
- f_matrixyxf
- f_matrixyzf
- f_matrixzxf
- f_matrixzyf
- f_matrixxyd
- f_matrixxzd
- f_matrixyxd
- f_matrixyzd
- f_matrixzxd
- f_matrixzyd
- Splines
- f_splinef
- f_spline2df
- f_spline3df
- f_spline4df
- f_splined
- f_spline2dd
- f_spline3dd
- f_spline4dd
- Wiggle
- f_wigglef
- f_wiggle2df
- f_wiggle3df
- f_wiggled
- f_wiggle2dd
- f_wiggle3dd
- Smooth step
- f_smooth_stepf
- f_smooth_stepd
- Perlin noise
- f_noisef
- f_noise2f
- f_noise3f
- f_noiserf
- f_noiser2f
- f_noiser3f
- f_noised
- f_noise2d
- f_noise3d
- f_noiserd
- f_noiser2d
- f_noiser3d
- f_noisetf
- f_noiset2f
- f_noiset3f
- f_noisertf
- f_noisert2f
- f_noisert3f
- f_noisetd
- f_noiset2d
- f_noiset3d
- f_noisertd
- f_noisert2d
- f_noisert3d
- Snap
- f_snapf
- f_snapd
- Color space
- f_rgb_to_hsv
- f_hsv_to_rgb
- f_rgb_to_xyz
- f_xyz_to_rgb
- f_xyz_to_lab
- f_lab_to_xyz
- f_rgb_to_lab
- f_lab_to_rgb
- Triangle intersection
- f_raycast_trif
- f_raycast_tri_cullf
- f_raycast_trid
- f_raycast_tri_culld
- f_shape_inside2df
- f_shape_inside2dd
- f_image_scale_float
- char *f_image_scale_uint8
- Text
- f_find_next_word
- f_find_word_compare
- f_text_copy
- f_text_compare
- f_text_copy_allocate
- f_word_copy
- f_text_copy_until
- f_text_filter
- f_text_unique
- f_text_load
- f_text_parce_hex
- f_text_parce_decimal
- f_text_parce_real
- f_text_parce_double
- f_print_raw
- f_fprint_raw
- f_text_obfuscate
- f_text_obfuscate_print
- f_bits_to_text
- f_text_to_bits
- Sorting
- f_sort_ids
- f_sort_pointers
- f_sort_strings
- Poly mesh neighbour
- f_sort_quad_tri_neighbor
- f_sort_tri_neighbor
- A* path finding
- f_path_find
- Defines