BRL-CAD
G_

Files

file  brep_debug.cpp
 
file  brep_debug.h
 
file  generic.c
 
file  table.c
 

Data Structures

struct  brep_build_bvh_parallel
 
class  brep_hit
 
class  RT_MemoryArchive
 
struct  brep_selectable_cv
 
struct  brep_cv
 
struct  brep_selection
 

Macros

#define BN_VMATH_PREFIX_INDICES   1
 
#define ROOT_TOL   1.E-7
 
#define MAX_BREP_SUBDIVISION_INTERSECTS   5
 
#define ARB_FACE(valp, a, b, c, d)
 
#define BB_PLOT_VLIST(min, max)
 
#define fastf_t   double
 
#define BLUEVIOLET   138, 43, 226
 
#define CADETBLUE   95, 159, 159
 
#define CORNFLOWERBLUE   66, 66, 111
 
#define LIGHTBLUE   173, 216, 230
 
#define DARKGREEN   0, 100, 0
 
#define KHAKI   189, 183, 107
 
#define FORESTGREEN   34, 139, 34
 
#define LIMEGREEN   124, 252, 0
 
#define PALEGREEN   152, 251, 152
 
#define DARKORANGE   255, 140, 0
 
#define DARKSALMON   233, 150, 122
 
#define LIGHTCORAL   240, 128, 128
 
#define PEACH   255, 218, 185
 
#define DEEPPINK   255, 20, 147
 
#define HOTPINK   255, 105, 180
 
#define INDIANRED   205, 92, 92
 
#define DARKVIOLET   148, 0, 211
 
#define MAROON   139, 28, 98
 
#define GOLDENROD   218, 165, 32
 
#define DARKGOLDENROD   184, 134, 11
 
#define LIGHTGOLDENROD   238, 221, 130
 
#define DARKYELLOW   155, 155, 52
 
#define LIGHTYELLOW   255, 255, 224
 
#define PURERED   255, 0, 0
 
#define GREEN   0, 255, 0
 
#define BLUE   0, 0, 255
 
#define YELLOW   255, 255, 0
 
#define MAGENTA   255, 0, 255
 
#define CYAN   0, 255, 255
 
#define BLACK   0, 0, 0
 
#define WHITE   255, 255, 255
 
#define M_COLOR_PLOT(c)   pl_color(brep_plot_file(), c)
 
#define COLOR_PLOT(r, g, b)   pl_color(brep_plot_file(), (r), (g), (b))
 
#define M_PT_PLOT(p)
 
#define PT_PLOT(p)
 
#define LINE_PLOT(p1, p2)   pdv_3move(brep_plot_file(), p1); pdv_3line(brep_plot_file(), p1, p2)
 
#define BB_PLOT(p1, p2)   pdv_3box(brep_plot_file(), p1, p2)
 

Typedefs

typedef std::list< brep_hitHitList
 
typedef std::pair< int, int > ip_t
 
typedef std::list< ip_tMissList
 

Enumerations

enum  hit_type {
  CLEAN_HIT, CLEAN_MISS, NEAR_HIT, NEAR_MISS,
  CRACK_HIT
}
 
enum  hit_direction { ENTERING, LEAVING }
 
enum  brep_intersect_reason_t {
  BREP_INTERSECT_RIGHT_OF_EDGE = -5, BREP_INTERSECT_MISSED_EDGE = -4, BREP_INTERSECT_ROOT_ITERATION_LIMIT = -3, BREP_INTERSECT_ROOT_DIVERGED = -2,
  BREP_INTERSECT_OOB = -1, BREP_INTERSECT_TRIMMED = 0, BREP_INTERSECT_FOUND = 1
}
 

Functions

int rt_brep_bbox (struct rt_db_internal *ip, point_t *min, point_t *max)
 
int rt_brep_prep (struct soltab *stp, struct rt_db_internal *ip, struct rt_i *rtip)
 
void rt_brep_print (register const struct soltab *stp)
 
int rt_brep_shot (struct soltab *stp, register struct xray *rp, struct application *ap, struct seg *seghead)
 
void rt_brep_norm (register struct hit *hitp, struct soltab *stp, register struct xray *rp)
 
void rt_brep_curve (register struct curvature *cvp, register struct hit *hitp, struct soltab *stp)
 
int rt_brep_class (const struct soltab *stp, const fastf_t *min, const fastf_t *max, const struct bn_tol *tol)
 
void rt_brep_uv (struct application *ap, struct soltab *stp, register struct hit *hitp, register struct uvcoord *uvp)
 
void rt_brep_free (register struct soltab *stp)
 
int rt_brep_adaptive_plot (struct rt_db_internal *ip, const struct rt_view_info *info)
 
int rt_brep_plot (struct bu_list *vhead, struct rt_db_internal *ip, const struct rt_tess_tol *ttol, const struct bn_tol *tol, const struct rt_view_info *info)
 
int rt_brep_tess (struct nmgregion **r, struct model *m, struct rt_db_internal *ip, const struct rt_tess_tol *ttol, const struct bn_tol *tol)
 
int rt_brep_get (struct bu_vls *logstr, const struct rt_db_internal *intern, const char *attr)
 
int rt_brep_adjust (struct bu_vls *logstr, const struct rt_db_internal *intern, int argc, const char **argv)
 
int rt_brep_export5 (struct bu_external *ep, const struct rt_db_internal *ip, double local2mm, const struct db_i *dbip)
 
int rt_brep_import5 (struct rt_db_internal *ip, const struct bu_external *ep, register const fastf_t *mat, const struct db_i *dbip)
 
void rt_brep_ifree (struct rt_db_internal *ip)
 
int rt_brep_describe (struct bu_vls *str, const struct rt_db_internal *ip, int verbose, double mm2local)
 
int rt_brep_tclget (Tcl_Interp *interp, const struct rt_db_internal *intern, const char *attr)
 
int rt_brep_tcladjust (Tcl_Interp *interp, struct rt_db_internal *intern, int argc, const char **argv)
 
int rt_brep_params (struct pc_pc_set *, const struct rt_db_internal *ip)
 
int rt_brep_boolean (struct rt_db_internal *out, const struct rt_db_internal *ip1, const struct rt_db_internal *ip2, db_op_t operation)
 
struct rt_selection_setrt_brep_find_selections (const struct rt_db_internal *ip, const struct rt_selection_query *query)
 
int rt_brep_process_selection (struct rt_db_internal *ip, const struct rt_selection *selection, const struct rt_selection_operation *op)
 
ON_Ray toXRay (struct xray *rp)
 
struct brep_specificbrep_specific_new ()
 
void brep_specific_delete (struct brep_specific *bs)
 
bool brep_pt_trimmed (pt2d_t pt, const ON_BrepFace &face)
 
double getVerticalTangent (const ON_Curve *curve, double min, double max)
 
double getHorizontalTangent (const ON_Curve *curve, double min, double max)
 
bool split_trims_hv_tangent (const ON_Curve *curve, ON_Interval &t, std::list< double > &list)
 
int brep_build_bvh (struct brep_specific *bs)
 
void rt_brep_print (const struct soltab *stp)
 
HIDDEN const char * BREP_INTERSECT_REASON (brep_intersect_reason_t index)
 
void utah_F (const ON_3dPoint &S, const ON_3dVector &p1, const double p1d, const ON_3dVector &p2, const double p2d, double &f1, double &f2)
 
void utah_Fu (const ON_3dVector &Su, const ON_3dVector &p1, const ON_3dVector &p2, double &d0, double &d1)
 
void utah_Fv (const ON_3dVector &Sv, const ON_3dVector &p1, const ON_3dVector &p2, double &d0, double &d1)
 
double utah_calc_t (const ON_Ray &r, ON_3dPoint &S)
 
void utah_pushBack (const ON_Surface *surf, ON_2dPoint &uv)
 
void utah_pushBack (const BBNode *sbv, ON_2dPoint &uv)
 
int utah_newton_solver (const BBNode *sbv, const ON_Surface *surf, const ON_Ray &r, ON_2dPoint *ouv, double *t, ON_3dVector *N, bool &converged, ON_2dPoint *suv, const int count, const int iu, const int iv)
 
int utah_newton_4corner_solver (const BBNode *sbv, const ON_Surface *surf, const ON_Ray &r, ON_2dPoint *ouv, double *t, ON_3dVector *N, bool &converged, int docorners)
 
bool utah_isTrimmed (ON_2dPoint uv, const ON_BrepFace *face)
 
int utah_brep_intersect (const BBNode *sbv, const ON_BrepFace *face, const ON_Surface *surf, pt2d_t &uv, ON_Ray &ray, HitList &hits)
 
HIDDEN int sign (double val)
 
bool containsNearMiss (HitList *hits)
 
bool containsNearHit (HitList *hits)
 
void rt_brep_norm (struct hit *hitp, struct soltab *stp, struct xray *rp)
 
void rt_brep_curve (struct curvature *cvp, struct hit *hitp, struct soltab *stp)
 
void plot_bbnode (BBNode *node, struct bu_list *vhead, int depth, int start, int limit)
 
double find_next_point (const ON_Curve *crv, double startdomval, double increment, double tolerance, int stepcount)
 
double find_next_trimming_point (const ON_Curve *crv, const ON_Surface *s, double startdomval, double increment, double tolerance, int stepcount)
 
bool near_equal (double first, double second)
 
void plot_sum_surface (struct bu_list *vhead, const ON_Surface *surf, int isocurveres, int gridres)
 
void plotisoUCheckForTrim (struct bu_list *vhead, SurfaceTree *st, fastf_t from, fastf_t to, fastf_t v)
 
void plotisoVCheckForTrim (struct bu_list *vhead, SurfaceTree *st, fastf_t from, fastf_t to, fastf_t u)
 
void plotisoU (struct bu_list *vhead, SurfaceTree *st, fastf_t from, fastf_t to, fastf_t v, int curveres)
 
void plotisoV (struct bu_list *vhead, SurfaceTree *st, fastf_t from, fastf_t to, fastf_t u, int curveres)
 
void plot_BBNode (struct bu_list *vhead, SurfaceTree *st, BBNode *node, int isocurveres, int gridres)
 
void plot_face_from_surface_tree (struct bu_list *vhead, SurfaceTree *st, int isocurveres, int gridres)
 
void getEdgePoints (const ON_BrepTrim &trim, fastf_t t1, ON_3dPoint &start_2d, ON_3dVector &start_tang, ON_3dPoint &start_3d, ON_3dVector &start_norm, fastf_t t2, ON_3dPoint &end_2d, ON_3dVector &end_tang, ON_3dPoint &end_3d, ON_3dVector &end_norm, fastf_t min_dist, fastf_t max_dist, fastf_t within_dist, fastf_t cos_within_ang, std::map< double, ON_3dPoint * > &param_points)
 
std::map< double, ON_3dPoint * > * getEdgePoints (ON_BrepTrim &trim, fastf_t max_dist, const struct rt_tess_tol *ttol, const struct bn_tol *tol, const struct rt_view_info *info)
 
void getSurfacePoints (const ON_Surface *s, fastf_t u1, fastf_t u2, fastf_t v1, fastf_t v2, fastf_t min_dist, fastf_t within_dist, fastf_t cos_within_ang, ON_2dPointArray &on_surf_points, bool left, bool below)
 
void getSurfacePoints (ON_BrepFace &face, const struct rt_tess_tol *ttol, const struct bn_tol *tol, const struct rt_view_info *info, ON_2dPointArray &on_surf_points)
 
void getUVCurveSamples (const ON_Surface *s, const ON_Curve *curve, fastf_t t1, ON_3dPoint &start_2d, ON_3dVector &start_tang, ON_3dPoint &start_3d, ON_3dVector &start_norm, fastf_t t2, ON_3dPoint &end_2d, ON_3dVector &end_tang, ON_3dPoint &end_3d, ON_3dVector &end_norm, fastf_t min_dist, fastf_t max_dist, fastf_t within_dist, fastf_t cos_within_ang, std::map< double, ON_3dPoint * > &param_points)
 
std::map< double, ON_3dPoint * > * getUVCurveSamples (const ON_Surface *surf, const ON_Curve *curve, fastf_t max_dist, const struct rt_tess_tol *ttol, const struct bn_tol *tol, const struct rt_view_info *info)
 
int number_of_seam_crossings (const ON_Surface *surf, ON_SimpleArray< BrepTrimPoint > &brep_trim_points)
 
bool LoopStraddlesDomain (const ON_Surface *surf, ON_SimpleArray< BrepTrimPoint > &brep_loop_points)
 
int is_entering (const ON_Surface *surf, const ON_SimpleArray< BrepTrimPoint > &brep_loop_points)
 
bool shift_loop_straddled_over_seam (const ON_Surface *surf, ON_SimpleArray< BrepTrimPoint > &brep_loop_points, double same_point_tolerance)
 
bool extend_over_seam_crossings (const ON_Surface *surf, ON_SimpleArray< BrepTrimPoint > &brep_loop_points)
 
void poly2tri_CDT (struct bu_list *vhead, ON_BrepFace &face, const struct rt_tess_tol *ttol, const struct bn_tol *tol, const struct rt_view_info *info, bool watertight=false, int plottype=0, int num_points=-1.0)
 
void plot_face_trim (struct bu_list *vhead, ON_BrepFace &face, int plotres, bool dim3d)
 
int rt_brep_plot_poly (struct bu_list *vhead, const struct db_full_path *pathp, struct rt_db_internal *ip, const struct rt_tess_tol *ttol, const struct bn_tol *tol, const struct rt_view_info *info)
 
int rt_brep_import5 (struct rt_db_internal *ip, const struct bu_external *ep, const fastf_t *mat, const struct db_i *dbip)
 
bool cmp_cv_startdist (brep_selectable_cv *c1, brep_selectable_cv *c2)
 
struct rt_selectionnew_cv_selection (brep_selectable_cv *s)
 
int brep_command (struct bu_vls *vls, const char *solid_name, const struct rt_tess_tol *ttol, const struct bn_tol *tol, struct brep_specific *bs, struct rt_brep_internal *bi, struct bn_vlblock *vbp, int argc, const char *argv[], char *commtag)
 
int single_conversion (struct rt_db_internal *intern, ON_Brep **brep, const struct db_i *dbip)
 
int brep_conversion (struct rt_db_internal *in, struct rt_db_internal *out, const struct db_i *dbip)
 
int brep_conversion_comb (struct rt_db_internal *old_internal, const char *name, const char *suffix, struct rt_wdb *wdbp, fastf_t local2mm)
 
int brep_intersect_point_point (struct rt_db_internal *intern1, struct rt_db_internal *intern2, int i, int j)
 
int brep_intersect_point_curve (struct rt_db_internal *intern1, struct rt_db_internal *intern2, int i, int j)
 
int brep_intersect_point_surface (struct rt_db_internal *intern1, struct rt_db_internal *intern2, int i, int j)
 
int brep_intersect_curve_curve (struct rt_db_internal *intern1, struct rt_db_internal *intern2, int i, int j)
 
int brep_intersect_curve_surface (struct rt_db_internal *intern1, struct rt_db_internal *intern2, int i, int j)
 
int brep_intersect_surface_surface (struct rt_db_internal *intern1, struct rt_db_internal *intern2, int i, int j, struct bn_vlblock *vbp)
 
void rt_comb_brep (ON_Brep **b, const struct rt_db_internal *ip, const struct bn_tol *tol, const struct db_i *dbip)
 
FILE * brep_plot_file (const char *pname)
 
void plotsurfaceleafs (SurfaceTree *surf)
 
unsigned int plotsurfaceleafs (SurfaceTree *surf, struct bn_vlblock *vbp, bool dim3d)
 
void plottrimleafs (SurfaceTree *st, struct bn_vlblock *vbp, bool dim3d)
 
void plotleaf3d (BBNode *bb, double within_distance_tol)
 
void plotleafuv (BBNode *bb)
 
void plottrim (ON_BrepFace &face, struct bn_vlblock *vbp, int plotres, bool dim3d)
 
void plottrim2d (ON_BrepFace &face, struct bn_vlblock *vbp, int plotres)
 
void plotUVDomain2d (ON_BrepFace &face, struct bn_vlblock *vbp)
 
void plottrim (ON_BrepTrim &trim, struct bn_vlblock *vbp, int plotres, bool dim3d)
 
void plottrimdirection (ON_BrepFace &face, struct bn_vlblock *vbp, int plotres)
 
void plotsurface (ON_Surface &surf, struct bn_vlblock *vbp, int isocurveres, int gridres, const int red=200, const int green=200, const int blue=200)
 
void plotsurfacenormals (ON_Surface &surf, struct bn_vlblock *vbp, int gridres)
 
void plotsurfaceknots (ON_Surface &surf, struct bn_vlblock *vbp, bool dim3d)
 
void plotcurve (ON_Curve &curve, struct bn_vlblock *vbp, int plotres, const int red=255, const int green=255, const int blue=0)
 
void plotpoint (const ON_3dPoint &point, struct bn_vlblock *vbp, const int red=255, const int green=255, const int blue=0)
 
void plotcurveonsurface (ON_Curve *curve, ON_Surface *surface, struct bn_vlblock *vbp, int plotres, const int red=255, const int green=255, const int blue=0)
 
void plottrim (const ON_Curve &curve, double from, double to)
 
void plottrim (ON_Curve &curve)
 
int brep_info (struct brep_specific *bs, struct bu_vls *vls)
 
int brep_surface_info (struct brep_specific *bs, struct bu_vls *vls, int si)
 
int brep_surface_bezier_info (struct brep_specific *bs, struct bu_vls *vls, int si)
 
int brep_face_info (struct brep_specific *bs, struct bu_vls *vls, int fi)
 
int brep_trim_info (struct brep_specific *bs, struct bu_vls *vls, int ti)
 
int brep_trim_bezier_info (struct brep_specific *bs, struct bu_vls *vls, int ti)
 
int brep_curve_info (struct brep_specific *bs, struct bu_vls *vls, int ci)
 
int brep_loop_info (struct brep_specific *bs, struct bu_vls *vls, int li)
 
int brep_edge_info (struct brep_specific *bs, struct bu_vls *vls, int ei)
 
int brep_facecdt_plot (struct bu_vls *vls, const char *solid_name, const struct rt_tess_tol *ttol, const struct bn_tol *tol, struct brep_specific *bs, struct rt_brep_internal *bi, struct bn_vlblock *vbp, int index, int plottype, int num_points=-1)
 
int brep_facetrim_plot (struct bu_vls *vls, struct brep_specific *bs, struct rt_brep_internal *, struct bn_vlblock *vbp, int index, int plotres, bool dim3d)
 
int brep_trim_direction_plot (struct bu_vls *vls, struct brep_specific *bs, struct rt_brep_internal *, struct bn_vlblock *vbp, int index, int plotres)
 
int brep_surface_uv_plot (struct bu_vls *vls, struct brep_specific *bs, struct rt_brep_internal *, struct bn_vlblock *vbp, int index, double u, double v)
 
int brep_surface_uv_plot (struct bu_vls *vls, struct brep_specific *bs, struct rt_brep_internal *, struct bn_vlblock *vbp, int index, ON_Interval &U, ON_Interval &V)
 
int brep_surface_plot (struct bu_vls *vls, struct brep_specific *bs, struct rt_brep_internal *, struct bn_vlblock *vbp, int index, int plotres)
 
int brep_surface_normal_plot (struct bu_vls *vls, struct brep_specific *bs, struct rt_brep_internal *, struct bn_vlblock *vbp, int index, int plotres)
 
int brep_surface_knot_plot (struct bu_vls *vls, struct brep_specific *bs, struct rt_brep_internal *, struct bn_vlblock *vbp, int index, bool dim3d)
 
int brep_edge3d_plot (struct bu_vls *vls, struct brep_specific *bs, struct rt_brep_internal *, struct bn_vlblock *vbp, int index, int plotres)
 
int brep_trim_plot (struct bu_vls *vls, struct brep_specific *bs, struct rt_brep_internal *, struct bn_vlblock *vbp, int index, int plotres, bool dim3d)
 
int brep_loop_plot (struct bu_vls *vls, struct brep_specific *bs, struct rt_brep_internal *, struct bn_vlblock *vbp, int index, int plotres, bool dim3d)
 
int brep_surface_cv_plot (struct bu_vls *vls, struct brep_specific *bs, struct rt_brep_internal *, struct bn_vlblock *vbp, int index)
 
void plotFace (SurfaceTree *st, struct bn_vlblock *vbp, int isocurveres, int gridres)
 
void drawisoUCheckForTrim (SurfaceTree *st, struct bn_vlblock *vbp, fastf_t from, fastf_t to, fastf_t v, int curveres)
 
void drawisoVCheckForTrim (SurfaceTree *st, struct bn_vlblock *vbp, fastf_t from, fastf_t to, fastf_t u, int curveres)
 
void drawisoU (SurfaceTree *st, struct bn_vlblock *vbp, fastf_t from, fastf_t to, fastf_t v, int curveres)
 
void drawisoV (SurfaceTree *st, struct bn_vlblock *vbp, fastf_t from, fastf_t to, fastf_t u, int curveres)
 
void drawBBNode (SurfaceTree *st, struct bn_vlblock *vbp, BBNode *node)
 
void plotFaceFromSurfaceTree (SurfaceTree *st, struct bn_vlblock *vbp, int isocurveres, int gridres)
 
int brep_isosurface_plot (struct bu_vls *vls, struct brep_specific *bs, struct rt_brep_internal *, struct bn_vlblock *vbp, int index, int plotres)
 
int brep_surfaceleafs_plot (struct bu_vls *vls, struct brep_specific *bs, struct rt_brep_internal *, struct bn_vlblock *vbp, bool dim3d, int index, int)
 
int brep_trimleafs_plot (struct bu_vls *vls, struct brep_specific *bs, struct rt_brep_internal *, struct bn_vlblock *vbp, bool dim3d, int index, int)
 
void info_usage (struct bu_vls *vls)
 
void plot_usage (struct bu_vls *vls)
 
int brep_conversion_tree (const struct db_i *dbip, const union tree *oldtree, union tree *newtree, const char *suffix, struct rt_wdb *wdbp, fastf_t local2mm)
 
int brep_translate_scv (ON_Brep *brep, int surface_index, int i, int j, fastf_t dx, fastf_t dy, fastf_t dz)
 
int translate_command (struct bu_vls *result, struct brep_specific *bs, int argc, const char *argv[])
 
void plottrim (ON_BrepFace &face, struct bn_vlblock *vbp)
 
 RT_MemoryArchive ()
 
 RT_MemoryArchive (void *memory, size_t len)
 
virtual ~RT_MemoryArchive ()
 
size_t CurrentPosition () const
 
bool SeekFromCurrentPosition (int)
 
bool SeekFromStart (size_t)
 
bool AtEnd () const
 
size_t Size () const
 
uint8_t * CreateCopy () const
 
size_t Read (size_t, void *)
 
size_t Write (size_t, const void *)
 
bool Flush ()
 

Detailed Description

Macro Definition Documentation

#define BN_VMATH_PREFIX_INDICES   1

Definition at line 68 of file brep.cpp.

#define ROOT_TOL   1.E-7

Definition at line 69 of file brep.cpp.

Referenced by utah_newton_solver().

#define MAX_BREP_SUBDIVISION_INTERSECTS   5

Definition at line 1043 of file brep.cpp.

Referenced by utah_brep_intersect().

#define ARB_FACE (   valp,
  a,
  b,
  c,
 
)
Value:
#define RT_ADD_VLIST(hd, pnt, draw)
Definition: raytrace.h:1865
#define BN_VLIST_LINE_MOVE
Definition: vlist.h:82
#define BN_VLIST_LINE_DRAW
Definition: vlist.h:83

Definition at line 105 of file brep_debug.cpp.

#define BB_PLOT_VLIST (   min,
  max 
)
Value:
{ \
fastf_t pt[8][3]; \
VSET(pt[0], max[X], min[Y], min[Z]); \
VSET(pt[1], max[X], max[Y], min[Z]); \
VSET(pt[2], max[X], max[Y], max[Z]); \
VSET(pt[3], max[X], min[Y], max[Z]); \
VSET(pt[4], min[X], min[Y], min[Z]); \
VSET(pt[5], min[X], max[Y], min[Z]); \
VSET(pt[6], min[X], max[Y], max[Z]); \
VSET(pt[7], min[X], min[Y], max[Z]); \
ARB_FACE(pt, 0, 1, 2, 3); \
ARB_FACE(pt, 4, 0, 3, 7); \
ARB_FACE(pt, 5, 4, 7, 6); \
ARB_FACE(pt, 1, 5, 6, 2); \
}
#define VSET(a, b, c, d)
Definition: color.c:53
Definition: color.c:49
#define ARB_FACE(valp, a, b, c, d)
Definition: brep_debug.cpp:105
Definition: color.c:51
double fastf_t
Definition: defines.h:300
Definition: color.c:50

Definition at line 111 of file brep_debug.cpp.

Referenced by plotsurfaceleafs(), and plottrimleafs().

#define fastf_t   double

Definition at line 48 of file brep_debug.h.

#define BLUEVIOLET   138, 43, 226

Definition at line 62 of file brep_debug.h.

#define CADETBLUE   95, 159, 159

Definition at line 63 of file brep_debug.h.

#define CORNFLOWERBLUE   66, 66, 111

Definition at line 64 of file brep_debug.h.

#define LIGHTBLUE   173, 216, 230

Definition at line 65 of file brep_debug.h.

#define DARKGREEN   0, 100, 0

Definition at line 66 of file brep_debug.h.

Referenced by split_trims_hv_tangent().

#define KHAKI   189, 183, 107

Definition at line 67 of file brep_debug.h.

#define FORESTGREEN   34, 139, 34

Definition at line 68 of file brep_debug.h.

#define LIMEGREEN   124, 252, 0

Definition at line 69 of file brep_debug.h.

#define PALEGREEN   152, 251, 152

Definition at line 70 of file brep_debug.h.

#define DARKORANGE   255, 140, 0

Definition at line 71 of file brep_debug.h.

Referenced by split_trims_hv_tangent().

#define DARKSALMON   233, 150, 122

Definition at line 72 of file brep_debug.h.

#define LIGHTCORAL   240, 128, 128

Definition at line 73 of file brep_debug.h.

#define PEACH   255, 218, 185

Definition at line 74 of file brep_debug.h.

Referenced by brep_intersect_surface_surface(), and plotFace().

#define DEEPPINK   255, 20, 147

Definition at line 75 of file brep_debug.h.

#define HOTPINK   255, 105, 180

Definition at line 76 of file brep_debug.h.

#define INDIANRED   205, 92, 92

Definition at line 77 of file brep_debug.h.

#define DARKVIOLET   148, 0, 211

Definition at line 78 of file brep_debug.h.

Referenced by brep_intersect_surface_surface().

#define MAROON   139, 28, 98

Definition at line 79 of file brep_debug.h.

#define GOLDENROD   218, 165, 32

Definition at line 80 of file brep_debug.h.

#define DARKGOLDENROD   184, 134, 11

Definition at line 81 of file brep_debug.h.

#define LIGHTGOLDENROD   238, 221, 130

Definition at line 82 of file brep_debug.h.

#define DARKYELLOW   155, 155, 52

Definition at line 83 of file brep_debug.h.

#define LIGHTYELLOW   255, 255, 224

Definition at line 84 of file brep_debug.h.

#define PURERED   255, 0, 0
#define BLUE   0, 0, 255

Definition at line 87 of file brep_debug.h.

Referenced by brep_intersect_surface_surface(), plotsurfaceleafs(), and plottrimleafs().

#define MAGENTA   255, 0, 255

Definition at line 89 of file brep_debug.h.

Referenced by plotsurfaceleafs(), plottrimleafs(), and split_trims_hv_tangent().

#define CYAN   0, 255, 255

Definition at line 90 of file brep_debug.h.

#define BLACK   0, 0, 0

Definition at line 91 of file brep_debug.h.

#define WHITE   255, 255, 255

Definition at line 92 of file brep_debug.h.

#define M_COLOR_PLOT (   c)    pl_color(brep_plot_file(), c)

Definition at line 96 of file brep_debug.h.

Referenced by plotleaf3d(), and split_trims_hv_tangent().

#define COLOR_PLOT (   r,
  g,
 
)    pl_color(brep_plot_file(), (r), (g), (b))

Definition at line 97 of file brep_debug.h.

Referenced by plotleaf3d(), plotleafuv(), and plotsurfaceleafs().

#define M_PT_PLOT (   p)
Value:
{ \
point_t pp, ppp; \
vect_t grow; \
VSETALL(grow, 0.01); \
VADD2(pp, p, grow); \
VSUB2(ppp, p, grow); \
pdv_3box(brep_plot_file(), pp, ppp); \
}
#define VSETALL(a, s)
Definition: color.c:54
FILE * brep_plot_file(const char *pname)
Definition: brep_debug.cpp:84
void pdv_3box(register FILE *plotfp, const fastf_t *a, const fastf_t *b)
Definition: plot3.c:688

Definition at line 98 of file brep_debug.h.

#define PT_PLOT (   p)
Value:
{ \
point_t pp; \
VSCALE(pp, p, 1.001); \
}
FILE * brep_plot_file(const char *pname)
Definition: brep_debug.cpp:84
void pdv_3box(register FILE *plotfp, const fastf_t *a, const fastf_t *b)
Definition: plot3.c:688

Definition at line 106 of file brep_debug.h.

#define LINE_PLOT (   p1,
  p2 
)    pdv_3move(brep_plot_file(), p1); pdv_3line(brep_plot_file(), p1, p2)

Definition at line 111 of file brep_debug.h.

Referenced by plotleaf3d(), and plottrim().

#define BB_PLOT (   p1,
  p2 
)    pdv_3box(brep_plot_file(), p1, p2)

Definition at line 112 of file brep_debug.h.

Referenced by plotleaf3d(), plotleafuv(), and plotsurfaceleafs().

Typedef Documentation

typedef std::list<brep_hit> HitList

Definition at line 619 of file brep.cpp.

typedef std::pair<int, int> ip_t

Definition at line 1141 of file brep.cpp.

typedef std::list<ip_t> MissList

Definition at line 1142 of file brep.cpp.

Enumeration Type Documentation

enum hit_type
Enumerator
CLEAN_HIT 
CLEAN_MISS 
NEAR_HIT 
NEAR_MISS 
CRACK_HIT 

Definition at line 530 of file brep.cpp.

enum hit_direction
Enumerator
ENTERING 
LEAVING 

Definition at line 537 of file brep.cpp.

Enumerator
BREP_INTERSECT_RIGHT_OF_EDGE 
BREP_INTERSECT_MISSED_EDGE 
BREP_INTERSECT_ROOT_ITERATION_LIMIT 
BREP_INTERSECT_ROOT_DIVERGED 
BREP_INTERSECT_OOB 
BREP_INTERSECT_TRIMMED 
BREP_INTERSECT_FOUND 

Definition at line 622 of file brep.cpp.

Function Documentation

int rt_brep_bbox ( struct rt_db_internal ip,
point_t *  min,
point_t *  max 
)

Calculate a bounding RPP around a BREP. Unlike the prep routine, which makes use of the full bounding volume hierarchy, this routine just calls the openNURBS function.

Definition at line 429 of file brep.cpp.

References rt_db_internal::idb_ptr, and RT_CK_DB_INTERNAL.

int rt_brep_prep ( struct soltab stp,
struct rt_db_internal ip,
struct rt_i rtip 
)

Given a pointer of a GED database record, and a transformation matrix, determine if this is a valid NURB, and if so, prepare the surface so the intersections will work.

Definition at line 453 of file brep.cpp.

References brep_specific::brep, brep_build_bvh(), BU_ALLOC, bu_gettime(), bu_log(), brep_specific::bvh, bn_tol::dist, rt_db_internal::idb_ptr, RT_CK_DB_INTERNAL, rt_i::rti_tol, SMALL_FASTF, soltab::st_aradius, soltab::st_bradius, soltab::st_center, soltab::st_max, soltab::st_min, soltab::st_specific, VSETALL, X, Y, and Z.

Referenced by rt_nurb_prep().

Here is the call graph for this function:

void rt_brep_print ( register const struct soltab stp)
int rt_brep_shot ( struct soltab stp,
register struct xray rp,
struct application ap,
struct seg seghead 
)
void rt_brep_norm ( register struct hit hitp,
struct soltab stp,
register struct xray rp 
)
void rt_brep_curve ( register struct curvature cvp,
register struct hit hitp,
struct soltab stp 
)
int rt_brep_class ( const struct soltab stp,
const fastf_t min,
const fastf_t max,
const struct bn_tol tol 
)

Definition at line 1677 of file brep.cpp.

References BN_CK_TOL, and RT_CK_SOLTAB.

void rt_brep_uv ( struct application ap,
struct soltab stp,
register struct hit hitp,
register struct uvcoord uvp 
)

For a hit on the surface of an nurb, return the (u, v) coordinates of the hit point, 0 <= u, v <= 1 u = azimuth v = elevation

Definition at line 1695 of file brep.cpp.

References hit::hit_vpriv, if(), RT_CK_APPLICATION, RT_CK_SOLTAB, soltab::st_specific, uvcoord::uv_u, and uvcoord::uv_v.

Referenced by rt_nurb_uv().

Here is the call graph for this function:

void rt_brep_free ( register struct soltab stp)

Definition at line 1713 of file brep.cpp.

References brep_specific_delete(), if(), RT_CK_SOLTAB, and soltab::st_specific.

Referenced by rt_nurb_free().

Here is the call graph for this function:

int rt_brep_adaptive_plot ( struct rt_db_internal ip,
const struct rt_view_info info 
)

Definition at line 4123 of file brep.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, BU_CK_LIST_HEAD, rt_db_internal::idb_ptr, plot_face_from_surface_tree(), rt_view_info::point_spacing, RT_ADD_VLIST, RT_CK_DB_INTERNAL, st, and rt_view_info::vhead.

Here is the call graph for this function:

int rt_brep_plot ( struct bu_list vhead,
struct rt_db_internal ip,
const struct rt_tess_tol ttol,
const struct bn_tol tol,
const struct rt_view_info info 
)

There are several ways to visualize NURBS surfaces, depending on the purpose. For "normal" wireframe viewing, the ideal approach is to do a tessellation of the NURBS surface and show that wireframe. The quicker and simpler approach is to visualize the edges, although that can sometimes generate less than ideal/useful results (for example, a revolved edge that forms a sphere will have a wireframe consisting of a 2D arc in MGED when only edges are used.) A third approach is to walk the uv space for each surface, find 3space points at uv intervals, and draw lines between the results - this is slightly more comprehensive when it comes to showing where surfaces are in 3space but looks blocky and crude. For now, edge-only wireframes are the default.

Definition at line 4245 of file brep.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, BU_CK_LIST_HEAD, bu_log(), bn_tol::dist, find_next_point(), rt_db_internal::idb_ptr, plot_face_from_surface_tree(), RT_ADD_VLIST, RT_CK_DB_INTERNAL, st, and ZERO.

Referenced by rt_nurb_plot().

Here is the call graph for this function:

int rt_brep_tess ( struct nmgregion **  r,
struct model *  m,
struct rt_db_internal ip,
const struct rt_tess_tol ttol,
const struct bn_tol tol 
)

Definition at line 4472 of file brep.cpp.

References rt_db_internal::idb_ptr, and RT_CK_DB_INTERNAL.

int rt_brep_get ( struct bu_vls logstr,
const struct rt_db_internal intern,
const char *  attr 
)

Definition at line 4633 of file brep.cpp.

References bu_b64_encode_block(), bu_free(), bu_vls_printf(), bu_vls_sprintf(), RT_MemoryArchive::CreateCopy(), rt_db_internal::idb_ptr, and RT_MemoryArchive::Size().

Here is the call graph for this function:

int rt_brep_adjust ( struct bu_vls logstr,
const struct rt_db_internal intern,
int  argc,
const char **  argv 
)

Definition at line 4673 of file brep.cpp.

References bu_b64_decode(), bu_vls_printf(), rt_db_internal::idb_ptr, and if().

Here is the call graph for this function:

int rt_brep_export5 ( struct bu_external ep,
const struct rt_db_internal ip,
double  local2mm,
const struct db_i dbip 
)

Definition at line 4695 of file brep.cpp.

References BU_EXTERNAL_INIT, RT_MemoryArchive::CreateCopy(), bu_external::ext_buf, bu_external::ext_nbytes, ID_BREP, rt_db_internal::idb_ptr, RT_CK_DB_INTERNAL, RT_CK_DBI, and RT_MemoryArchive::Size().

Here is the call graph for this function:

int rt_brep_import5 ( struct rt_db_internal ip,
const struct bu_external ep,
register const fastf_t mat,
const struct db_i dbip 
)
void rt_brep_ifree ( struct rt_db_internal ip)

Definition at line 4786 of file brep.cpp.

References bu_free(), rt_db_internal::idb_ptr, and RT_CK_DB_INTERNAL.

Here is the call graph for this function:

int rt_brep_describe ( struct bu_vls str,
const struct rt_db_internal ip,
int  verbose,
double  mm2local 
)

Definition at line 4803 of file brep.cpp.

References BU_CK_VLS, bu_vls_strcat(), rt_db_internal::idb_ptr, and RT_CK_DB_INTERNAL.

Here is the call graph for this function:

int rt_brep_tclget ( Tcl_Interp *  interp,
const struct rt_db_internal intern,
const char *  attr 
)

Definition at line 4838 of file brep.cpp.

int rt_brep_tcladjust ( Tcl_Interp *  interp,
struct rt_db_internal intern,
int  argc,
const char **  argv 
)

Definition at line 4845 of file brep.cpp.

int rt_brep_params ( struct pc_pc_set ,
const struct rt_db_internal ip 
)

Definition at line 4852 of file brep.cpp.

int rt_brep_boolean ( struct rt_db_internal out,
const struct rt_db_internal ip1,
const struct rt_db_internal ip2,
db_op_t  operation 
)

Definition at line 4859 of file brep.cpp.

References BU_ALLOC, DB_OP_INTERSECT, DB_OP_SUBTRACT, DB_OP_UNION, ID_BREP, rt_db_internal::idb_major_type, rt_db_internal::idb_meth, rt_db_internal::idb_minor_type, rt_db_internal::idb_ptr, OBJ, ON_Boolean(), RT_BREP_INTERNAL_MAGIC, RT_CK_DB_INTERNAL, and RT_DB_INTERNAL_INIT.

Referenced by ged_brep().

Here is the call graph for this function:

struct rt_selection_set * rt_brep_find_selections ( const struct rt_db_internal ip,
const struct rt_selection_query query 
)
int rt_brep_process_selection ( struct rt_db_internal ip,
const struct rt_selection selection,
const struct rt_selection_operation op 
)
ON_Ray toXRay ( struct xray rp)

Definition at line 117 of file brep.cpp.

References xray::r_dir, and xray::r_pt.

Referenced by rt_brep_shot().

struct brep_specific* brep_specific_new ( )

Definition at line 128 of file brep.cpp.

References bu_calloc().

Here is the call graph for this function:

void brep_specific_delete ( struct brep_specific bs)

Definition at line 135 of file brep.cpp.

References bu_free(), and brep_specific::bvh.

Referenced by rt_brep_free().

Here is the call graph for this function:

bool brep_pt_trimmed ( pt2d_t  pt,
const ON_BrepFace &  face 
)

Definition at line 148 of file brep.cpp.

double getVerticalTangent ( const ON_Curve *  curve,
double  min,
double  max 
)

Definition at line 194 of file brep.cpp.

References NEAR_ZERO, and X.

Referenced by split_trims_hv_tangent().

double getHorizontalTangent ( const ON_Curve *  curve,
double  min,
double  max 
)

Definition at line 219 of file brep.cpp.

References NEAR_ZERO, and Y.

Referenced by split_trims_hv_tangent().

bool split_trims_hv_tangent ( const ON_Curve *  curve,
ON_Interval &  t,
std::list< double > &  list 
)

Definition at line 244 of file brep.cpp.

References DARKGREEN, DARKORANGE, getHorizontalTangent(), getVerticalTangent(), M_COLOR_PLOT, MAGENTA, plottrim(), X, and Y.

Here is the call graph for this function:

int brep_build_bvh ( struct brep_specific bs)

Definition at line 357 of file brep.cpp.

References brep_specific::brep, brep_build_bvh_parallel::bs, bu_calloc(), bu_free(), bu_gettime(), bu_log(), bu_parallel(), brep_specific::bvh, and brep_build_bvh_parallel::faces.

Referenced by rt_brep_prep().

Here is the call graph for this function:

void rt_brep_print ( const struct soltab stp)

Definition at line 509 of file brep.cpp.

References if(), RT_CK_SOLTAB, and soltab::st_specific.

Here is the call graph for this function:

HIDDEN const char* BREP_INTERSECT_REASON ( brep_intersect_reason_t  index)

Definition at line 634 of file brep.cpp.

void utah_F ( const ON_3dPoint &  S,
const ON_3dVector &  p1,
const double  p1d,
const ON_3dVector &  p2,
const double  p2d,
double &  f1,
double &  f2 
)

Definition at line 652 of file brep.cpp.

Referenced by utah_newton_solver().

void utah_Fu ( const ON_3dVector &  Su,
const ON_3dVector &  p1,
const ON_3dVector &  p2,
double &  d0,
double &  d1 
)

Definition at line 660 of file brep.cpp.

Referenced by utah_newton_solver().

void utah_Fv ( const ON_3dVector &  Sv,
const ON_3dVector &  p1,
const ON_3dVector &  p2,
double &  d0,
double &  d1 
)

Definition at line 668 of file brep.cpp.

Referenced by utah_newton_solver().

double utah_calc_t ( const ON_Ray &  r,
ON_3dPoint &  S 
)

Definition at line 676 of file brep.cpp.

Referenced by utah_newton_solver().

void utah_pushBack ( const ON_Surface *  surf,
ON_2dPoint &  uv 
)

Definition at line 686 of file brep.cpp.

Referenced by utah_newton_solver().

void utah_pushBack ( const BBNode *  sbv,
ON_2dPoint &  uv 
)

Definition at line 718 of file brep.cpp.

int utah_newton_solver ( const BBNode *  sbv,
const ON_Surface *  surf,
const ON_Ray &  r,
ON_2dPoint *  ouv,
double *  t,
ON_3dVector *  N,
bool &  converged,
ON_2dPoint *  suv,
const int  count,
const int  iu,
const int  iv 
)

Definition at line 742 of file brep.cpp.

References BREP_INTERSECTION_ROOT_EPSILON, BREP_MAX_ITERATIONS, drand48(), NEAR_ZERO, ROOT_TOL, utah_calc_t(), utah_F(), utah_Fu(), utah_Fv(), utah_pushBack(), and utah_ray_planes().

Referenced by utah_newton_4corner_solver().

Here is the call graph for this function:

int utah_newton_4corner_solver ( const BBNode *  sbv,
const ON_Surface *  surf,
const ON_Ray &  r,
ON_2dPoint *  ouv,
double *  t,
ON_3dVector *  N,
bool &  converged,
int  docorners 
)

Definition at line 904 of file brep.cpp.

References utah_newton_solver().

Referenced by utah_brep_intersect().

Here is the call graph for this function:

bool utah_isTrimmed ( ON_2dPoint  uv,
const ON_BrepFace *  face 
)

Definition at line 928 of file brep.cpp.

int utah_brep_intersect ( const BBNode *  sbv,
const ON_BrepFace *  face,
const ON_Surface *  surf,
pt2d_t &  uv,
ON_Ray &  ray,
HitList hits 
)

Definition at line 1045 of file brep.cpp.

References BREP_INTERSECT_FOUND, BREP_INTERSECT_ROOT_DIVERGED, brep_hit::CLEAN_HIT, brep_hit::closeToEdge, brep_hit::direction, brep_hit::ENTERING, brep_hit::hit, brep_hit::LEAVING, brep_hit::m_adj_face_index, MAX_BREP_SUBDIVISION_INTERSECTS, N, brep_hit::NEAR_HIT, brep_hit::NEAR_MISS, brep_hit::sbv, brep_hit::trimmed, and utah_newton_4corner_solver().

Referenced by rt_brep_shot().

Here is the call graph for this function:

HIDDEN int sign ( double  val)
bool containsNearMiss ( HitList hits)

Definition at line 1152 of file brep.cpp.

References brep_hit::hit, brep_hit::NEAR_MISS, and out.

Referenced by rt_brep_shot().

bool containsNearHit ( HitList hits)

Definition at line 1165 of file brep.cpp.

References brep_hit::hit, brep_hit::NEAR_HIT, and out.

Referenced by rt_brep_shot().

void rt_brep_norm ( struct hit hitp,
struct soltab stp,
struct xray rp 
)

Given ONE ray distance, return the normal and entry/exit point.

Definition at line 1642 of file brep.cpp.

References if(), RT_CK_SOLTAB, and soltab::st_specific.

Here is the call graph for this function:

void rt_brep_curve ( struct curvature cvp,
struct hit hitp,
struct soltab stp 
)

Return the curvature of the nurb.

Definition at line 1661 of file brep.cpp.

References if(), RT_CK_SOLTAB, and soltab::st_specific.

Here is the call graph for this function:

void plot_bbnode ( BBNode *  node,
struct bu_list vhead,
int  depth,
int  start,
int  limit 
)

Given surface tree bounding box information, plot the bounding box as a wireframe in mged.

Definition at line 1735 of file brep.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, BU_CK_LIST_HEAD, and RT_ADD_VLIST.

double find_next_point ( const ON_Curve *  crv,
double  startdomval,
double  increment,
double  tolerance,
int  stepcount 
)

Definition at line 1772 of file brep.cpp.

Referenced by rt_brep_plot().

double find_next_trimming_point ( const ON_Curve *  crv,
const ON_Surface *  s,
double  startdomval,
double  increment,
double  tolerance,
int  stepcount 
)

Definition at line 1791 of file brep.cpp.

bool near_equal ( double  first,
double  second 
)
void plot_sum_surface ( struct bu_list vhead,
const ON_Surface *  surf,
int  isocurveres,
int  gridres 
)
void plotisoUCheckForTrim ( struct bu_list vhead,
SurfaceTree *  st,
fastf_t  from,
fastf_t  to,
fastf_t  v 
)

Definition at line 1875 of file brep.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, near_equal(), RT_ADD_VLIST, OSL::Strings::u, OSL::Strings::v, and Y.

Referenced by plot_BBNode().

Here is the call graph for this function:

void plotisoVCheckForTrim ( struct bu_list vhead,
SurfaceTree *  st,
fastf_t  from,
fastf_t  to,
fastf_t  u 
)

Definition at line 1970 of file brep.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, near_equal(), RT_ADD_VLIST, OSL::Strings::u, OSL::Strings::v, and X.

Referenced by plot_BBNode().

Here is the call graph for this function:

void plotisoU ( struct bu_list vhead,
SurfaceTree *  st,
fastf_t  from,
fastf_t  to,
fastf_t  v,
int  curveres 
)

Definition at line 2059 of file brep.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, RT_ADD_VLIST, and OSL::Strings::u.

Referenced by plot_BBNode().

void plotisoV ( struct bu_list vhead,
SurfaceTree *  st,
fastf_t  from,
fastf_t  to,
fastf_t  u,
int  curveres 
)

Definition at line 2084 of file brep.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, RT_ADD_VLIST, and OSL::Strings::v.

Referenced by plot_BBNode().

void plot_BBNode ( struct bu_list vhead,
SurfaceTree *  st,
BBNode *  node,
int  isocurveres,
int  gridres 
)

Definition at line 2109 of file brep.cpp.

References plotisoU(), plotisoUCheckForTrim(), plotisoV(), plotisoVCheckForTrim(), OSL::Strings::u, and OSL::Strings::v.

Referenced by plot_face_from_surface_tree().

Here is the call graph for this function:

void plot_face_from_surface_tree ( struct bu_list vhead,
SurfaceTree *  st,
int  isocurveres,
int  gridres 
)

Definition at line 2156 of file brep.cpp.

References plot_BBNode().

Referenced by rt_brep_adaptive_plot(), and rt_brep_plot().

Here is the call graph for this function:

void getEdgePoints ( const ON_BrepTrim &  trim,
fastf_t  t1,
ON_3dPoint &  start_2d,
ON_3dVector &  start_tang,
ON_3dPoint &  start_3d,
ON_3dVector &  start_norm,
fastf_t  t2,
ON_3dPoint &  end_2d,
ON_3dVector &  end_tang,
ON_3dPoint &  end_3d,
ON_3dVector &  end_norm,
fastf_t  min_dist,
fastf_t  max_dist,
fastf_t  within_dist,
fastf_t  cos_within_ang,
std::map< double, ON_3dPoint * > &  param_points 
)

Definition at line 2164 of file brep.cpp.

References ConsecutivePointsCrossClosedSeam(), FindTrimSeamCrossing(), s, and surface_EvNormal().

Referenced by getEdgePoints(), and rt_brep_plot_poly().

Here is the call graph for this function:

std::map<double, ON_3dPoint *>* getEdgePoints ( ON_BrepTrim &  trim,
fastf_t  max_dist,
const struct rt_tess_tol ttol,
const struct bn_tol tol,
const struct rt_view_info info 
)

Definition at line 2255 of file brep.cpp.

References rt_tess_tol::abs, bn_tol::dist, getEdgePoints(), rt_tess_tol::norm, rt_tess_tol::rel, s, and surface_EvNormal().

Here is the call graph for this function:

void getSurfacePoints ( const ON_Surface *  s,
fastf_t  u1,
fastf_t  u2,
fastf_t  v1,
fastf_t  v2,
fastf_t  min_dist,
fastf_t  within_dist,
fastf_t  cos_within_ang,
ON_2dPointArray &  on_surf_points,
bool  left,
bool  below 
)

Definition at line 2413 of file brep.cpp.

References surface_EvNormal(), OSL::Strings::u, and OSL::Strings::v.

Referenced by getSurfacePoints(), and poly2tri_CDT().

Here is the call graph for this function:

void getSurfacePoints ( ON_BrepFace &  face,
const struct rt_tess_tol ttol,
const struct bn_tol tol,
const struct rt_view_info info,
ON_2dPointArray &  on_surf_points 
)

Definition at line 2621 of file brep.cpp.

References rt_tess_tol::abs, brep_specific::brep, bn_tol::dist, getSurfacePoints(), rt_tess_tol::norm, rt_tess_tol::rel, and s.

Here is the call graph for this function:

void getUVCurveSamples ( const ON_Surface *  s,
const ON_Curve *  curve,
fastf_t  t1,
ON_3dPoint &  start_2d,
ON_3dVector &  start_tang,
ON_3dPoint &  start_3d,
ON_3dVector &  start_norm,
fastf_t  t2,
ON_3dPoint &  end_2d,
ON_3dVector &  end_tang,
ON_3dPoint &  end_3d,
ON_3dVector &  end_norm,
fastf_t  min_dist,
fastf_t  max_dist,
fastf_t  within_dist,
fastf_t  cos_within_ang,
std::map< double, ON_3dPoint * > &  param_points 
)

Definition at line 2833 of file brep.cpp.

References surface_EvNormal().

Referenced by getUVCurveSamples().

Here is the call graph for this function:

std::map<double, ON_3dPoint *>* getUVCurveSamples ( const ON_Surface *  surf,
const ON_Curve *  curve,
fastf_t  max_dist,
const struct rt_tess_tol ttol,
const struct bn_tol tol,
const struct rt_view_info info 
)

Definition at line 2885 of file brep.cpp.

References rt_tess_tol::abs, bn_tol::dist, getUVCurveSamples(), rt_tess_tol::norm, rt_tess_tol::rel, and surface_EvNormal().

Here is the call graph for this function:

int number_of_seam_crossings ( const ON_Surface *  surf,
ON_SimpleArray< BrepTrimPoint > &  brep_trim_points 
)

Definition at line 3003 of file brep.cpp.

References ConsecutivePointsCrossClosedSeam(), and IsAtSeam().

Referenced by LoopStraddlesDomain().

Here is the call graph for this function:

bool LoopStraddlesDomain ( const ON_Surface *  surf,
ON_SimpleArray< BrepTrimPoint > &  brep_loop_points 
)

Definition at line 3026 of file brep.cpp.

References number_of_seam_crossings().

Here is the call graph for this function:

int is_entering ( const ON_Surface *  surf,
const ON_SimpleArray< BrepTrimPoint > &  brep_loop_points 
)

Definition at line 3044 of file brep.cpp.

References IsAtSeam(), and UnwrapUVPoint().

Referenced by shift_loop_straddled_over_seam().

Here is the call graph for this function:

bool shift_loop_straddled_over_seam ( const ON_Surface *  surf,
ON_SimpleArray< BrepTrimPoint > &  brep_loop_points,
double  same_point_tolerance 
)

Definition at line 3078 of file brep.cpp.

References is_entering(), IsAtSeam(), SwapUVSeamPoint(), and UnwrapUVPoint().

Here is the call graph for this function:

bool extend_over_seam_crossings ( const ON_Surface *  surf,
ON_SimpleArray< BrepTrimPoint > &  brep_loop_points 
)

Definition at line 3137 of file brep.cpp.

References delta.

void poly2tri_CDT ( struct bu_list vhead,
ON_BrepFace &  face,
const struct rt_tess_tol ttol,
const struct bn_tol tol,
const struct rt_view_info info,
bool  watertight = false,
int  plottype = 0,
int  num_points = -1.0 
)

Definition at line 3751 of file brep.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, BN_VLIST_POINT_DRAW, BN_VLIST_TRI_DRAW, BN_VLIST_TRI_END, BN_VLIST_TRI_MOVE, BN_VLIST_TRI_START, BN_VLIST_TRI_VERTNORM, bn_tol::dist, getSurfacePoints(), NEAR_ZERO, RT_ADD_VLIST, and surface_EvNormal().

Referenced by brep_facecdt_plot(), and rt_brep_plot_poly().

Here is the call graph for this function:

void plot_face_trim ( struct bu_list vhead,
ON_BrepFace &  face,
int  plotres,
bool  dim3d 
)

Definition at line 4079 of file brep.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, and RT_ADD_VLIST.

int rt_brep_plot_poly ( struct bu_list vhead,
const struct db_full_path pathp,
struct rt_db_internal ip,
const struct rt_tess_tol ttol,
const struct bn_tol tol,
const struct rt_view_info info 
)

Definition at line 4350 of file brep.cpp.

References BU_CK_LIST_HEAD, bu_log(), DB_FULL_PATH_CUR_DIR, getEdgePoints(), rt_db_internal::idb_ptr, poly2tri_CDT(), RT_CK_DB_INTERNAL, and st.

Here is the call graph for this function:

int rt_brep_import5 ( struct rt_db_internal ip,
const struct bu_external ep,
const fastf_t mat,
const struct db_i dbip 
)
bool cmp_cv_startdist ( brep_selectable_cv c1,
brep_selectable_cv c2 
)

Definition at line 4926 of file brep.cpp.

References brep_selectable_cv::sqdist_to_start.

Referenced by rt_brep_find_selections().

int brep_command ( struct bu_vls vls,
const char *  solid_name,
const struct rt_tess_tol ttol,
const struct bn_tol tol,
struct brep_specific bs,
struct rt_brep_internal *  bi,
struct bn_vlblock vbp,
int  argc,
const char *  argv[],
char *  commtag 
)
int single_conversion ( struct rt_db_internal intern,
ON_Brep **  brep,
const struct db_i dbip 
)

Definition at line 2509 of file brep_debug.cpp.

References BN_TOL_DIST, BN_TOL_MAGIC, bn_tol::dist, bn_tol::dist_sq, rt_functab::ft_brep, ID_BREP, ID_COMBINATION, rt_db_internal::idb_meth, rt_db_internal::idb_ptr, bn_tol::magic, bn_tol::para, bn_tol::perp, rt_comb_brep(), and SMALL_FASTF.

Referenced by brep_conversion(), brep_conversion_tree(), and conv_tree().

Here is the call graph for this function:

int brep_conversion ( struct rt_db_internal in,
struct rt_db_internal out,
const struct db_i dbip 
)

Definition at line 2538 of file brep_debug.cpp.

References BU_ALLOC, ID_BREP, rt_db_internal::idb_major_type, rt_db_internal::idb_meth, rt_db_internal::idb_minor_type, rt_db_internal::idb_ptr, OBJ, RT_BREP_INTERNAL_MAGIC, RT_DB_INTERNAL_INIT, and single_conversion().

Referenced by ged_brep().

Here is the call graph for this function:

int brep_conversion_comb ( struct rt_db_internal old_internal,
const char *  name,
const char *  suffix,
struct rt_wdb wdbp,
fastf_t  local2mm 
)

Definition at line 2697 of file brep_debug.cpp.

References brep_conversion_tree(), BU_ALLOC, bu_free(), bu_log(), rt_wdb::dbip, ID_COMBINATION, rt_db_internal::idb_ptr, if(), RT_CK_COMB, RT_CK_TREE, RT_TREE_INIT, rt_comb_internal::tree, and wdb_export().

Referenced by brep_conversion_tree(), and ged_brep().

Here is the call graph for this function:

int brep_intersect_point_point ( struct rt_db_internal intern1,
struct rt_db_internal intern2,
int  i,
int  j 
)

Definition at line 3248 of file brep_debug.cpp.

References bu_log(), rt_db_internal::idb_ptr, ON_Intersect(), and RT_CK_DB_INTERNAL.

Referenced by ged_brep().

Here is the call graph for this function:

int brep_intersect_point_curve ( struct rt_db_internal intern1,
struct rt_db_internal intern2,
int  i,
int  j 
)

Definition at line 3286 of file brep_debug.cpp.

References bu_log(), rt_db_internal::idb_ptr, ON_Intersect(), and RT_CK_DB_INTERNAL.

Referenced by ged_brep().

Here is the call graph for this function:

int brep_intersect_point_surface ( struct rt_db_internal intern1,
struct rt_db_internal intern2,
int  i,
int  j 
)

Definition at line 3324 of file brep_debug.cpp.

References bu_log(), rt_db_internal::idb_ptr, ON_Intersect(), and RT_CK_DB_INTERNAL.

Referenced by ged_brep().

Here is the call graph for this function:

int brep_intersect_curve_curve ( struct rt_db_internal intern1,
struct rt_db_internal intern2,
int  i,
int  j 
)

Definition at line 3362 of file brep_debug.cpp.

References bu_log(), rt_db_internal::idb_ptr, ON_Intersect(), and RT_CK_DB_INTERNAL.

Referenced by ged_brep().

Here is the call graph for this function:

int brep_intersect_curve_surface ( struct rt_db_internal intern1,
struct rt_db_internal intern2,
int  i,
int  j 
)

Definition at line 3400 of file brep_debug.cpp.

References bu_log(), rt_db_internal::idb_ptr, ON_Intersect(), and RT_CK_DB_INTERNAL.

Referenced by ged_brep().

Here is the call graph for this function:

int brep_intersect_surface_surface ( struct rt_db_internal intern1,
struct rt_db_internal intern2,
int  i,
int  j,
struct bn_vlblock vbp 
)

Definition at line 3438 of file brep_debug.cpp.

References BLUE, bu_log(), DARKVIOLET, GREEN, rt_db_internal::idb_ptr, ON_Intersect(), PEACH, plotcurve(), plotcurveonsurface(), plotpoint(), plotsurface(), PURERED, and RT_CK_DB_INTERNAL.

Referenced by ged_brep().

Here is the call graph for this function:

void rt_comb_brep ( ON_Brep **  b,
const struct rt_db_internal ip,
const struct bn_tol tol,
const struct db_i dbip 
)

Definition at line 123 of file comb_brep.cpp.

References conv_tree(), rt_db_internal::idb_ptr, RT_CK_COMB, RT_CK_DB_INTERNAL, RT_CK_DBI, and rt_comb_internal::tree.

Referenced by single_conversion().

Here is the call graph for this function:

FILE * brep_plot_file ( const char *  pname)

Definition at line 84 of file brep_debug.cpp.

References pdv_3space(), and VSET.

Here is the call graph for this function:

void plotsurfaceleafs ( SurfaceTree *  surf)

Definition at line 128 of file brep_debug.cpp.

References BB_PLOT, COLOR_PLOT, and VSET.

Referenced by brep_surfaceleafs_plot().

unsigned int plotsurfaceleafs ( SurfaceTree *  surf,
struct bn_vlblock vbp,
bool  dim3d 
)

Definition at line 171 of file brep_debug.cpp.

References BB_PLOT_VLIST, BLUE, BN_VLIST_LINE_MOVE, MAGENTA, PURERED, RT_ADD_VLIST, rt_vlblock_find(), VSET, and VSETALL.

Here is the call graph for this function:

void plottrimleafs ( SurfaceTree *  st,
struct bn_vlblock vbp,
bool  dim3d 
)

Definition at line 212 of file brep_debug.cpp.

References BB_PLOT_VLIST, BLUE, BN_VLIST_LINE_MOVE, GREEN, MAGENTA, PURERED, RT_ADD_VLIST, rt_vlblock_find(), and VSETALL.

Referenced by brep_trimleafs_plot().

Here is the call graph for this function:

void plotleaf3d ( BBNode *  bb,
double  within_distance_tol 
)
void plotleafuv ( BBNode *  bb)

Definition at line 315 of file brep_debug.cpp.

References BB_PLOT, COLOR_PLOT, and VSET.

void plottrim ( ON_BrepFace &  face,
struct bn_vlblock vbp,
int  plotres,
bool  dim3d 
)

Definition at line 341 of file brep_debug.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, RT_ADD_VLIST, rt_vlblock_find(), and YELLOW.

Referenced by brep_facetrim_plot(), brep_isosurface_plot(), brep_loop_plot(), brep_trim_plot(), and split_trims_hv_tangent().

Here is the call graph for this function:

void plottrim2d ( ON_BrepFace &  face,
struct bn_vlblock vbp,
int  plotres 
)

Definition at line 384 of file brep_debug.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, RT_ADD_VLIST, rt_vlblock_find(), and YELLOW.

Here is the call graph for this function:

void plotUVDomain2d ( ON_BrepFace &  face,
struct bn_vlblock vbp 
)

Definition at line 425 of file brep_debug.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, PURERED, RT_ADD_VLIST, rt_vlblock_find(), VSET, and OSL::Strings::width.

Referenced by brep_facetrim_plot().

Here is the call graph for this function:

void plottrim ( ON_BrepTrim &  trim,
struct bn_vlblock vbp,
int  plotres,
bool  dim3d 
)

Definition at line 484 of file brep_debug.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, RT_ADD_VLIST, rt_vlblock_find(), and YELLOW.

Here is the call graph for this function:

void plottrimdirection ( ON_BrepFace &  face,
struct bn_vlblock vbp,
int  plotres 
)

Definition at line 517 of file brep_debug.cpp.

References A, BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, GREEN, N, RT_ADD_VLIST, and rt_vlblock_find().

Referenced by brep_trim_direction_plot().

Here is the call graph for this function:

void plotsurface ( ON_Surface &  surf,
struct bn_vlblock vbp,
int  isocurveres,
int  gridres,
const int  red = 200,
const int  green = 200,
const int  blue = 200 
)

Definition at line 578 of file brep_debug.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, bu_hsv_to_rgb(), bu_rgb_to_hsv(), OSL::Strings::hsv, RT_ADD_VLIST, rt_vlblock_find(), OSL::Strings::u, OSL::Strings::v, and VSET.

Referenced by brep_intersect_surface_surface(), and brep_surface_plot().

Here is the call graph for this function:

void plotsurfacenormals ( ON_Surface &  surf,
struct bn_vlblock vbp,
int  gridres 
)

Definition at line 634 of file brep_debug.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, GREEN, RT_ADD_VLIST, rt_vlblock_find(), OSL::Strings::u, and OSL::Strings::v.

Referenced by brep_surface_normal_plot().

Here is the call graph for this function:

void plotsurfaceknots ( ON_Surface &  surf,
struct bn_vlblock vbp,
bool  dim3d 
)

Definition at line 662 of file brep_debug.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, BN_VLIST_POINT_DRAW, GREEN, RT_ADD_VLIST, rt_vlblock_find(), OSL::Strings::u, OSL::Strings::v, VSET, and OSL::Strings::width.

Referenced by brep_surface_knot_plot(), and brep_surface_normal_plot().

Here is the call graph for this function:

void plotcurve ( ON_Curve &  curve,
struct bn_vlblock vbp,
int  plotres,
const int  red = 255,
const int  green = 255,
const int  blue = 0 
)

Definition at line 717 of file brep_debug.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, RT_ADD_VLIST, and rt_vlblock_find().

Referenced by brep_edge3d_plot(), and brep_intersect_surface_surface().

Here is the call graph for this function:

void plotpoint ( const ON_3dPoint &  point,
struct bn_vlblock vbp,
const int  red = 255,
const int  green = 255,
const int  blue = 0 
)

Definition at line 765 of file brep_debug.cpp.

References BN_VLIST_POINT_DRAW, BN_VLIST_POINT_SIZE, RT_ADD_VLIST, and rt_vlblock_find().

Referenced by brep_intersect_surface_surface(), and brep_surface_uv_plot().

Here is the call graph for this function:

void plotcurveonsurface ( ON_Curve *  curve,
ON_Surface *  surface,
struct bn_vlblock vbp,
int  plotres,
const int  red = 255,
const int  green = 255,
const int  blue = 0 
)

Definition at line 776 of file brep_debug.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, RT_ADD_VLIST, and rt_vlblock_find().

Referenced by brep_intersect_surface_surface().

Here is the call graph for this function:

void plottrim ( const ON_Curve &  curve,
double  from,
double  to 
)

Definition at line 807 of file brep_debug.cpp.

References LINE_PLOT.

void plottrim ( ON_Curve &  curve)

Definition at line 823 of file brep_debug.cpp.

References LINE_PLOT.

int brep_info ( struct brep_specific bs,
struct bu_vls vls 
)

Definition at line 840 of file brep_debug.cpp.

References brep_specific::brep, and bu_vls_printf().

Referenced by brep_command().

Here is the call graph for this function:

int brep_surface_info ( struct brep_specific bs,
struct bu_vls vls,
int  si 
)

Definition at line 857 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), bu_vls_printf(), bu_vls_strcat(), and s.

Referenced by brep_command().

Here is the call graph for this function:

int brep_surface_bezier_info ( struct brep_specific bs,
struct bu_vls vls,
int  si 
)

Definition at line 901 of file brep_debug.cpp.

References bezier(), brep_specific::brep, bu_log(), bu_vls_printf(), bu_vls_strcat(), and s.

Referenced by brep_command().

Here is the call graph for this function:

int brep_face_info ( struct brep_specific bs,
struct bu_vls vls,
int  fi 
)

Definition at line 968 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), bu_vls_printf(), and s.

Referenced by brep_command().

Here is the call graph for this function:

int brep_trim_info ( struct brep_specific bs,
struct bu_vls vls,
int  ti 
)

Definition at line 1112 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), and bu_vls_printf().

Referenced by brep_command().

Here is the call graph for this function:

int brep_trim_bezier_info ( struct brep_specific bs,
struct bu_vls vls,
int  ti 
)

Definition at line 1213 of file brep_debug.cpp.

References bezier(), brep_specific::brep, bu_log(), and bu_vls_printf().

Referenced by brep_command().

Here is the call graph for this function:

int brep_curve_info ( struct brep_specific bs,
struct bu_vls vls,
int  ci 
)

Definition at line 1257 of file brep_debug.cpp.

References brep_specific::brep, and bu_vls_printf().

Referenced by brep_command().

Here is the call graph for this function:

int brep_loop_info ( struct brep_specific bs,
struct bu_vls vls,
int  li 
)

Definition at line 1280 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), and bu_vls_printf().

Referenced by brep_command().

Here is the call graph for this function:

int brep_edge_info ( struct brep_specific bs,
struct bu_vls vls,
int  ei 
)

Definition at line 1309 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), and bu_vls_printf().

Referenced by brep_command().

Here is the call graph for this function:

int brep_facecdt_plot ( struct bu_vls vls,
const char *  solid_name,
const struct rt_tess_tol ttol,
const struct bn_tol tol,
struct brep_specific bs,
struct rt_brep_internal *  bi,
struct bn_vlblock vbp,
int  index,
int  plottype,
int  num_points = -1 
)

Definition at line 1354 of file brep_debug.cpp.

References brep_specific::brep, bu_vls_printf(), bu_vls_strcat(), poly2tri_CDT(), rt_vlblock_find(), s, and YELLOW.

Referenced by brep_command().

Here is the call graph for this function:

int brep_facetrim_plot ( struct bu_vls vls,
struct brep_specific bs,
struct rt_brep_internal *  ,
struct bn_vlblock vbp,
int  index,
int  plotres,
bool  dim3d 
)

Definition at line 1415 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), bu_vls_printf(), plottrim(), and plotUVDomain2d().

Referenced by brep_command().

Here is the call graph for this function:

int brep_trim_direction_plot ( struct bu_vls vls,
struct brep_specific bs,
struct rt_brep_internal *  ,
struct bn_vlblock vbp,
int  index,
int  plotres 
)

Definition at line 1452 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), bu_vls_printf(), and plottrimdirection().

Referenced by brep_command().

Here is the call graph for this function:

int brep_surface_uv_plot ( struct bu_vls vls,
struct brep_specific bs,
struct rt_brep_internal *  ,
struct bn_vlblock vbp,
int  index,
double  u,
double  v 
)

Definition at line 1485 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), bu_vls_printf(), GREEN, and plotpoint().

Referenced by brep_command().

Here is the call graph for this function:

int brep_surface_uv_plot ( struct bu_vls vls,
struct brep_specific bs,
struct rt_brep_internal *  ,
struct bn_vlblock vbp,
int  index,
ON_Interval &  U,
ON_Interval &  V 
)

Definition at line 1516 of file brep_debug.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, brep_specific::brep, bu_log(), bu_vls_printf(), delta, RT_ADD_VLIST, rt_vlblock_find(), OSL::Strings::u, OSL::Strings::v, and YELLOW.

Here is the call graph for this function:

int brep_surface_plot ( struct bu_vls vls,
struct brep_specific bs,
struct rt_brep_internal *  ,
struct bn_vlblock vbp,
int  index,
int  plotres 
)

Definition at line 1580 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), bu_vls_printf(), and plotsurface().

Referenced by brep_command().

Here is the call graph for this function:

int brep_surface_normal_plot ( struct bu_vls vls,
struct brep_specific bs,
struct rt_brep_internal *  ,
struct bn_vlblock vbp,
int  index,
int  plotres 
)

Definition at line 1611 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), bu_vls_printf(), plotsurfaceknots(), and plotsurfacenormals().

Referenced by brep_command().

Here is the call graph for this function:

int brep_surface_knot_plot ( struct bu_vls vls,
struct brep_specific bs,
struct rt_brep_internal *  ,
struct bn_vlblock vbp,
int  index,
bool  dim3d 
)

Definition at line 1643 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), bu_vls_printf(), and plotsurfaceknots().

Referenced by brep_command().

Here is the call graph for this function:

int brep_edge3d_plot ( struct bu_vls vls,
struct brep_specific bs,
struct rt_brep_internal *  ,
struct bn_vlblock vbp,
int  index,
int  plotres 
)

Definition at line 1673 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), bu_vls_printf(), and plotcurve().

Referenced by brep_command().

Here is the call graph for this function:

int brep_trim_plot ( struct bu_vls vls,
struct brep_specific bs,
struct rt_brep_internal *  ,
struct bn_vlblock vbp,
int  index,
int  plotres,
bool  dim3d 
)

Definition at line 1742 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), bu_vls_printf(), and plottrim().

Referenced by brep_command().

Here is the call graph for this function:

int brep_loop_plot ( struct bu_vls vls,
struct brep_specific bs,
struct rt_brep_internal *  ,
struct bn_vlblock vbp,
int  index,
int  plotres,
bool  dim3d 
)

Definition at line 1771 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), bu_vls_printf(), and plottrim().

Referenced by brep_command().

Here is the call graph for this function:

int brep_surface_cv_plot ( struct bu_vls vls,
struct brep_specific bs,
struct rt_brep_internal *  ,
struct bn_vlblock vbp,
int  index 
)

Definition at line 1805 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), and bu_vls_printf().

Referenced by brep_command().

Here is the call graph for this function:

void plotFace ( SurfaceTree *  st,
struct bn_vlblock vbp,
int  isocurveres,
int  gridres 
)

Definition at line 1849 of file brep_debug.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, near_equal(), PEACH, RT_ADD_VLIST, rt_vlblock_find(), OSL::Strings::u, OSL::Strings::v, X, and Y.

Here is the call graph for this function:

void drawisoUCheckForTrim ( SurfaceTree *  st,
struct bn_vlblock vbp,
fastf_t  from,
fastf_t  to,
fastf_t  v,
int  curveres 
)

Definition at line 1983 of file brep_debug.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, near_equal(), RT_ADD_VLIST, rt_vlblock_find(), OSL::Strings::u, OSL::Strings::v, Y, and YELLOW.

Referenced by drawBBNode().

Here is the call graph for this function:

void drawisoVCheckForTrim ( SurfaceTree *  st,
struct bn_vlblock vbp,
fastf_t  from,
fastf_t  to,
fastf_t  u,
int  curveres 
)

Definition at line 2111 of file brep_debug.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, near_equal(), RT_ADD_VLIST, rt_vlblock_find(), OSL::Strings::u, X, and YELLOW.

Referenced by drawBBNode().

Here is the call graph for this function:

void drawisoU ( SurfaceTree *  st,
struct bn_vlblock vbp,
fastf_t  from,
fastf_t  to,
fastf_t  v,
int  curveres 
)

Definition at line 2239 of file brep_debug.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, RT_ADD_VLIST, rt_vlblock_find(), and YELLOW.

Referenced by drawBBNode().

Here is the call graph for this function:

void drawisoV ( SurfaceTree *  st,
struct bn_vlblock vbp,
fastf_t  from,
fastf_t  to,
fastf_t  u,
int  curveres 
)

Definition at line 2265 of file brep_debug.cpp.

References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, RT_ADD_VLIST, rt_vlblock_find(), and YELLOW.

Referenced by drawBBNode().

Here is the call graph for this function:

void drawBBNode ( SurfaceTree *  st,
struct bn_vlblock vbp,
BBNode *  node 
)

Definition at line 2291 of file brep_debug.cpp.

References drawisoU(), drawisoUCheckForTrim(), drawisoV(), drawisoVCheckForTrim(), OSL::Strings::u, and OSL::Strings::v.

Referenced by plotFaceFromSurfaceTree().

Here is the call graph for this function:

void plotFaceFromSurfaceTree ( SurfaceTree *  st,
struct bn_vlblock vbp,
int  isocurveres,
int  gridres 
)

Definition at line 2336 of file brep_debug.cpp.

References drawBBNode().

Referenced by brep_isosurface_plot().

Here is the call graph for this function:

int brep_isosurface_plot ( struct bu_vls vls,
struct brep_specific bs,
struct rt_brep_internal *  ,
struct bn_vlblock vbp,
int  index,
int  plotres 
)

Definition at line 2343 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), bu_vls_printf(), plotFaceFromSurfaceTree(), plottrim(), and st.

Referenced by brep_command().

Here is the call graph for this function:

int brep_surfaceleafs_plot ( struct bu_vls vls,
struct brep_specific bs,
struct rt_brep_internal *  ,
struct bn_vlblock vbp,
bool  dim3d,
int  index,
int   
)

Definition at line 2380 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), bu_vls_printf(), plotsurfaceleafs(), and s.

Referenced by brep_command().

Here is the call graph for this function:

int brep_trimleafs_plot ( struct bu_vls vls,
struct brep_specific bs,
struct rt_brep_internal *  ,
struct bn_vlblock vbp,
bool  dim3d,
int  index,
int   
)

Definition at line 2432 of file brep_debug.cpp.

References brep_specific::brep, bu_log(), bu_vls_printf(), and plottrimleafs().

Referenced by brep_command().

Here is the call graph for this function:

void info_usage ( struct bu_vls vls)

Definition at line 2466 of file brep_debug.cpp.

References bu_vls_printf().

Referenced by brep_command().

Here is the call graph for this function:

void plot_usage ( struct bu_vls vls)

Definition at line 2482 of file brep_debug.cpp.

References bu_vls_printf().

Referenced by brep_command().

Here is the call graph for this function:

int brep_conversion_tree ( const struct db_i dbip,
const union tree oldtree,
union tree newtree,
const char *  suffix,
struct rt_wdb wdbp,
fastf_t  local2mm 
)
int brep_translate_scv ( ON_Brep brep,
int  surface_index,
int  i,
int  j,
fastf_t  dx,
fastf_t  dy,
fastf_t  dz 
)

Definition at line 2736 of file brep_debug.cpp.

References bu_log(), X, Y, and Z.

Referenced by rt_brep_process_selection(), and translate_command().

Here is the call graph for this function:

int translate_command ( struct bu_vls result,
struct brep_specific bs,
int  argc,
const char *  argv[] 
)

Definition at line 2779 of file brep_debug.cpp.

References brep_specific::brep, brep_translate_scv(), BU_STR_EQUAL, and bu_vls_printf().

Referenced by brep_command().

Here is the call graph for this function:

void plottrim ( ON_BrepFace &  face,
struct bn_vlblock vbp 
)

Definition at line 4526 of file brep.cpp.

RT_MemoryArchive ( void *  memory,
size_t  len 
)

Definition at line 4532 of file brep.cpp.

~RT_MemoryArchive ( )
virtual

Definition at line 4542 of file brep.cpp.

size_t CurrentPosition ( ) const

Definition at line 4548 of file brep.cpp.

bool SeekFromCurrentPosition ( int  seek_to)

Definition at line 4555 of file brep.cpp.

bool SeekFromStart ( size_t  seek_to)

Definition at line 4564 of file brep.cpp.

bool AtEnd ( ) const

Definition at line 4573 of file brep.cpp.

size_t Size ( ) const

Definition at line 4580 of file brep.cpp.

Referenced by rt_brep_export5(), and rt_brep_get().

uint8_t * CreateCopy ( ) const

Generate a byte-array copy of this memory archive. Allocates memory using bu_malloc, so must be freed with bu_free

Definition at line 4587 of file brep.cpp.

References bu_malloc().

Referenced by rt_brep_export5(), and rt_brep_get().

Here is the call graph for this function:

size_t Read ( size_t  amount,
void *  buf 
)
protected

Definition at line 4599 of file brep.cpp.

size_t Write ( size_t  amount,
const void *  buf 
)
protected

Definition at line 4611 of file brep.cpp.

bool Flush ( )
protected

Definition at line 4627 of file brep.cpp.