21#ifndef RT_DB_FULLPATH_H
22#define RT_DB_FULLPATH_H
63#define RT_CK_FULL_PATH(_p) BU_CKMAG(_p, DB_FULL_PATH_MAGIC, "db_full_path")
65#define DB_FULL_PATH_CUR_DIR(_pp) (((_pp)->fp_len > 0) ? (_pp)->fp_names[(_pp)->fp_len-1] : NULL)
66#define DB_FULL_PATH_CUR_BOOL(_pp) ((_pp)->fp_bool[(_pp)->fp_len-1])
67#define DB_FULL_PATH_SET_CUR_BOOL(_pp, _i) ((_pp)->fp_bool[(_pp)->fp_len-1]) = _i
69#define DB_FULL_PATH_CUR_COMB_INST(_pp) ((_pp)->fp_cinst[(_pp)->fp_len-1])
70#define DB_FULL_PATH_SET_CUR_COMB_INST(_pp, _i) ((_pp)->fp_cinst[(_pp)->fp_len-1]) = _i
72#define DB_FULL_PATH_LEN(_pp) ((_pp)->fp_len)
73#define DB_FULL_PATH_POP(_pp) ((_pp)->fp_len > 0) ? (_pp)->fp_len-- : (_pp)->fp_len
75#define DB_FULL_PATH_GET(_pp, _i) ((_pp)->fp_names[(_i)])
76#define DB_FULL_PATH_GET_BOOL(_pp, _i) ((_pp)->fp_bool[(_i)])
77#define DB_FULL_PATH_SET_BOOL(_pp, _i, _j) ((_pp)->fp_bool[(_i)] = _j)
78#define DB_FULL_PATH_GET_COMB_INST(_pp, _i) ((_pp)->fp_cinst[(_i)])
79#define DB_FULL_PATH_SET_COMB_INST(_pp, _i, _j) ((_pp)->fp_cinst[(_i)] = _j)
81#define DB_FULL_PATH_ROOT_DIR(_pp) ((_pp)->fp_names[0])
130#define DB_FP_PRINT_BOOL 0x1
131#define DB_FP_PRINT_TYPE 0x2
132#define DB_FP_PRINT_MATRIX 0x4
133#define DB_FP_PRINT_COMB_INDEX 0x8
136 const struct db_i *dbip,
155 const struct db_i *dbip,
172 const char *
const*argv);
198 const int skip_first);
Header file for the BRL-CAD common definitions.
void db_pr_full_path(const char *msg, const struct db_full_path *pathp)
void db_add_node_to_full_path(struct db_full_path *pp, struct directory *dp)
void db_extend_full_path(struct db_full_path *pathp, size_t incr)
int db_full_path_subset(const struct db_full_path *a, const struct db_full_path *b, const int skip_first)
int db_full_path_cyclic(const struct db_full_path *fp, const char *lname, int full_check)
void db_fullpath_to_vls(struct bu_vls *vls, const struct db_full_path *full_path, const struct db_i *dbip, int fp_flags)
void db_dup_full_path(struct db_full_path *newp, const struct db_full_path *oldp)
int db_fp_op(const struct db_full_path *pathp, struct db_i *dbip, int depth, struct resource *resp)
void db_dup_path_tail(struct db_full_path *newp, const struct db_full_path *oldp, b_off_t start)
int db_string_to_path(struct db_full_path *pp, const struct db_i *dbip, const char *str)
void db_path_to_vls(struct bu_vls *str, const struct db_full_path *pp)
int db_full_path_search(const struct db_full_path *a, const struct directory *dp)
int db_argv_to_path(struct db_full_path *pp, struct db_i *dbip, int argc, const char *const *argv)
void db_full_path_init(struct db_full_path *pathp)
char * db_path_to_string(const struct db_full_path *pp)
int db_path_to_mat(struct db_i *dbip, struct db_full_path *pathp, mat_t mat, int depth, struct resource *resp)
int db_identical_full_paths(const struct db_full_path *a, const struct db_full_path *b)
void db_free_full_path(struct db_full_path *pp)
void db_full_path_color(struct bu_color *c, struct db_full_path *pathp, struct db_i *dbip, struct resource *resp)
int db_full_path_match_top(const struct db_full_path *a, const struct db_full_path *b)
void db_append_full_path(struct db_full_path *dest, const struct db_full_path *src)
fastf_t mat_t[ELEMENTS_PER_MAT]
4x4 matrix
int * fp_cinst
array of comb tree instance specifiers
int * fp_bool
array of boolean flags
struct directory ** fp_names
array of dir pointers
fundamental vector, matrix, quaternion math macros