59# if defined(WDB_DLL_EXPORTS) && defined(WDB_DLL_IMPORTS)
60# error "Only WDB_DLL_EXPORTS or WDB_DLL_IMPORTS can be defined, not both."
61# elif defined(WDB_DLL_EXPORTS)
62# define WDB_EXPORT COMPILER_DLLEXPORT
63# elif defined(WDB_DLL_IMPORTS)
64# define WDB_EXPORT COMPILER_DLLIMPORT
85#define WMEMBER_INIT_ZERO { BU_LIST_INIT_ZERO, 0, MAT_INIT_IDN, NULL }
86#define WMEMBER_INIT(x) { BU_LIST_INIT(&((x)->l)); (x)->wm_op = 0; MAT_IDN((x)->wm_mat); (x)->wm_name = NULL; }
87#define WMEMBER_NULL ((struct wmember *)0)
88#define WDB_CK_WMEMBER(_p) BU_CKMAG(_p, WMEMBER_MAGIC, "wmember");
93WDB_EXPORT
extern int mk_id(
struct rt_wdb *fp,
const char *title);
195 const vect_t inorm,
double r1,
double r2);
300 const vect_t height_vector,
340WDB_EXPORT
extern int mk_ars(
struct rt_wdb *fp,
const char *name,
size_t ncurves,
size_t pts_per_curve,
fastf_t *curves[]);
430 unsigned char orientation,
431 unsigned char error_mode,
457 unsigned char orientation,
490 unsigned char orientation,
580 const char *sketch_name,
607 vect_t height,
double vradius,
double hradius);
644WDB_EXPORT
extern int mk_dsp(
struct rt_wdb *fp,
const char *name,
const char *file,
645 size_t xdim,
size_t ydim,
const matp_t mat);
650WDB_EXPORT
extern int mk_ebm(
struct rt_wdb *fp,
const char *name,
const char *file,
651 size_t xdim,
size_t ydim,
fastf_t tallness,
const matp_t mat);
662WDB_EXPORT
extern int mk_vol(
struct rt_wdb *fp,
const char *name,
char datasrc,
const char *file,
663 size_t xdim,
size_t ydim,
size_t zdim,
size_t lo,
size_t hi,
673 const char *treetop,
int meth);
700#define mk_lcomb(_fp, _name, _headp, _rf, _shadername, _shaderargs, _rgb, _inh) \
701 mk_comb(_fp, _name, &((_headp)->l), _rf, _shadername, _shaderargs, \
702 _rgb, 0, 0, 0, 0, _inh, 0, 0)
706#define mk_lrcomb(fp, name, _headp, region_flag, shadername, shaderargs, rgb, id, air, material, los, inherit_flag) \
707 mk_comb(fp, name, &((_headp)->l), region_flag, shadername, shaderargs, \
708 rgb, id, air, material, los, inherit_flag, 0, 0)
726 const char *combname,
729 const char *shadername,
730 const char *shaderargs,
731 const unsigned char *rgb,
745 const char *combname,
746 const char *membname,
756 const char *combname,
757 const char *membname,
758 const char *shadername,
759 const char *shaderargs,
760 const unsigned char *rgb);
762#define WMOP_INTERSECT DB_OP_INTERSECT
763#define WMOP_SUBTRACT DB_OP_SUBTRACT
764#define WMOP_UNION DB_OP_UNION
767#define mk_lfcomb(fp, name, headp, region) \
768 mk_lcomb(fp, name, headp, region, (char *)0, (char *)0, (unsigned char *)0, 0);
802#define mk_export_fwrite(wdbp, name, gp, id) wdb_export(wdbp, name, gp, id, mk_conv2mm)
Header file for the BRL-CAD Numerical Computation Library, LIBBN.
Header file for the BRL-CAD common definitions.
void int char int int double * min
void float float float * z
int mk_arb7(struct rt_wdb *fp, const char *name, const fastf_t *pts7)
int mk_sketch(struct rt_wdb *fp, const char *name, const struct rt_sketch_internal *skt)
int mk_arb6(struct rt_wdb *fp, const char *name, const fastf_t *pts6)
int mk_bot_from_nmg(struct rt_wdb *ofp, const char *name, struct shell *s)
int mk_extrusion(struct rt_wdb *fp, const char *name, const char *sketch_name, const point_t V, const vect_t h, const vect_t u_vec, const vect_t v_vec, int keypoint)
int mk_rpp(struct rt_wdb *fp, const char *name, const point_t min, const point_t max)
int mk_annot(struct rt_wdb *fp, const char *name, const struct rt_annot_internal *ann)
int mk_script(struct rt_wdb *fp, const char *name, const struct rt_script_internal *scr)
int mk_brep(struct rt_wdb *wdbp, const char *name, void *vbrep)
int mk_bot_w_normals_and_uvs(struct rt_wdb *fp, const char *name, unsigned char mode, unsigned char orientation, unsigned char flags, size_t num_vertices, size_t num_faces, const fastf_t *vertices, const int *faces, const fastf_t *thickness, struct bu_bitv *face_mode, size_t num_normals, fastf_t *normals, int *face_normals, size_t num_uvs, fastf_t *uvs, int *face_uvs)
void mk_pipe_free(struct bu_list *headp)
int mk_id_units(struct rt_wdb *fp, const char *title, const char *units)
int mk_ebm(struct rt_wdb *fp, const char *name, const char *file, size_t xdim, size_t ydim, fastf_t tallness, const matp_t mat)
struct wmember * mk_addmember(const char *name, struct bu_list *headp, mat_t mat, int op)
int mk_grip(struct rt_wdb *wdbp, const char *name, const point_t center, const vect_t normal, const fastf_t magnitude)
int mk_hrt(struct rt_wdb *fp, const char *name, const point_t center, const vect_t x, const vect_t y, const vect_t z, const fastf_t dist)
int mk_ell(struct rt_wdb *fp, const char *name, const point_t center, const vect_t a, const vect_t b, const vect_t c)
int mk_trc_top(struct rt_wdb *fp, const char *name, const point_t ibase, const point_t itop, fastf_t radbase, fastf_t radtop)
int mk_tgc(struct rt_wdb *fp, const char *name, const point_t base, const vect_t height, const vect_t a, const vect_t b, const vect_t c, const vect_t d)
int mk_metaball(struct rt_wdb *wdbp, const char *name, const size_t nctlpt, const int method, const fastf_t threshold, const fastf_t *verts[5])
int make_hole_in_prepped_regions(struct rt_wdb *wdbp, struct rt_i *rtip, point_t hole_start, vect_t hole_depth, fastf_t radius, struct bu_ptbl *regions)
This routine provides a quick approach to simply adding a hole to existing prepped geometry.
int mk_comb(struct rt_wdb *wdbp, const char *combname, struct bu_list *headp, int region_kind, const char *shadername, const char *shaderargs, const unsigned char *rgb, int id, int air, int material, int los, int inherit, int append_ok, int gift_semantics)
Combination (region and group) construction: first you build a list of nodes with mk_addmember,...
int mk_arb5(struct rt_wdb *fp, const char *name, const fastf_t *pts5)
int mk_eto(struct rt_wdb *wdbp, const char *name, const point_t vert, const vect_t norm, const vect_t smajor, fastf_t rrot, fastf_t sminor)
double mk_conv2mm
Conversion factor to mm.
int mk_arb8(struct rt_wdb *fp, const char *name, const fastf_t *pts8)
int mk_material(struct rt_wdb *wdbp, const char *db_name, const char *name, const char *parent, const char *source, struct bu_attribute_value_set *physicalProperties, struct bu_attribute_value_set *mechanicalProperties, struct bu_attribute_value_set *opticalProperties, struct bu_attribute_value_set *thermalProperties)
int mk_version
Which version database to write.
int make_hole(struct rt_wdb *wdbp, point_t hole_start, vect_t hole_depth, fastf_t hole_radius, int num_objs, struct directory **dp)
This routine is intended to be used to make a hole in some geometry.
int mk_bot_w_normals(struct rt_wdb *fp, const char *name, unsigned char mode, unsigned char orientation, unsigned char flags, size_t num_vertices, size_t num_faces, const fastf_t *vertices, const int *faces, const fastf_t *thickness, struct bu_bitv *face_mode, size_t num_normals, fastf_t *normals, int *face_normals)
int mk_region1(struct rt_wdb *fp, const char *combname, const char *membname, const char *shadername, const char *shaderargs, const unsigned char *rgb)
int mk_comb1(struct rt_wdb *fp, const char *combname, const char *membname, int regflag)
int mk_arbn(struct rt_wdb *fp, const char *name, size_t neqn, const plane_t *eqn)
int mk_submodel(struct rt_wdb *fp, const char *name, const char *file, const char *treetop, int meth)
int mk_set_conversion(double val)
int mk_id_editunits(struct rt_wdb *fp, const char *title, double local2mm)
int mk_rcc(struct rt_wdb *fp, const char *name, const point_t base, const vect_t height, fastf_t radius)
int mk_hyp(struct rt_wdb *wdbp, const char *name, const point_t vert, const vect_t height_vector, const vect_t vectA, fastf_t magB, fastf_t base_neck_ratio)
int mk_ehy(struct rt_wdb *wdbp, const char *name, const point_t vert, const vect_t height, const vect_t breadth, fastf_t r1, fastf_t r2, fastf_t c)
void mk_add_pipe_pnt(struct bu_list *headp, const point_t coord, double od, double id, double bendradius)
int mk_dsp(struct rt_wdb *fp, const char *name, const char *file, size_t xdim, size_t ydim, const matp_t mat)
int mk_arb4(struct rt_wdb *fp, const char *name, const fastf_t *pts4)
int mk_sph(struct rt_wdb *fp, const char *name, const point_t center, fastf_t radius)
int mk_rpc(struct rt_wdb *wdbp, const char *name, const point_t vert, const vect_t height, const vect_t breadth, double half_w)
int mk_cone(struct rt_wdb *fp, const char *name, const point_t base, const vect_t dirv, fastf_t height, fastf_t base_radius, fastf_t nose_radius)
int mk_conversion(char *units_string)
int mk_half(struct rt_wdb *fp, const char *name, const vect_t norm, fastf_t d)
int mk_particle(struct rt_wdb *fp, const char *name, point_t vertex, vect_t height, double vradius, double hradius)
int mk_constraint(struct rt_wdb *wdbp, const char *name, const char *expr)
int mk_bot(struct rt_wdb *fp, const char *name, unsigned char mode, unsigned char orientation, unsigned char error_mode, size_t num_vertices, size_t num_faces, fastf_t *vertices, int *faces, fastf_t *thickness, struct bu_bitv *face_mode)
int mk_write_color_table(struct rt_wdb *ofp)
int mk_bspline(struct rt_wdb *wdbp, const char *name, struct face_g_snurb **surfs)
int mk_trc_h(struct rt_wdb *fp, const char *name, const point_t base, const vect_t height, fastf_t radbase, fastf_t radtop)
int mk_pipe(struct rt_wdb *fp, const char *name, struct bu_list *headp)
int mk_wedge(struct rt_wdb *fp, const char *name, const point_t vert, const vect_t xdirv, const vect_t zdirv, fastf_t xlen, fastf_t ylen, fastf_t zlen, fastf_t x_top_len)
int mk_vol(struct rt_wdb *fp, const char *name, char datasrc, const char *file, size_t xdim, size_t ydim, size_t zdim, size_t lo, size_t hi, const vect_t cellsize, const matp_t mat)
int mk_rhc(struct rt_wdb *wdbp, const char *name, const point_t vert, const vect_t height, const vect_t breadth, fastf_t half_w, fastf_t asymp)
int mk_binunif(struct rt_wdb *fp, const char *name, const void *data, wdb_binunif data_type, long count)
int mk_epa(struct rt_wdb *wdbp, const char *name, const point_t vert, const vect_t height, const vect_t breadth, fastf_t r1, fastf_t r2)
void mk_freemembers(struct bu_list *headp)
int mk_cline(struct rt_wdb *fp, const char *name, const point_t V, const vect_t height, fastf_t radius, fastf_t thickness)
int mk_nmg(struct rt_wdb *filep, const char *name, struct model *m)
void mk_pipe_init(struct bu_list *headp)
int mk_id(struct rt_wdb *fp, const char *title)
int mk_ars(struct rt_wdb *fp, const char *name, size_t ncurves, size_t pts_per_curve, fastf_t *curves[])
int mk_tor(struct rt_wdb *fp, const char *name, const point_t center, const vect_t inorm, double r1, double r2)
@ WDB_BINUNIF_FILE_UINT16
@ WDB_BINUNIF_FILE_USHORT
@ WDB_BINUNIF_FILE_UINT32
@ WDB_BINUNIF_FILE_UINT64
@ WDB_BINUNIF_FILE_DOUBLE
@ WDB_BINUNIF_FILE_ULONGLONG
@ WDB_BINUNIF_FILE_LONGLONG
fastf_t vect_t[ELEMENTS_PER_VECT]
3-tuple vector
double fastf_t
fastest 64-bit (or larger) floating point type
fastf_t mat_t[ELEMENTS_PER_MAT]
4x4 matrix
fastf_t plane_t[ELEMENTS_PER_PLANE]
Definition of a plane equation.
fastf_t * matp_t
pointer to a 4x4 matrix
fastf_t point_t[ELEMENTS_PER_POINT]
3-tuple point
Global registry of recognized magic numbers.
Face NURBS surface geometry.
NMG topological vertex - the simplest element of the topology system.
int wm_op
Boolean operation.
mat_t wm_mat
FIXME: Should be a matp_t.