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 "nurb.h"
#include "../../librt_private.h"
Include dependency graph for ell.c:

Go to the source code of this file.

Data Structures

struct  ell_specific
 
struct  ell_draw_configuration
 
struct  ellipse_cross_section
 
struct  ell_state
 
struct  ell_vert_strip
 

Macros

#define ELL_NULL   ((struct ell_specific *)0)
 
#define RT_ELL_SEG_MISS(SEG)   (SEG).seg_stp=RT_SOLTAB_NULL
 
#define ELLOUT(n)   ov+(n-1)*3
 
#define M(x, y, z, w)
 
#define PROLATE   1
 
#define OBLATE   2
 

Functions

int rt_sph_prep (struct soltab *stp, struct rt_db_internal *ip, struct rt_i *rtip)
 
HIDDEN void nmg_sphere_face_snurb (struct faceuse *fu, const matp_t m)
 
int rt_ell_bbox (struct rt_db_internal *ip, point_t *min, point_t *max, const struct bn_tol *tol)
 
int rt_ell_prep (struct soltab *stp, struct rt_db_internal *ip, struct rt_i *rtip)
 
void rt_ell_print (register const struct soltab *stp)
 
int rt_ell_shot (struct soltab *stp, register struct xray *rp, struct application *ap, struct seg *seghead)
 
void rt_ell_vshot (struct soltab **stp, struct xray **rp, struct seg *segp, int n, struct application *ap)
 
void rt_ell_norm (register struct hit *hitp, struct soltab *stp, register struct xray *rp)
 
void rt_ell_curve (register struct curvature *cvp, register struct hit *hitp, struct soltab *stp)
 
void rt_ell_uv (struct application *ap, struct soltab *stp, register struct hit *hitp, register struct uvcoord *uvp)
 
void rt_ell_free (register struct soltab *stp)
 
void rt_ell_16pts (fastf_t *ov, fastf_t *V, fastf_t *A, fastf_t *B)
 
int rt_ell_adaptive_plot (struct rt_db_internal *ip, const struct rt_view_info *info)
 
int rt_ell_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_ell_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_ell_import4 (struct rt_db_internal *ip, const struct bu_external *ep, register const fastf_t *mat, const struct db_i *dbip)
 
int rt_ell_export4 (struct bu_external *ep, const struct rt_db_internal *ip, double local2mm, const struct db_i *dbip)
 
int rt_ell_import5 (struct rt_db_internal *ip, const struct bu_external *ep, register const fastf_t *mat, const struct db_i *dbip)
 
int rt_ell_export5 (struct bu_external *ep, const struct rt_db_internal *ip, double local2mm, const struct db_i *dbip)
 
int rt_ell_describe (struct bu_vls *str, const struct rt_db_internal *ip, int verbose, double mm2local)
 
void rt_ell_ifree (struct rt_db_internal *ip)
 
int rt_ell_tnurb (struct nmgregion **r, struct model *m, struct rt_db_internal *ip, const struct bn_tol *tol)
 
int rt_ell_params (struct pc_pc_set *pcs, const struct rt_db_internal *ip)
 Method for declaration of parameters so that it can be used by Parametrics and Constraints library. More...
 
fastf_t ell_angle (fastf_t *p1, fastf_t a, fastf_t b, fastf_t dtol, fastf_t ntol)
 
void rt_ell_volume (fastf_t *volume, const struct rt_db_internal *ip)
 
void rt_ell_centroid (point_t *cent, const struct rt_db_internal *ip)
 
void rt_ell_surf_area (fastf_t *area, const struct rt_db_internal *ip)
 

Variables

const struct bu_structparse rt_ell_parse []
 

Detailed Description

Intersect a ray with a Generalized Ellipsoid.

Definition in file ell.c.

Macro Definition Documentation

#define M (   x,
  y,
  z,
 
)
Value:
{ \
*op++ = m[ 0]*(x) + m[ 1]*(y) + m[ 2]*(z) + m[ 3]*(w);\
*op++ = m[ 4]*(x) + m[ 5]*(y) + m[ 6]*(z) + m[ 7]*(w);\
*op++ = m[ 8]*(x) + m[ 9]*(y) + m[10]*(z) + m[11]*(w);\
*op++ = m[12]*(x) + m[13]*(y) + m[14]*(z) + m[15]*(w); }

Referenced by nmg_sphere_face_snurb().