shithub: libgraphics

Download patch

ref: 12efa1d9e0ff3a32b018ee83d6ebee08c77972a9
parent: a09cfff78a96a10169a30324b75554827945fed4
author: rodri <[email protected]>
date: Sat Oct 19 07:42:51 EDT 2024

remove quaternion sandwich utils (now part of libgeometry.)

--- a/graphics.h
+++ b/graphics.h
@@ -150,6 +150,8 @@
 	/* spotlights */
 	double θu;	/* umbra angle. anything beyond is unlit */
 	double θp;	/* penumbra angle. anything within is fully lit */
+
+	LightSource *prev, *next;
 };
 
 struct Material
@@ -199,6 +201,8 @@
 	char *name;
 	Entity ents;
 	ulong nents;
+	LightSource lights;
+	ulong nlights;
 	Cubemap *skybox;
 
 	void (*addent)(Scene*, Entity*);
@@ -446,8 +450,6 @@
 Point3 minpt3(Point3, Point3);
 Point3 maxpt3(Point3, Point3);
 int eqpt3(Point3, Point3);
-Quaternion qsandwich(Quaternion, Quaternion);
-Point3 qsandwichpt3(Quaternion, Point3);
 Memimage *rgba(ulong);
 Memimage *dupmemimage(Memimage*);
 
--- a/render.c
+++ b/render.c
@@ -179,7 +179,7 @@
 	double dplen, perc;
 	float z, pcz;
 	uint ropts;
-	int steep = 0, Δe, e, Δy;
+	int steep, Δe, e, Δy;
 
 	params = task->params;
 	prim = &task->p;
@@ -233,6 +233,7 @@
 		if(rectclipline(task->wr, &p0, &p1, &prim->v[0], &prim->v[1]) < 0)
 			break;
 
+		steep = 0;
 		/* transpose the points */
 		if(abs(p0.x-p1.x) < abs(p0.y-p1.y)){
 			steep = 1;
--- a/util.c
+++ b/util.c
@@ -91,21 +91,6 @@
 	return vec3len(subpt3(a, b)) < ε2;
 }
 
-Quaternion
-qsandwich(Quaternion q, Quaternion p)
-{
-	return mulq(mulq(q, p), invq(q));
-}
-
-Point3
-qsandwichpt3(Quaternion q, Point3 p)
-{
-	Quaternion r;
-
-	r = qsandwich(q, Quatvec(0, p));
-	return Pt3(r.i, r.j, r.k, p.w);
-}
-
 void
 memsetf(void *dp, float v, usize len)
 {