X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fgeom.h;h=7fc183c5a2737e7ec2396bfc0f65163539fed823;hb=HEAD;hp=14faa82af794bdca1f6a642e25740e1bb86a91fd;hpb=7e22a9e6549bf0ff36dc9a73c243de1f4b36b4a4;p=meshfrac diff --git a/src/geom.h b/src/geom.h index 14faa82..7fc183c 100644 --- a/src/geom.h +++ b/src/geom.h @@ -18,12 +18,19 @@ struct poly { float plane_dist(const struct plane *p, const cgm_vec3 *pt); float plane_sdist(const struct plane *p, const cgm_vec3 *pt); -void midplane(struct plane *p, const cgm_vec3 *a, const cgm_vec3 *b); +void midplane(struct plane *p, const cgm_vec3 *a, const cgm_vec3 *b, float offs); void poly_plane(const struct poly *poly, struct plane *plane); +int plane_poly(const struct plane *plane, struct poly *poly, float size); /* returns negative if there's no intersection, parametric distance if there is */ float ray_plane(const cgm_ray *ray, const struct plane *plane); float ray_poly(const cgm_ray *ray, const struct poly *poly); +int init_poly(struct poly *p); +void destroy_poly(struct poly *p); +int clip_poly(struct poly *pout, const struct poly *pin, const struct plane *plane); + +int poly_poly(const struct poly *p1, const struct poly *p2); + #endif /* GEOM_H_ */