BRL-CAD
polygon.h File Reference
#include "common.h"
#include "vmath.h"
#include "bu/color.h"
#include "bn/tol.h"
#include "bv/defines.h"
#include "bg/defines.h"
#include "bg/polygon_types.h"
Include dependency graph for polygon.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define CLIPPER_MAX   1518500249
 Functions for working with polygons. More...
 

Enumerations

enum  triangulation_t {
  TRI_ANY = 0 , TRI_EAR_CLIPPING , TRI_CONSTRAINED_DELAUNAY , TRI_MONOTONE ,
  TRI_HERTEL_MEHLHORN , TRI_KEIL_SNOEYINK , TRI_DELAUNAY
}
 

Functions

fastf_t bg_find_polygon_area (struct bg_polygon *gpoly, fastf_t sf, plane_t *vp, fastf_t size)
 
int bg_polygons_overlap (struct bg_polygon *polyA, struct bg_polygon *polyB, plane_t *vp, const struct bn_tol *tol, fastf_t iscale)
 
struct bg_polygonbg_clip_polygon (bg_clip_t op, struct bg_polygon *subj, struct bg_polygon *clip, fastf_t sf, plane_t *vp)
 
struct bg_polygonbg_clip_polygons (bg_clip_t op, struct bg_polygons *subj, struct bg_polygons *clip, fastf_t sf, plane_t *vp)
 
void bg_polygon_free (struct bg_polygon *gpp)
 
void bg_polygons_free (struct bg_polygons *gpp)
 
void bg_polygon_cpy (struct bg_polygon *dest, struct bg_polygon *src)
 
void bg_polygon_view_bbox (point2d_t *bmin, point2d_t *bmax, struct bg_polygon *p, matp_t model2view)
 Find the 2D axis aligned bounding box of a bg_polygon in view coordinates. More...
 
int bg_polygon_direction (size_t npts, const point2d_t *pts, const int *pt_indices)
 Test whether a polygon is clockwise (CW) or counter clockwise (CCW) More...
 
int bg_pnt_in_polygon (size_t npts, const point2d_t *pts, const point2d_t *test_pt)
 test whether a point is inside a 2d polygon More...
 
int bg_nested_poly_triangulate (int **faces, int *num_faces, point2d_t **out_pts, int *num_outpts, const int *poly, const size_t poly_npts, const int **holes_array, const size_t *holes_npts, const size_t nholes, const int *steiner, const size_t steiner_npts, const point2d_t *pts, const size_t npts, triangulation_t type)
 Triangulate a 2D polygon with holes. More...
 
int bg_poly_triangulate (int **faces, int *num_faces, point2d_t **out_pts, int *num_outpts, const int *steiner, const size_t steiner_npts, const point2d_t *pts, const size_t npts, triangulation_t type)
 Triangulate a 2D polygon without holes. More...
 
int bg_polygon_triangulate (int **faces, int *num_faces, point_t **out_pts, int *num_outpts, struct bg_polygon *p, triangulation_t type)
 Triangulate a bg_polygon. More...
 
int bg_poly2tri_test (int **faces, int *num_faces, point2d_t **out_pts, int *num_outpts, const int *poly, const size_t poly_pnts, const int **holes_array, const size_t *holes_npts, const size_t nholes, const int *steiner, const size_t steiner_npts, const point2d_t *pts)
 
int bg_3d_polygon_area (fastf_t *area, size_t npts, const point_t *pts)
 Calculate the interior area of a polygon in a 3D plane in space. More...
 
int bg_3d_polygon_centroid (point_t *cent, size_t npts, const point_t *pts)
 Calculate the centroid of a non self-intersecting polygon in a 3D plane in space. More...
 
int bg_3d_polygon_sort_ccw (size_t npts, point_t *pts, plane_t cmp)
 Sort an array of point_ts, building a convex polygon, counter-clockwise. More...
 
int bg_3d_polygon_make_pnts_planes (size_t *npts, point_t **pts, size_t neqs, const plane_t *eqs)
 Calculate for an array of plane_eqs, which build a polyhedron, the point_t's for each face. More...
 
void bg_polygon_plot_2d (const char *filename, const point2d_t *pnts, int npnts, int r, int g, int b)
 
void bg_polygon_plot (const char *filename, const point_t *pnts, int npnts, int r, int g, int b)
 
void bg_tri_plot_2d (const char *filename, const int *faces, int num_faces, const point2d_t *pnts, int r, int g, int b)