shoot.c File Reference

#include "common.h"
#include <stdio.h>
#include <math.h>
#include <strings.h>
#include "machine.h"
#include "vmath.h"
#include "bu.h"
#include "raytrace.h"
#include "plot3.h"
#include "./debug.h"

Include dependency graph for shoot.c:

Go to the source code of this file.

Defines

#define V3PT_DEPARTING_RPP(_step, _lo, _hi, _pt)   PT_DEPARTING_RPP(_step, _lo, _hi, (_pt)[X], (_pt)[Y], (_pt)[Z] )
#define PT_DEPARTING_RPP(_step, _lo, _hi, _px, _py, _pz)
#define st   sv
#define SEG_MISS(SEG)   (SEG).seg_stp=(struct soltab *) 0;

Functions

void rt_plot_cell (const union cutter *cutp, const struct rt_shootray_status *ssp, struct bu_list *waiting_segs_hd, struct rt_i *rtip)
void rt_res_pieces_init (struct resource *resp, struct rt_i *rtip)
void rt_res_pieces_clean (struct resource *resp, struct rt_i *rtip)
int rt_find_nugrid (const struct nugridnode *nugnp, int axis, fastf_t val)
const union cutterrt_advance_to_next_cell (register struct rt_shootray_status *ssp)
fastf_t rt_find_backing_dist (struct rt_shootray_status *ss, struct bu_bitv *backbits)
int rt_shootray (register struct application *ap)
const union cutterrt_cell_n_on_ray (register struct application *ap, int n)
int rt_in_rpp (struct xray *rp, register const fastf_t *invdir, register const fastf_t *min, register const fastf_t *max)
int rt_DB_rpp (register struct xray *rp, register const fastf_t *invdir, register const fastf_t *min, register const fastf_t *max)
void rt_vstub (struct soltab **stp, struct xray **rp, struct seg *segp, int n, struct application *ap)
void rt_pr_library_version (void)
void rt_zero_res_stats (struct resource *resp)
void rt_add_res_stats (register struct rt_i *rtip, register struct resource *resp)
void rt_3move_raydist (FILE *fp, struct xray *rayp, double dist)
void rt_3cont_raydist (FILE *fp, struct xray *rayp, double dist)

Variables

resource rt_uniresource
 default. Defined in librt/shoot.c


Detailed Description

Ray Tracing program shot coordinator.

This is the heart of LIBRT's ray-tracing capability.

Given a ray, shoot it at all the relevant parts of the model, (building the finished_segs chain), and then call rt_boolregions() to build and evaluate the partition chain. If the ray actually hit anything, call the application's a_hit() routine with a pointer to the partition chain, otherwise, call the application's a_miss() routine.

It is important to note that rays extend infinitely only in the positive direction. The ray is composed of all points P, where

P = r_pt + K * r_dir

for K ranging from 0 to +infinity. There is no looking backwards.

Authors - Michael John Muuss Glenn Durfee

Source - The U. S. Army Research Laboratory Aberdeen Proving Ground, Maryland 21005-5068 USA

Definition in file shoot.c.


Define Documentation

#define st   sv
 

Referenced by bn_isect_lseg_rpp(), rt_DB_rpp(), rt_in_rpp(), and rt_raybundle_maker().


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