BRL-CAD
ray_data Struct Reference

#include <raytrace.h>

Collaboration diagram for ray_data:
[legend]

Data Fields

uint32_t magic
 
struct model * rd_m
 
char * manifolds
 structure 1-3manifold table More...
 
vect_t rd_invdir
 
struct xrayrp
 
struct applicationap
 
struct segseghead
 
struct soltabstp
 
const struct bn_toltol
 
struct hitmiss ** hitmiss
 1 struct hitmiss ptr per elem. More...
 
struct bu_list rd_hit
 list of hit elements More...
 
struct bu_list rd_miss
 list of missed/sub-hit elements More...
 
point_t plane_pt
 ray/plane(face) intercept point More...
 
fastf_t ray_dist_to_plane
 ray parametric dist to plane More...
 
int face_subhit
 
int classifying_ray
 

Detailed Description

Ray Data structure

A) the hitmiss table has one element for each nmg structure in the nmgmodel. The table keeps track of which elements have been processed before and which haven't. Elements in this table will either be: (NULL) item not previously processed hitmiss ptr item previously processed

the 0th item in the array is a pointer to the head of the "hit" list. The 1th item in the array is a pointer to the head of the "miss" list.

B) If plane_pt is non-null then we are currently processing a face intersection. The plane_dist and ray_dist_to_plane are valid. The ray/edge intersector should check the distance from the plane intercept to the edge and update "plane_closest" if the current edge is closer to the intercept than the previous closest object.

Definition at line 2412 of file raytrace.h.

Field Documentation

uint32_t magic

Definition at line 2413 of file raytrace.h.

Referenced by classify_seg(), nmg_class_ray_vs_shell(), rt_nmg_shot(), and shoot_and_plot().

struct model* rd_m
char* manifolds

structure 1-3manifold table

Definition at line 2415 of file raytrace.h.

Referenced by edge_hit_ray_state(), nmg_class_ray_vs_shell(), record_face_hit(), and rt_nmg_shot().

struct seg* seghead
point_t plane_pt

ray/plane(face) intercept point

plane_pt is the intercept point of the ray with the plane of the face.

Definition at line 2432 of file raytrace.h.

Referenced by isect_ray_faceuse(), and isect_ray_planar_face().

fastf_t ray_dist_to_plane

ray parametric dist to plane

ray_dist_to_plane is the parametric distance along the ray from the ray origin (rd->rp->r_pt) to the ray/plane intercept point

Definition at line 2438 of file raytrace.h.

Referenced by eu_touch_func(), isect_ray_faceuse(), and isect_ray_planar_face().

int face_subhit

the "face_subhit" element is a boolean used by isect_ray_face and [e|v]u_touch_func to record the fact that the ray/(plane/face) intercept point was within tolerance of an edge/vertex of the face. In such instances, isect_ray_face does NOT need to generate a hit point for the face, as the hit point for the edge/vertex will suffice.

Definition at line 2448 of file raytrace.h.

Referenced by eu_touch_func(), isect_ray_planar_face(), and vu_touch_func().

int classifying_ray

the "classifying_ray" flag indicates that this ray is being used to classify a point, so that the "eu_touch" and "vu_touch" functions should not be called.

Definition at line 2455 of file raytrace.h.

Referenced by classify_seg(), isect_ray_planar_face(), nmg_class_ray_vs_shell(), rt_nmg_shot(), and shoot_and_plot().


The documentation for this struct was generated from the following file: