BRL-CAD

#include <ray.h>

Collaboration diagram for nmg_ray_data:
[legend]

Data Fields

uint32_t magic
 
struct modelrd_m
 
char * manifolds
 structure 1-3manifold table More...
 
vect_t rd_invdir
 
struct nmg_rayrp
 
void ** ap
 
struct nmg_segseghead
 
void ** stp
 
const struct bn_toltol
 
struct nmg_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 221 of file ray.h.

Field Documentation

◆ magic

uint32_t magic

Definition at line 222 of file ray.h.

◆ rd_m

struct model* rd_m

Definition at line 223 of file ray.h.

◆ manifolds

char* manifolds

structure 1-3manifold table

Definition at line 224 of file ray.h.

◆ rd_invdir

vect_t rd_invdir

Definition at line 225 of file ray.h.

◆ rp

struct nmg_ray* rp

Definition at line 226 of file ray.h.

◆ ap

void* * ap

Definition at line 227 of file ray.h.

◆ seghead

struct nmg_seg* seghead

Definition at line 228 of file ray.h.

◆ stp

void* * stp

Definition at line 229 of file ray.h.

◆ tol

const struct bn_tol* tol

Definition at line 230 of file ray.h.

◆ hitmiss

struct nmg_hitmiss** hitmiss

1 struct hitmiss ptr per elem.

Definition at line 231 of file ray.h.

◆ rd_hit

struct bu_list rd_hit

list of hit elements

Definition at line 231 of file ray.h.

◆ rd_miss

struct bu_list rd_miss

list of missed/sub-hit elements

Definition at line 231 of file ray.h.

◆ plane_pt

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 241 of file ray.h.

◆ ray_dist_to_plane

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 247 of file ray.h.

◆ face_subhit

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 257 of file ray.h.

◆ classifying_ray

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 264 of file ray.h.


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