g_bot.c File Reference

#include "common.h"
#include <stdlib.h>
#include <stdio.h>
#include <strings.h>
#include <math.h>
#include <ctype.h>
#include "tcl.h"
#include "machine.h"
#include "vmath.h"
#include "db.h"
#include "nmg.h"
#include "rtgeom.h"
#include "raytrace.h"
#include "./debug.h"
#include "./plane.h"
#include "./bot.h"
#include "./g_bot_include.c"

Include dependency graph for g_bot.c:

Go to the source code of this file.

Data Structures

struct  bot_edge

Defines

#define GLUE(_a, _b)   _a ## _b
#define XGLUE(_a, _b)   GLUE(_a,_b)
#define MAXHITS   128
#define BOT_MIN_DN   1.0e-9
#define RT_BOT_UNORIENTED_NORM(_hitp, _in_or_out)
#define TRI_TYPE   float
#define NORM_TYPE   signed char
#define NORMAL_SCALE   127.0
#define ONE_OVER_SCALE   (1.0/127.0)
#define TRI_TYPE   double
#define NORM_TYPE   fastf_t
#define NORMAL_SCALE   1.0
#define ONE_OVER_SCALE   1.0
#define RT_BOT_SEG_MISS(SEG)   (SEG).seg_stp=RT_SOLTAB_NULL
#define MAX_AFFECTED_FACES   128

Functions

HIDDEN int rt_bot_makesegs (struct hit *hits, int nhits, struct soltab *stp, struct xray *rp, struct application *ap, struct seg *seghead, struct rt_piecestate *psp)
int rt_botface_w_normals (struct soltab *stp, struct bot_specific *bot, fastf_t *ap, fastf_t *bp, fastf_t *cp, fastf_t *vertex_normals, int face_no, const struct bn_tol *tol)
int rt_botface (struct soltab *stp, struct bot_specific *bot, fastf_t *ap, fastf_t *bp, fastf_t *cp, int face_no, const struct bn_tol *tol)
void rt_bot_prep_pieces (struct bot_specific *bot, struct soltab *stp, int ntri, const struct bn_tol *tol)
int rt_bot_prep (struct soltab *stp, struct rt_db_internal *ip, struct rt_i *rtip)
void rt_bot_print (register const struct soltab *stp)
int rt_bot_shot (struct soltab *stp, register struct xray *rp, struct application *ap, struct seg *seghead)
int rt_bot_piece_shot (struct rt_piecestate *psp, struct rt_piecelist *plp, double dist_corr, register struct xray *rp, struct application *ap, struct seg *seghead)
void rt_bot_piece_hitsegs (struct rt_piecestate *psp, struct seg *seghead, struct application *ap)
void rt_bot_vshot (struct soltab **stp, struct xray **rp, struct seg *segp, int n, struct application *ap)
void rt_bot_norm (register struct hit *hitp, struct soltab *stp, register struct xray *rp)
void rt_bot_curve (register struct curvature *cvp, register struct hit *hitp, struct soltab *stp)
void rt_bot_uv (struct application *ap, struct soltab *stp, register struct hit *hitp, register struct uvcoord *uvp)
void rt_bot_free (register struct soltab *stp)
int rt_bot_class (const struct soltab *stp, const fastf_t *min, const fastf_t *max, const struct bn_tol *tol)
int rt_bot_plot (struct bu_list *vhead, struct rt_db_internal *ip, const struct rt_tess_tol *ttol, const struct bn_tol *tol)
int rt_bot_plot_poly (struct bu_list *vhead, struct rt_db_internal *ip, const struct rt_tess_tol *ttol, const struct bn_tol *tol)
int rt_bot_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_bot_import (struct rt_db_internal *ip, const struct bu_external *ep, register const fastf_t *mat, const struct db_i *dbip)
int rt_bot_export (struct bu_external *ep, const struct rt_db_internal *ip, double local2mm, const struct db_i *dbip)
int rt_bot_import5 (struct rt_db_internal *ip, const struct bu_external *ep, register const fastf_t *mat, const struct db_i *dbip)
int rt_bot_export5 (struct bu_external *ep, const struct rt_db_internal *ip, double local2mm, const struct db_i *dbip)
int rt_bot_describe (struct bu_vls *str, const struct rt_db_internal *ip, int verbose, double mm2local)
void rt_bot_ifree (struct rt_db_internal *ip)
int rt_bot_tnurb (struct nmgregion **r, struct model *m, struct rt_db_internal *ip, const struct bn_tol *tol)
int rt_bot_xform (struct rt_db_internal *op, const fastf_t *mat, struct rt_db_internal *ip, const int free, struct db_i *dbip)
int rt_bot_find_v_nearest_pt2 (const struct rt_bot_internal *bot, const point_t pt2, const mat_t mat)
int rt_bot_edge_in_list (const int v1, const int v2, const int edge_list[], const int edge_count)
int rt_bot_find_e_nearest_pt2 (int *vert1, int *vert2, const struct rt_bot_internal *bot, const point_t pt2, const mat_t mat)
int rt_bot_tclget (Tcl_Interp *interp, const struct rt_db_internal *intern, const char *attr)
int rt_bot_tcladjust (Tcl_Interp *interp, struct rt_db_internal *intern, int argc, char **argv)
int rt_bot_tclform (const struct rt_functab *ftp, Tcl_Interp *interp)
int rt_bot_vertex_fuse (struct rt_bot_internal *bot)
int rt_bot_same_orientation (const int *a, const int *b)
int rt_bot_face_fuse (struct rt_bot_internal *bot)
int rt_bot_condense (struct rt_bot_internal *bot)
int find_closest_face (fastf_t **centers, int *piece, int *old_faces, int num_faces, fastf_t *vertices)
void Add_unique_verts (int *piece_verts, int *v)
int rt_bot_sort_faces (struct rt_bot_internal *bot, int tris_per_piece)
int rt_bot_decimate (struct rt_bot_internal *bot, fastf_t max_chord_error, fastf_t max_normal_error, fastf_t min_edge_length)
int rt_smooth_bot (struct rt_bot_internal *bot, char *bot_name, struct db_i *dbip, fastf_t norm_tol_angle)

Variables

int rt_bot_minpieces = RT_DEFAULT_MINPIECES
int rt_bot_tri_per_piece = RT_DEFAULT_TRIS_PER_PIECE


Detailed Description

Intersect a ray with a bag o' triangles.

Authors - John R. Anderson Source - The U. S. Army Research Laboratory Aberdeen Proving Ground, Maryland 21005-5066

Definition in file g_bot.c.


Generated on Mon Sep 18 01:25:05 2006 for BRL-CAD by  doxygen 1.4.6