summaryrefslogtreecommitdiff
path: root/libgeometry/point.c
diff options
context:
space:
mode:
Diffstat (limited to 'libgeometry/point.c')
-rw-r--r--libgeometry/point.c161
1 files changed, 0 insertions, 161 deletions
diff --git a/libgeometry/point.c b/libgeometry/point.c
deleted file mode 100644
index 657eb4c..0000000
--- a/libgeometry/point.c
+++ /dev/null
@@ -1,161 +0,0 @@
-#include <u.h>
-#include <libc.h>
-#include "../geometry.h"
-
-/* 2D */
-
-Point2
-Pt2(double x, double y, double w)
-{
- return (Point2){x, y, w};
-}
-
-Point2
-Vec2(double x, double y)
-{
- return (Point2){x, y, 0};
-}
-
-Point2
-addpt2(Point2 a, Point2 b)
-{
- return (Point2){a.x+b.x, a.y+b.y, a.w+b.w};
-}
-
-Point2
-subpt2(Point2 a, Point2 b)
-{
- return (Point2){a.x-b.x, a.y-b.y, a.w-b.w};
-}
-
-Point2
-mulpt2(Point2 p, double s)
-{
- return (Point2){p.x*s, p.y*s, p.w*s};
-}
-
-Point2
-divpt2(Point2 p, double s)
-{
- return (Point2){p.x/s, p.y/s, p.w/s};
-}
-
-Point2
-lerp2(Point2 a, Point2 b, double t)
-{
- if(t < 0) t = 0;
- if(t > 1) t = 1;
- return (Point2){
- (1 - t)*a.x + t*b.x,
- (1 - t)*a.y + t*b.y,
- (1 - t)*a.w + t*b.w
- };
-}
-
-double
-dotvec2(Point2 a, Point2 b)
-{
- return a.x*b.x + a.y*b.y;
-}
-
-double
-vec2len(Point2 v)
-{
- return sqrt(dotvec2(v, v));
-}
-
-Point2
-normvec2(Point2 v)
-{
- double len;
-
- len = vec2len(v);
- if(len == 0)
- return (Point2){0, 0, 0};
- return (Point2){v.x/len, v.y/len, 0};
-}
-
-/* 3D */
-
-Point3
-Pt3(double x, double y, double z, double w)
-{
- return (Point3){x, y, z, w};
-}
-
-Point3
-Vec3(double x, double y, double z)
-{
- return (Point3){x, y, z, 0};
-}
-
-Point3
-addpt3(Point3 a, Point3 b)
-{
- return (Point3){a.x+b.x, a.y+b.y, a.z+b.z, a.w+b.w};
-}
-
-Point3
-subpt3(Point3 a, Point3 b)
-{
- return (Point3){a.x-b.x, a.y-b.y, a.z-b.z, a.w-b.w};
-}
-
-Point3
-mulpt3(Point3 p, double s)
-{
- return (Point3){p.x*s, p.y*s, p.z*s, p.w*s};
-}
-
-Point3
-divpt3(Point3 p, double s)
-{
- return (Point3){p.x/s, p.y/s, p.z/s, p.w/s};
-}
-
-Point3
-lerp3(Point3 a, Point3 b, double t)
-{
- if(t < 0) t = 0;
- if(t > 1) t = 1;
- return (Point3){
- (1 - t)*a.x + t*b.x,
- (1 - t)*a.y + t*b.y,
- (1 - t)*a.z + t*b.z,
- (1 - t)*a.w + t*b.w
- };
-}
-
-double
-dotvec3(Point3 a, Point3 b)
-{
- return a.x*b.x + a.y*b.y + a.z*b.z;
-}
-
-Point3
-crossvec3(Point3 a, Point3 b)
-{
- return (Point3){
- a.y*b.z - a.z*b.y,
- a.z*b.x - a.x*b.z,
- a.x*b.y - a.y*b.x,
- 0
- };
-}
-
-double
-vec3len(Point3 v)
-{
- return sqrt(dotvec3(v, v));
-}
-
-Point3
-normvec3(Point3 v)
-{
- double len;
-
- len = vec3len(v);
- if(len == 0)
- return (Point3){0, 0, 0, 0};
- return (Point3){v.x/len, v.y/len, v.z/len, 0};
-}