package tiny_libs
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
From-scratch libraries for teaching: graphics, audio, compression, crypto, networking and more
Install
dune-project
Dependency
Authors
Maintainers
Sources
0.3.6.tar.gz
md5=7c636383d146d30ac6f2fa234a6253c8
sha512=c79f3823c5f8f57e5038eb640d487c61168b84aa07c61999d6622ef9fd0c890e2b03b4c6a7cdbbe9352a49e25dda00ac7bb14693cee8e3d7beeed251351a2af0
doc/src/tiny_libs.graphics_3d/Project.ml.html
Source file Project.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47(* Claude Code * * Copyright (C) 2026 Yoann Padioleau * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public License * (LGPL) as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. *) (* See Project.mli *) type vertex = { vx : float; vy : float; z : float; u : float; v : float; inv_z : float; u_over_z : float; v_over_z : float; normal : Vec3.t; } let vertex_of_view (camera : Camera.t) ~(width : int) ~(height : int) ((view_point, (u, v), normal) : Vec3.t * (float * float) * Vec3.t) : vertex option = let (_px, _py, pz) = view_point in let fsx = float_of_int width and fsy = float_of_int height in match Camera.ndc camera ~aspect:(fsx /. fsy) view_point with | None -> None | Some (ndc_x, ndc_y) -> let inv_z = 1. /. pz in Some { vx = (fsx /. 2.) +. (ndc_x *. (fsx /. 2.)); vy = (fsy /. 2.) -. (ndc_y *. (fsy /. 2.)); z = pz; u; v; inv_z; u_over_z = u *. inv_z; v_over_z = v *. inv_z; normal; } let vertex (camera : Camera.t) ~(width : int) ~(height : int) ((point, uv, normal) : Vec3.t * (float * float) * Vec3.t) : vertex option = vertex_of_view camera ~width ~height (Camera.view camera point, uv, normal)
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>