BRL-CAD
#include "common.h"
#include <stddef.h>
#include <string.h>
#include <math.h>
#include "bio.h"
#include "bu/cv.h"
#include "vmath.h"
#include "db.h"
#include "nmg.h"
#include "rtgeom.h"
#include "raytrace.h"
#include "../../librt_private.h"
Include dependency graph for eto.c:

Go to the source code of this file.

Data Structures

struct  eto_specific
 

Macros

#define ETO_PT(www, lll)   ((((www)%nells)*npts)+((lll)%npts))
 
#define ETO_PTA(ww, ll)   (&eto_ells[ETO_PT(ww, ll)*3])
 
#define ETO_NMA(ww, ll)   (norms[ETO_PT(ww, ll)])
 

Functions

int rt_eto_bbox (struct rt_db_internal *ip, point_t *min, point_t *max, const struct bn_tol *tol)
 
int rt_eto_prep (struct soltab *stp, struct rt_db_internal *ip, struct rt_i *rtip)
 
void rt_eto_print (const struct soltab *stp)
 
int rt_eto_shot (struct soltab *stp, struct xray *rp, struct application *ap, struct seg *seghead)
 
void rt_eto_norm (struct hit *hitp, struct soltab *stp, struct xray *rp)
 
void rt_eto_curve (struct curvature *cvp, struct hit *hitp, struct soltab *stp)
 
void rt_eto_uv (struct application *ap, struct soltab *stp, struct hit *hitp, struct uvcoord *uvp)
 
void rt_eto_free (struct soltab *stp)
 
HIDDEN int make_ellipse4 (struct rt_pt_node *pts, fastf_t a, fastf_t b, fastf_t dtol, fastf_t ntol)
 
HIDDEN point_t * make_ellipse (int *n, fastf_t a, fastf_t b, fastf_t dtol, fastf_t ntol)
 
int rt_eto_adaptive_plot (struct rt_db_internal *ip, const struct rt_view_info *info)
 
int rt_eto_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_eto_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_eto_import4 (struct rt_db_internal *ip, const struct bu_external *ep, const fastf_t *mat, const struct db_i *dbip)
 
int rt_eto_export4 (struct bu_external *ep, const struct rt_db_internal *ip, double local2mm, const struct db_i *dbip)
 
int rt_eto_import5 (struct rt_db_internal *ip, const struct bu_external *ep, const fastf_t *mat, const struct db_i *dbip)
 
int rt_eto_export5 (struct bu_external *ep, const struct rt_db_internal *ip, double local2mm, const struct db_i *dbip)
 
int rt_eto_describe (struct bu_vls *str, const struct rt_db_internal *ip, int verbose, double mm2local)
 
void rt_eto_ifree (struct rt_db_internal *ip)
 
int rt_eto_params (struct pc_pc_set *ps, const struct rt_db_internal *ip)
 
void rt_eto_volume (fastf_t *vol, const struct rt_db_internal *ip)
 
void rt_eto_centroid (point_t *cent, const struct rt_db_internal *ip)
 
void rt_eto_surf_area (fastf_t *area, const struct rt_db_internal *ip)
 

Variables

const struct bu_structparse rt_eto_parse []
 

Detailed Description

Intersect a ray with an Elliptical Torus.

Definition in file eto.c.

Macro Definition Documentation

#define ETO_PT (   www,
  lll 
)    ((((www)%nells)*npts)+((lll)%npts))

Referenced by rt_eto_tess().

#define ETO_PTA (   ww,
  ll 
)    (&eto_ells[ETO_PT(ww, ll)*3])

Referenced by rt_eto_plot(), and rt_eto_tess().

#define ETO_NMA (   ww,
  ll 
)    (norms[ETO_PT(ww, ll)])

Referenced by rt_eto_tess().