void midplane(struct plane *p, const cgm_vec3 *a, const cgm_vec3 *b);
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 clip_poly(struct poly *pout, const struct poly *pin, const struct plane *plane);
+
#endif /* GEOM_H_ */