# TRITIUM-PROVENANCE sha256=7ea656eac0d4b3a5a4d949551942caf242839241e8663c45c8f38ed52b3eca27 lang=python # TRITIUM-HEIGHT high=0.00 mid=0.30 low=0.70 fns=3 # TRITIUM-PSEUDO fn=transform3d #| fn transform3d(x, y, z, r00, r01, r02, r10, r11, r12, r20, r21, r22, tx, ty, tz, out): #| out[0] = r00 * x + r01 * y + r02 * z + tx #| out[1] = r10 * x + r11 * y + r12 * z + ty #| out[2] = r20 * x + r21 * y + r22 * z + tz #| return 1 # TRITIUM-HEIGHT fn=transform3d high=0.00 mid=0.27 low=0.73 role=algo_mid def transform3d(x: float, y: float, z: float, r00: float, r01: float, r02: float, r10: float, r11: float, r12: float, r20: float, r21: float, r22: float, tx: float, ty: float, tz: float, out: list[float]) -> int: out[0] = r00 * x + r01 * y + r02 * z + tx out[1] = r10 * x + r11 * y + r12 * z + ty out[2] = r20 * x + r21 * y + r22 * z + tz return 1 # TRITIUM-PSEUDO fn=project3d #| fn project3d(x, y, z, f, out): #| if z == 0.0: #| out[0] = 0.0 #| out[1] = 0.0 #| return 0 #| out[0] = f * x / z #| out[1] = f * y / z #| return 1 # TRITIUM-HEIGHT fn=project3d high=0.00 mid=0.39 low=0.61 role=algo_mid def project3d(x: float, y: float, z: float, f: float, out: list[float]) -> int: if z == 0.0: out[0] = 0.0 out[1] = 0.0 return 0 out[0] = f * x / z out[1] = f * y / z return 1 # TRITIUM-PSEUDO fn=viewport #| fn viewport(u, v, w, h, out): #| out[0] = (u + 1.0) * 0.5 * w #| out[1] = (1.0 - v) * 0.5 * h #| return 1 # TRITIUM-HEIGHT fn=viewport high=0.00 mid=0.25 low=0.75 role=algo_mid def viewport(u: float, v: float, w: float, h: float, out: list[float]) -> int: out[0] = (u + 1.0) * 0.5 * w out[1] = (1.0 - v) * 0.5 * h return 1