本文整理汇总了C++中bu_vls_printf函数的典型用法代码示例。如果您正苦于以下问题:C++ bu_vls_printf函数的具体用法?C++ bu_vls_printf怎么用?C++ bu_vls_printf使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了bu_vls_printf函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: ged_get_eyemodel
/*
* Returns the views eyemodel
*
* Usage:
* get_eyemodel
*
*/
int
ged_get_eyemodel(struct ged *gedp, int argc, const char *argv[])
{
quat_t quat;
vect_t eye_model;
GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
GED_CHECK_DRAWABLE(gedp, GED_ERROR);
GED_CHECK_VIEW(gedp, GED_ERROR);
GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
/* initialize result */
bu_vls_trunc(gedp->ged_result_str, 0);
if (argc != 1) {
bu_vls_printf(gedp->ged_result_str, "Usage: %s", argv[0]);
return GED_ERROR;
}
_ged_rt_set_eye_model(gedp, eye_model);
quat_mat2quat(quat, gedp->ged_gvp->gv_rotation);
bu_vls_printf(gedp->ged_result_str, "viewsize %.15e;\n", gedp->ged_gvp->gv_size);
bu_vls_printf(gedp->ged_result_str, "orientation %.15e %.15e %.15e %.15e;\n",
V4ARGS(quat));
bu_vls_printf(gedp->ged_result_str, "eye_pt %.15e %.15e %.15e;\n",
eye_model[X], eye_model[Y], eye_model[Z]);
return GED_OK;
}
开发者ID:kanzure,项目名称:brlcad,代码行数:37,代码来源:get_eyemodel.c
示例2: ged_echo
int
ged_echo(struct ged *gedp, int argc, const char *argv[])
{
int i;
static const char *usage = "args";
GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
/* initialize result */
bu_vls_trunc(gedp->ged_result_str, 0);
/* must be wanting help */
if (argc == 1) {
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_HELP;
}
for (i = 1; i < argc; i++) {
bu_vls_printf(gedp->ged_result_str, "%s%s", i == 1 ? "" : " ", argv[i]);
}
bu_vls_printf(gedp->ged_result_str, "\n");
return GED_OK;
}
开发者ID:behollis,项目名称:brlcad-svn-rev65072-gsoc2015,代码行数:27,代码来源:echo.c
示例3: str2mm
/*
* Validate points data file unit string and output conversion factor
* to millimeters. If string is not a standard units identifier, the
* function assumes a custom conversion factor was specified. A valid
* null terminated string is expected as input. The function returns
* GED_ERROR if the unit string is invalid or if null pointers were
* passed to the function.
*/
int
str2mm(const char *units_string, double *conv_factor, struct bu_vls *ged_result_str)
{
struct bu_vls str = BU_VLS_INIT_ZERO;
double tmp_value = 0.0;
char *endp = (char *)NULL;
int ret = GED_OK;
if ((units_string == (char *)NULL) || (conv_factor == (double *)NULL)) {
bu_vls_printf(ged_result_str, "NULL pointer(s) passed to function 'str2mm'.\n");
ret = GED_ERROR;
} else {
bu_vls_strcat(&str, units_string);
bu_vls_trimspace(&str);
tmp_value = strtod(bu_vls_addr(&str), &endp);
if ((endp != bu_vls_addr(&str)) && (*endp == '\0')) {
/* convert to double success */
*conv_factor = tmp_value;
} else if ((tmp_value = bu_mm_value(bu_vls_addr(&str))) > 0.0) {
*conv_factor = tmp_value;
} else {
bu_vls_printf(ged_result_str, "Invalid units string '%s'\n", units_string);
ret = GED_ERROR;
}
}
bu_vls_free(&str);
return ret;
}
开发者ID:kanzure,项目名称:brlcad,代码行数:39,代码来源:make_pnts.c
示例4: ged_form
int
ged_form(struct ged *gedp, int argc, const char *argv[])
{
const struct rt_functab *ftp;
static const char *usage = "type";
GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
/* initialize result */
bu_vls_trunc(gedp->ged_result_str, 0);
/* must be wanting help */
if (argc == 1) {
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_HELP;
}
if (argc != 2) {
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_ERROR;
}
if ((ftp = rt_get_functab_by_label(argv[1])) == NULL) {
bu_vls_printf(gedp->ged_result_str, "There is no geometric object type \"%s\".", argv[1]);
return GED_ERROR;
}
if (!ftp->ft_form) {
return GED_ERROR;
}
return ftp->ft_form(gedp->ged_result_str, ftp);
}
开发者ID:cogitokat,项目名称:brlcad,代码行数:34,代码来源:form.c
示例5: pr_wait_status
/*
* P R _ W A I T _ S T A T U S
*
* Interpret the status return of a wait() system call,
* for the edification of the watching luser.
* Warning: This may be somewhat system specific, most especially
* on non-UNIX machines.
*/
static void
pr_wait_status(Tcl_Interp *interp,
int status)
{
int sig = status & 0x7f;
int core = status & 0x80;
int ret = status >> 8;
struct bu_vls tmp_vls = BU_VLS_INIT_ZERO;
if (status == 0) {
Tcl_AppendResult(interp, "Normal exit\n", (char *)NULL);
return;
}
bu_vls_printf(&tmp_vls, "Abnormal exit x%x", status);
if (core)
bu_vls_printf(&tmp_vls, ", core dumped");
if (sig)
bu_vls_printf(&tmp_vls, ", terminating signal = %d", sig);
else
bu_vls_printf(&tmp_vls, ", return (exit) code = %d", ret);
Tcl_AppendResult(interp, bu_vls_addr(&tmp_vls), "\n", (char *)NULL);
bu_vls_free(&tmp_vls);
}
开发者ID:cogitokat,项目名称:brlcad,代码行数:35,代码来源:wdb_nirt.c
示例6: save_comb
static const char *
save_comb(struct ged *gedp, struct directory *dpold)
{
/* Save a combination under a temporary name */
struct directory *dp;
struct rt_db_internal intern;
/* Make a new name */
const char *name = mktemp_comb(gedp, tmpcomb);
if (rt_db_get_internal(&intern, dpold, gedp->ged_wdbp->dbip, (fastf_t *)NULL, &rt_uniresource) < 0) {
bu_vls_printf(gedp->ged_result_str, "save_comb: Database read error, aborting\n");
return NULL;
}
if ((dp = db_diradd(gedp->ged_wdbp->dbip, name, RT_DIR_PHONY_ADDR, 0, dpold->d_flags, (genptr_t)&intern.idb_type)) == RT_DIR_NULL) {
bu_vls_printf(gedp->ged_result_str, "save_comb: Cannot save copy of %s, no changed made\n", dpold->d_namep);
return NULL;
}
if (rt_db_put_internal(dp, gedp->ged_wdbp->dbip, &intern, &rt_uniresource) < 0) {
bu_vls_printf(gedp->ged_result_str, "save_comb: Cannot save copy of %s, no changed made\n", dpold->d_namep);
return NULL;
}
return name;
}
开发者ID:cogitokat,项目名称:brlcad,代码行数:28,代码来源:put_comb.c
示例7: fbo_getcursor_tcl
/*
*
* Usage:
* procname getcursor
*/
HIDDEN int
fbo_getcursor_tcl(ClientData clientData, Tcl_Interp *interp, int argc, char **argv)
{
struct fb_obj *fbop = (struct fb_obj *)clientData;
int status;
int mode;
int x, y;
struct bu_vls vls;
if (argc != 2) {
bu_vls_init(&vls);
bu_vls_printf(&vls, "helplib fb_getcursor");
Tcl_Eval(interp, bu_vls_addr(&vls));
bu_vls_free(&vls);
return TCL_ERROR;
}
status = fb_getcursor(fbop->fbo_fbs.fbs_fbp, &mode, &x, &y);
if (status == 0) {
bu_vls_init(&vls);
bu_vls_printf(&vls, "%d %d %d", mode, x, y);
Tcl_AppendResult(interp, bu_vls_addr(&vls), (char *)NULL);
bu_vls_free(&vls);
return TCL_OK;
}
return TCL_ERROR;
}
开发者ID:cciechad,项目名称:brlcad,代码行数:34,代码来源:fb_obj.c
示例8: ged_zoom
int
ged_zoom(struct ged *gedp, int argc, const char *argv[])
{
int ret;
double sf = 1.0;
GED_CHECK_VIEW(gedp, GED_ERROR);
GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
/* initialize result */
bu_vls_trunc(gedp->ged_result_str, 0);
/* must be wanting help */
if (argc != 2) {
bu_vls_printf(gedp->ged_result_str, "Usage: %s scale_factor", argv[0]);
return (argc == 1) ? GED_HELP : GED_ERROR;
}
/* get the scale factor */
ret = sscanf(argv[1], "%lf", &sf);
if (ret != 1 || sf < SMALL_FASTF || sf > INFINITY) {
bu_vls_printf(gedp->ged_result_str, "ERROR: bad scale factor [%s]", argv[1]);
return GED_ERROR;
}
return zoom(gedp, sf);
}
开发者ID:behollis,项目名称:brlcad-svn-rev65072-gsoc2015,代码行数:27,代码来源:zoom.c
示例9: create_cyl
/* FIXME: not verified in the least bit */
static int
create_cyl(point_line_t **plta, int count) {
int i;
point_line_t *plt = NULL;
const char *result;
struct bu_vls vls = BU_VLS_INIT_ZERO;
struct bu_vls vls2 = BU_VLS_INIT_ZERO;
for (i = 0; i < count; i++) {
plt = &(*plta)[i];
if (plt && plt->type)
bu_vls_printf(&vls, "{ %f %f %f } ", plt->val[X], plt->val[Y], plt->val[Z]);
}
bu_vls_printf(&vls2, "cylinder { %s }", bu_vls_addr(&vls));
#if PRINT_SCRIPT
fprintf(stderr, "%s\n", bu_vls_addr(&vls2));
#endif
#if RUN_SCRIPT
Tcl_Eval(twerp, bu_vls_addr(&vls2));
result = Tcl_GetStringResult(twerp);
if (result && result[0] != '\0')
bu_log("create_cyl failure: %s\n", result);
else
bu_log("create_cyl created\n");
#endif
return 1;
}
开发者ID:kanzure,项目名称:brlcad,代码行数:30,代码来源:process.c
示例10: create_cyl
/* FIXME: not verified in the least bit */
static int
create_cyl(point_line_t **plta, int count) {
int i;
point_line_t *plt = NULL;
struct bu_vls vls;
struct bu_vls vls2;
bu_vls_init(&vls);
bu_vls_init(&vls2);
for (i = 0; i < count; i++) {
plt = &(*plta)[i];
if (plt && plt->type)
bu_vls_printf(&vls, "{ %f %f %f } ", plt->val[X], plt->val[Y], plt->val[Z]);
}
bu_vls_printf(&vls2, "cylinder { %S }", &vls);
#if PRINT_SCRIPT
fprintf(stderr, "%s\n", bu_vls_addr(&vls2));
#endif
#if RUN_SCRIPT
Tcl_Eval(twerp, bu_vls_addr(&vls2));
if (twerp->result[0] != '\0')
bu_log("create_cyl failure: %s\n", twerp->result);
else
bu_log("create_cyl created\n");
#endif
return 1;
}
开发者ID:cciechad,项目名称:brlcad,代码行数:31,代码来源:process.c
示例11: ged_debuglib
int
ged_debuglib(struct ged *gedp, int argc, const char *argv[])
{
static const char *usage = "[hex_code]";
GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
/* initialize result */
bu_vls_trunc(gedp->ged_result_str, 0);
if (argc > 2) {
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_ERROR;
}
/* get librt's debug bit vector */
if (argc == 1) {
bu_vls_printb(gedp->ged_result_str, "Possible flags", 0xffffffffL, DEBUG_FORMAT);
bu_vls_printf(gedp->ged_result_str, "\n");
} else {
/* set librt's debug bit vector */
if (sscanf(argv[1], "%x", (unsigned int *)&rt_g.debug) != 1) {
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_ERROR;
}
if (RT_G_DEBUG) bu_debug |= BU_DEBUG_COREDUMP;
}
bu_vls_printb(gedp->ged_result_str, "librt RT_G_DEBUG", RT_G_DEBUG, DEBUG_FORMAT);
bu_vls_printf(gedp->ged_result_str, "\n");
return GED_OK;
}
开发者ID:cogitokat,项目名称:brlcad,代码行数:35,代码来源:debuglib.c
示例12: node_write
/*
* Supports for the 'keep' method.
* Write each node encountered exactly once.
*/
HIDDEN void
node_write(struct db_i *dbip, struct directory *dp, void *ptr)
{
struct keep_node_data *kndp = (struct keep_node_data *)ptr;
struct rt_db_internal intern;
RT_CK_WDB(kndp->wdbp);
if (dp->d_nref++ > 0)
return; /* already written */
if (rt_db_get_internal(&intern, dp, dbip, NULL, &rt_uniresource) < 0) {
bu_vls_printf(kndp->gedp->ged_result_str, "Database read error, aborting\n");
return;
}
if (dp->d_major_type == DB5_MAJORTYPE_BRLCAD && dp->d_minor_type == DB5_MINORTYPE_BRLCAD_EXTRUDE) {
/* if this is an extrusion, keep the referenced sketch */
struct rt_extrude_internal *extr;
struct directory *dp2;
extr = (struct rt_extrude_internal *)intern.idb_ptr;
RT_EXTRUDE_CK_MAGIC(extr);
if ((dp2 = db_lookup(dbip, extr->sketch_name, LOOKUP_QUIET)) != RT_DIR_NULL) {
node_write(dbip, dp2, ptr);
}
} else if (dp->d_major_type == DB5_MAJORTYPE_BRLCAD && dp->d_minor_type == DB5_MINORTYPE_BRLCAD_REVOLVE) {
/* if this is a revolve, keep the referenced sketch */
struct rt_revolve_internal *rev;
struct directory *dp2;
rev = (struct rt_revolve_internal *)intern.idb_ptr;
RT_REVOLVE_CK_MAGIC(rev);
if ((dp2 = db_lookup(dbip, bu_vls_addr(&rev->sketch_name), LOOKUP_QUIET)) != RT_DIR_NULL) {
node_write(dbip, dp2, ptr);
}
} else if (dp->d_major_type == DB5_MAJORTYPE_BRLCAD && dp->d_minor_type == DB5_MINORTYPE_BRLCAD_DSP) {
/* if this is a DSP, keep the referenced binary object too */
struct rt_dsp_internal *dsp;
struct directory *dp2;
dsp = (struct rt_dsp_internal *)intern.idb_ptr;
RT_DSP_CK_MAGIC(dsp);
if (dsp->dsp_datasrc == RT_DSP_SRC_OBJ) {
/* need to keep this object */
if ((dp2 = db_lookup(dbip, bu_vls_addr(&dsp->dsp_name), LOOKUP_QUIET)) != RT_DIR_NULL) {
node_write(dbip, dp2, ptr);
}
}
}
if (wdb_put_internal(kndp->wdbp, dp->d_namep, &intern, 1.0) < 0) {
bu_vls_printf(kndp->gedp->ged_result_str, "Database write error, aborting\n");
return;
}
}
开发者ID:kanzure,项目名称:brlcad,代码行数:63,代码来源:keep.c
示例13: primary
/* The code below starts the part that still needs reworking for the
* new geometry based tokens/logic */
static int
primary(enum token n, struct exists_data *ed)
{
enum token nn;
int res;
if (n == EOI)
return 0; /* missing expression */
if (n == LPAREN) {
ed->t_wp_op = NULL;
if ((nn = t_lex(*++(ed->t_wp), ed)) == RPAREN)
return 0; /* missing expression */
res = oexpr(nn, ed);
if (t_lex(*++(ed->t_wp), ed) != RPAREN) {
bu_vls_printf(ed->message , "closing paren expected");
return 0;
}
return res;
}
if (ed->t_wp_op && ed->t_wp_op->op_type == UNOP) {
/* unary expression */
if (!ed->no_op) {
if (*++(ed->t_wp) == NULL) {
bu_vls_printf(ed->message , "argument expected");
return 0;
}
}
switch (n) {
case OCOMB:
bu_log("comb case");
/*return is_comb();*/
case OEXIST:
return db_object_exists(ed);
/*return db_lookup();*/
case ONULL:
bu_log("null case");
/*return is_null();*/
case ONNULL:
/* default case */
return db_object_exists_and_non_null(ed);
case OPRIM:
bu_log("primitive case");
/*return is_prim();*/
case OBVOL:
bu_log("bounding volume case");
/*return has_vol();*/
default:
/* not reached */
return 0;
}
}
if (t_lex(ed->t_wp[1], ed), ed->t_wp_op && ed->t_wp_op->op_type == BINOP) {
return binop(ed);
}
return 0;
}
开发者ID:kanzure,项目名称:brlcad,代码行数:60,代码来源:exists.c
示例14: count_nodes
static int
count_nodes(struct ged *gedp, char *line)
{
char *ptr;
char *name;
char relation;
int node_count=0;
/* sanity */
if (line == NULL)
return 0;
ptr = strtok(line, _delims);
while (ptr) {
/* First non-white is the relation operator */
relation = (*ptr);
if (relation != '+' && relation != 'u' && relation != '-') {
bu_vls_printf(gedp->ged_result_str, " %c is not a legal operator\n", relation);
return -1;
}
/* Next must be the member name */
name = strtok((char *)NULL, _delims);
if (name == NULL) {
bu_vls_printf(gedp->ged_result_str, " operand name missing\n");
return -1;
}
ptr = strtok((char *)NULL, _delims);
/*
* If this token is not a boolean operator, then it must be the start
* of a matrix which we will skip.
*/
if (ptr && !((*ptr == 'u' || *ptr == '-' || *ptr == '+') &&
*(ptr+1) == '\0')) {
int k;
/* skip past matrix, k = 1 because we already have the first value */
for (k = 1; k < 16; k++) {
ptr = strtok((char *)NULL, _delims);
if (!ptr) {
bu_vls_printf(gedp->ged_result_str, "expecting a matrix\n");
return -1;
}
}
/* get the next relational operator on the current line */
ptr = strtok((char *)NULL, _delims);
}
node_count++;
}
return node_count;
}
开发者ID:cogitokat,项目名称:brlcad,代码行数:58,代码来源:put_comb.c
示例15: rt_pr_pt_vls
void
rt_pr_pt_vls(struct bu_vls *v, const struct rt_i *rtip, register const struct partition *pp)
{
register const struct soltab *stp;
register struct seg **segpp;
RT_CHECK_RTI(rtip);
RT_CHECK_PT(pp);
BU_CK_VLS(v);
bu_log_indent_vls(v);
bu_vls_printf(v, "%p: PT ", (void *)pp);
stp = pp->pt_inseg->seg_stp;
bu_vls_printf(v, "%s (%s#%ld) ",
stp->st_dp->d_namep,
OBJ[stp->st_id].ft_name+3,
stp->st_bit);
stp = pp->pt_outseg->seg_stp;
bu_vls_printf(v, "%s (%s#%ld) ",
stp->st_dp->d_namep,
OBJ[stp->st_id].ft_name+3,
stp->st_bit);
bu_vls_printf(v, "(%g, %g)",
pp->pt_inhit->hit_dist, pp->pt_outhit->hit_dist);
if (pp->pt_inflip) bu_vls_strcat(v, " Iflip");
if (pp->pt_outflip) bu_vls_strcat(v, " Oflip");
bu_vls_strcat(v, "\n");
rt_pr_hit_vls(v, " In", pp->pt_inhit);
rt_pr_hit_vls(v, " Out", pp->pt_outhit);
bu_log_indent_vls(v);
bu_vls_strcat(v, " Primitives: ");
for (BU_PTBL_FOR(segpp, (struct seg **), &pp->pt_seglist)) {
stp = (*segpp)->seg_stp;
RT_CK_SOLTAB(stp);
bu_vls_strcat(v, stp->st_dp->d_namep);
bu_vls_strcat(v, ", ");
}
bu_vls_strcat(v, "\n");
bu_log_indent_vls(v);
bu_vls_strcat(v, " Untrimmed Segments spanning this interval:\n");
bu_log_indent_delta(4);
for (BU_PTBL_FOR(segpp, (struct seg **), &pp->pt_seglist)) {
RT_CK_SEG(*segpp);
rt_pr_seg_vls(v, *segpp);
}
bu_log_indent_delta(-4);
if (pp->pt_regionp) {
RT_CK_REGION(pp->pt_regionp);
bu_log_indent_vls(v);
bu_vls_printf(v, " Region: %s\n", pp->pt_regionp->reg_name);
}
}
开发者ID:kanzure,项目名称:brlcad,代码行数:58,代码来源:pr.c
示例16: ged_illum
/*
* Illuminate/highlight database object
*
* Usage:
* illum [-n] obj
*
*/
int
ged_illum(struct ged *gedp, int argc, const char *argv[])
{
struct display_list *gdlp;
struct display_list *next_gdlp;
int found = 0;
int illum = 1;
static const char *usage = "[-n] obj";
GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
GED_CHECK_DRAWABLE(gedp, GED_ERROR);
GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
/* initialize result */
bu_vls_trunc(gedp->ged_result_str, 0);
/* must be wanting help */
if (argc == 1) {
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_HELP;
}
if (argc == 3) {
if (argv[1][0] == '-' && argv[1][1] == 'n')
illum = 0;
else
goto bad;
--argc;
++argv;
}
if (argc != 2)
goto bad;
gdlp = BU_LIST_NEXT(display_list, gedp->ged_gdp->gd_headDisplay);
while (BU_LIST_NOT_HEAD(gdlp, gedp->ged_gdp->gd_headDisplay)) {
next_gdlp = BU_LIST_PNEXT(display_list, gdlp);
found += dl_set_illum(gdlp, argv[1], illum);
gdlp = next_gdlp;
}
if (!found) {
bu_vls_printf(gedp->ged_result_str, "illum: %s not found", argv[1]);
return GED_ERROR;
}
return GED_OK;
bad:
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_ERROR;
}
开发者ID:behollis,项目名称:brlcad-svn-rev65072-gsoc2015,代码行数:63,代码来源:illum.c
示例17: compare_attrs
int
compare_attrs(struct directory *dp1, struct directory *dp2)
{
struct bu_vls vls = BU_VLS_INIT_ZERO;
Tcl_Obj *obj1, *obj2;
int different = 0;
if (db_version(dbip1) > 4) {
bu_vls_printf(&vls, "_db1 attr get %s", dp1->d_namep);
if (Tcl_Eval(INTERP, bu_vls_addr(&vls)) != TCL_OK) {
fprintf(stderr, "Cannot get attributes for %s\n", dp1->d_namep);
fprintf(stderr, "%s\n", Tcl_GetStringResult(INTERP));
bu_exit(1, NULL);
}
obj1 = Tcl_DuplicateObj(Tcl_GetObjResult(INTERP));
Tcl_ResetResult(INTERP);
if (dp1->d_flags & RT_DIR_REGION && verify_region_attribs) {
verify_region_attrs(dp1, dbip1, obj1);
}
} else {
obj1 = Tcl_NewObj();
}
if (db_version(dbip2) > 4) {
bu_vls_trunc(&vls, 0);
bu_vls_printf(&vls, "_db2 attr get %s", dp1->d_namep);
if (Tcl_Eval(INTERP, bu_vls_addr(&vls)) != TCL_OK) {
fprintf(stderr, "Cannot get attributes for %s\n", dp1->d_namep);
fprintf(stderr, "%s\n", Tcl_GetStringResult(INTERP));
bu_exit(1, NULL);
}
obj2 = Tcl_DuplicateObj(Tcl_GetObjResult(INTERP));
Tcl_ResetResult(INTERP);
if (dp1->d_flags & RT_DIR_REGION && verify_region_attribs) {
verify_region_attrs(dp2, dbip2, obj2);
}
} else {
obj2 = Tcl_NewObj();
}
if ((dp1->d_flags & RT_DIR_REGION) && (dp2->d_flags & RT_DIR_REGION)) {
/* don't complain about "region" attributes */
remove_region_attrs(obj1);
remove_region_attrs(obj2);
}
bu_vls_trunc(&vls, 0);
different = do_compare(ATTRS, &vls, obj1, obj2, dp1->d_namep);
printf("%s", bu_vls_addr(&vls));
bu_vls_free(&vls);
return different;
}
开发者ID:kanzure,项目名称:brlcad,代码行数:56,代码来源:gdiff.c
示例18: constraint_usage
HIDDEN void
constraint_usage(struct bu_vls *vp, const char *argv0)
{
static const char *usage1 = "set constraint_name [expression]";
static const char *usage2 = "{get|show|eval} constraint_name1 [constraint_name2 ...]";
bu_vls_printf(vp, "Usage: %s %s\n", argv0, usage1);
bu_vls_printf(vp, " or %s %s\n", argv0, usage2);
bu_vls_printf(vp, " or %s help [command]\n", argv0);
}
开发者ID:behollis,项目名称:brlcad-svn-rev65072-gsoc2015,代码行数:10,代码来源:constraint.c
示例19: rt_metaball_adjust
/**
* used for db put/asc2g
*/
int
rt_metaball_adjust(struct bu_vls *logstr, struct rt_db_internal *intern, int argc, const char **argv)
{
struct rt_metaball_internal *mb;
const char *pts;
const char *pend;
double thresh;
if (argc != 3) {
bu_vls_printf(logstr, "Invalid number of arguments: %d\n", argc);
return BRLCAD_ERROR;
}
RT_CK_DB_INTERNAL(intern);
mb = (struct rt_metaball_internal *)intern->idb_ptr;
RT_METABALL_CK_MAGIC(mb);
if ( strlen(*argv) != 1 || (**argv < '0' || **argv > '2') ) {
bu_vls_printf(logstr, "Invalid method type, must be one of 0, 1, or 2.");
return BRLCAD_ERROR;
}
mb->method = *argv[0] - '0';
sscanf(argv[1], "%lG", &thresh);
mb->threshold = thresh;
BU_LIST_INIT(&mb->metaball_ctrl_head);
pts = argv[2];
pend = pts + strlen(pts);
while (1) {
int len;
double xyz[3];
double fldstr, goo;
point_t loc;
const point_t *locp = (const point_t *)&loc;
while ( pts < pend && *pts != '{' ) ++pts;
if (pts >= pend) break;
len = sscanf(pts, "{%lG %lG %lG %lG %lG}", &xyz[0], &xyz[1], &xyz[2], &fldstr, &goo);
VMOVE(loc, xyz);
if (len == EOF) break;
if (len != 5) {
bu_vls_printf(logstr, "Failed to parse point information: \"%s\"", pts);
return BRLCAD_ERROR;
}
pts++;
if (rt_metaball_add_point (mb, locp, fldstr, goo)) {
bu_vls_printf(logstr, "Failure adding point: {%f %f %f %f %f}", V3ARGS(loc), fldstr, goo);
return BRLCAD_ERROR;
}
}
return BRLCAD_OK;
}
开发者ID:behollis,项目名称:brlcad-svn-rev65072-gsoc2015,代码行数:58,代码来源:metaball.c
示例20: rt_pr_fallback_angle
void
rt_pr_fallback_angle(struct bu_vls *str, const char *prefix, const double *angles)
{
BU_CK_VLS(str);
bu_vls_printf(str, "%s direction cosines=(%1.f, %1.f, %1.f)\n",
prefix, INTCLAMP(angles[0]), INTCLAMP(angles[1]), INTCLAMP(angles[2]));
bu_vls_printf(str, "%s rotation angle=%1.f, fallback angle=%1.f\n",
prefix, INTCLAMP(angles[3]), INTCLAMP(angles[4]));
}
开发者ID:kanzure,项目名称:brlcad,代码行数:11,代码来源:pr.c
注:本文中的bu_vls_printf函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论