本文整理汇总了C++中bu_vls_trunc函数的典型用法代码示例。如果您正苦于以下问题:C++ bu_vls_trunc函数的具体用法?C++ bu_vls_trunc怎么用?C++ bu_vls_trunc使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了bu_vls_trunc函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: ged_perspective
int
ged_perspective(struct ged *gedp, int argc, const char *argv[])
{
/* intentionally double for scan */
double perspective;
static const char *usage = "[angle]";
GED_CHECK_DATABASE_OPEN(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);
/* get the perspective angle */
if (argc == 1) {
bu_vls_printf(gedp->ged_result_str, "%g", gedp->ged_gvp->gv_perspective);
return GED_OK;
}
/* set perspective angle */
if (argc == 2) {
if (sscanf(argv[1], "%lf", &perspective) != 1) {
bu_vls_printf(gedp->ged_result_str, "bad perspective angle - %s", argv[1]);
return GED_ERROR;
}
gedp->ged_gvp->gv_perspective = perspective;
if (SMALL_FASTF < gedp->ged_gvp->gv_perspective) {
ged_persp_mat(gedp->ged_gvp->gv_pmat, gedp->ged_gvp->gv_perspective,
(fastf_t)1.0f, (fastf_t)0.01f, (fastf_t)1.0e10f, (fastf_t)1.0f);
} else {
MAT_COPY(gedp->ged_gvp->gv_pmat, bn_mat_identity);
}
ged_view_update(gedp->ged_gvp);
return GED_OK;
}
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_ERROR;
}
开发者ID:cogitokat,项目名称:brlcad,代码行数:44,代码来源:perspective.c
示例2: ged_size
int
ged_size(struct ged *gedp, int argc, const char *argv[])
{
/* intentionally double for scan */
double size;
static const char *usage = "[s]";
GED_CHECK_DATABASE_OPEN(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);
/* get view size */
if (argc == 1) {
bu_vls_printf(gedp->ged_result_str, "%g",
gedp->ged_gvp->gv_size * gedp->ged_wdbp->dbip->dbi_base2local);
return GED_OK;
}
/* set view size */
if (argc == 2) {
if (sscanf(argv[1], "%lf", &size) != 1
|| size <= 0
|| ZERO(size))
{
bu_vls_printf(gedp->ged_result_str, "bad size - %s", argv[1]);
return GED_ERROR;
}
gedp->ged_gvp->gv_size = gedp->ged_wdbp->dbip->dbi_local2base * size;
if (gedp->ged_gvp->gv_size < RT_MINVIEWSIZE)
gedp->ged_gvp->gv_size = RT_MINVIEWSIZE;
gedp->ged_gvp->gv_isize = 1.0 / gedp->ged_gvp->gv_size;
gedp->ged_gvp->gv_scale = 0.5 * gedp->ged_gvp->gv_size;
ged_view_update(gedp->ged_gvp);
return GED_OK;
}
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_ERROR;
}
开发者ID:kanzure,项目名称:brlcad,代码行数:44,代码来源:size.c
示例3: ged_quat
int
ged_quat(struct ged *gedp, int argc, const char *argv[])
{
quat_t quat;
double scan[4];
static const char *usage = "a b c d";
GED_CHECK_DATABASE_OPEN(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);
/* return Viewrot as a quaternion */
if (argc == 1) {
quat_mat2quat(quat, gedp->ged_gvp->gv_rotation);
bu_vls_printf(gedp->ged_result_str, "%.12g %.12g %.12g %.12g", V4ARGS(quat));
return GED_OK;
}
if (argc != 5) {
bu_vls_printf(gedp->ged_result_str, "Usage: view %s %s", argv[0], usage);
return GED_ERROR;
}
/* Set the view orientation given a quaternion */
if (sscanf(argv[1], "%lf", &scan[0]) != 1
|| sscanf(argv[2], "%lf", &scan[1]) != 1
|| sscanf(argv[3], "%lf", &scan[2]) != 1
|| sscanf(argv[4], "%lf", &scan[3]) != 1)
{
bu_vls_printf(gedp->ged_result_str, "view %s: bad value detected - %s %s %s %s",
argv[0], argv[1], argv[2], argv[3], argv[4]);
return GED_ERROR;
}
HMOVE(quat, scan);
quat_quat2mat(gedp->ged_gvp->gv_rotation, quat);
ged_view_update(gedp->ged_gvp);
return GED_OK;
}
开发者ID:cogitokat,项目名称:brlcad,代码行数:43,代码来源:quat.c
示例4: ged_reopen
int
ged_reopen(struct ged *gedp, int argc, const char *argv[])
{
struct db_i *dbip;
static const char *usage = "[filename]";
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);
/* get database filename */
if (argc == 1) {
bu_vls_printf(gedp->ged_result_str, "%s", gedp->ged_wdbp->dbip->dbi_filename);
return GED_OK;
}
/* set database filename */
if (argc == 2) {
char *av[2];
if ((dbip = _ged_open_dbip(argv[1], 0)) == DBI_NULL) {
bu_vls_printf(gedp->ged_result_str, "ged_reopen: failed to open %s\n", argv[1]);
return GED_ERROR;
}
av[0] = "zap";
av[1] = (char *)0;
ged_zap(gedp, 1, (const char **)av);
/* close current database */
db_close(gedp->ged_wdbp->dbip);
gedp->ged_wdbp->dbip = dbip;
bu_vls_printf(gedp->ged_result_str, "%s", gedp->ged_wdbp->dbip->dbi_filename);
return GED_OK;
}
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_ERROR;
}
开发者ID:cogitokat,项目名称:brlcad,代码行数:43,代码来源:open.c
示例5: ged_whatid
int
ged_whatid(struct ged *gedp, int argc, const char *argv[])
{
struct directory *dp;
struct rt_db_internal intern;
struct rt_comb_internal *comb;
static const char *usage = "region";
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 ((dp=db_lookup(gedp->ged_wdbp->dbip, argv[1], LOOKUP_NOISY)) == RT_DIR_NULL)
return GED_ERROR;
if (!(dp->d_flags & RT_DIR_REGION)) {
bu_vls_printf(gedp->ged_result_str, "%s is not a region", argv[1]);
return GED_ERROR;
}
if (rt_db_get_internal(&intern, dp, gedp->ged_wdbp->dbip, (fastf_t *)NULL, &rt_uniresource) < 0)
return GED_ERROR;
comb = (struct rt_comb_internal *)intern.idb_ptr;
bu_vls_printf(gedp->ged_result_str, "%ld", comb->region_id);
rt_db_free_internal(&intern);
return GED_OK;
}
开发者ID:cogitokat,项目名称:brlcad,代码行数:43,代码来源:whatid.c
示例6: ged_view2model
int
ged_view2model(struct ged *gedp, int argc, const char *argv[])
{
GED_CHECK_DATABASE_OPEN(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);
/* get the view2model matrix */
if (argc == 1) {
bn_encode_mat(gedp->ged_result_str, gedp->ged_gvp->gv_view2model);
return GED_OK;
}
bu_vls_printf(gedp->ged_result_str, "Usage: %s", argv[0]);
return GED_ERROR;
}
开发者ID:cogitokat,项目名称:brlcad,代码行数:19,代码来源:view2model.c
示例7: reassemble_argstr
HIDDEN void
reassemble_argstr(struct bu_vls *instr, struct bu_vls *outstr, option::Option *unknowns)
{
for (option::Option* opt = unknowns; opt; opt = opt->next()) {
int input_only = 0;
int output_only = 0;
char *inputcpy = NULL;
if (!instr || !outstr) return;
inputcpy = bu_strdup(opt->name);
if (!bu_strncmp(inputcpy, "--in-", 5)) input_only = 1;
if (!bu_strncmp(inputcpy, "--out-", 5)) output_only = 1;
char *equal_pos = strchr(inputcpy, '=');
if (equal_pos) {
struct bu_vls vopt = BU_VLS_INIT_ZERO;
struct bu_vls varg = BU_VLS_INIT_ZERO;
bu_vls_sprintf(&vopt, "%s", inputcpy);
bu_vls_trunc(&vopt, -1 * strlen(equal_pos));
bu_vls_sprintf(&varg, "%s", inputcpy);
bu_vls_nibble(&varg, strlen(inputcpy) - strlen(equal_pos) + 1);
if (!output_only) {
(bu_vls_strlen(&vopt) == 1) ? bu_vls_printf(instr, "-%s ", bu_vls_addr(&vopt)) : bu_vls_printf(instr, "%s ", bu_vls_addr(&vopt));
if (bu_vls_strlen(&varg)) bu_vls_printf(instr, "%s ", bu_vls_addr(&varg));
}
if (!input_only) {
(bu_vls_strlen(&vopt) == 1) ? bu_vls_printf(outstr, "-%s ", bu_vls_addr(&vopt)) : bu_vls_printf(outstr, "%s ", bu_vls_addr(&vopt));
if (bu_vls_strlen(&varg)) bu_vls_printf(outstr, "%s ", bu_vls_addr(&varg));
}
bu_vls_free(&vopt);
bu_vls_free(&varg);
} else {
if (!output_only) {
(strlen(opt->name) == 1) ? bu_vls_printf(instr, "-%s ", opt->name) : bu_vls_printf(instr, "%s ", opt->name);
if (opt->arg) bu_vls_printf(instr, "%s ", opt->arg);
}
if (!input_only) {
(strlen(opt->name) == 1) ? bu_vls_printf(outstr, "-%s ", opt->name) : bu_vls_printf(outstr, "%s ", opt->name);
if (opt->arg) bu_vls_printf(outstr, "%s ", opt->arg);
}
}
bu_free(inputcpy, "input cpy");
}
}
开发者ID:behollis,项目名称:brlcad-svn-rev65072-gsoc2015,代码行数:42,代码来源:gcv.cpp
示例8: ged_model2grid_lu
int
ged_model2grid_lu(struct ged *gedp, int argc, const char *argv[])
{
fastf_t f;
point_t view_pt;
point_t model_pt;
point_t mo_view_pt; /* model origin in view space */
point_t diff;
double scan[3];
static const char *usage = "x y z";
GED_CHECK_DATABASE_OPEN(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 != 4)
goto bad;
VSETALL(model_pt, 0.0);
MAT4X3PNT(mo_view_pt, gedp->ged_gvp->gv_model2view, model_pt);
if (sscanf(argv[1], "%lf", &scan[X]) != 1 ||
sscanf(argv[2], "%lf", &scan[Y]) != 1 ||
sscanf(argv[3], "%lf", &scan[Z]) != 1)
goto bad;
VSCALE(model_pt, scan, gedp->ged_wdbp->dbip->dbi_local2base);
MAT4X3PNT(view_pt, gedp->ged_gvp->gv_model2view, model_pt);
VSUB2(diff, view_pt, mo_view_pt);
f = gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local;
VSCALE(diff, diff, f);
bu_vls_printf(gedp->ged_result_str, "%.15e %.15e", diff[X], diff[Y]);
return GED_OK;
bad:
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_ERROR;
}
开发者ID:kanzure,项目名称:brlcad,代码行数:42,代码来源:model2grid_lu.c
示例9: ged_set_uplotOutputMode
/*
* Set/get the unix plot output mode
*
* Usage:
* set_uplotOutputMode [binary|text]
*
*/
int
ged_set_uplotOutputMode(struct ged *gedp, int argc, const char *argv[])
{
static const char *usage = "[binary|text]";
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);
if (argc > 2) {
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_ERROR;
}
/* Get the plot output mode */
if (argc == 1) {
if (gedp->ged_gdp->gd_uplotOutputMode == PL_OUTPUT_MODE_BINARY)
bu_vls_printf(gedp->ged_result_str, "binary");
else
bu_vls_printf(gedp->ged_result_str, "text");
return GED_OK;
}
if (argv[1][0] == 'b' &&
BU_STR_EQUAL("binary", argv[1]))
gedp->ged_gdp->gd_uplotOutputMode = PL_OUTPUT_MODE_BINARY;
else if (argv[1][0] == 't' &&
BU_STR_EQUAL("text", argv[1]))
gedp->ged_gdp->gd_uplotOutputMode = PL_OUTPUT_MODE_TEXT;
else {
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_ERROR;
}
return GED_OK;
}
开发者ID:cogitokat,项目名称:brlcad,代码行数:48,代码来源:set_uplotOutputMode.c
示例10: ged_log
int
ged_log(struct ged *gedp, int argc, const char *argv[])
{
static char *usage = "get|start|stop";
GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
GED_CHECK_READ_ONLY(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 (argv[1][0] == 'g' && BU_STR_EQUAL(argv[1], "get")) {
bu_vls_vlscatzap(gedp->ged_result_str, gedp->ged_log);
return GED_OK;
}
if (argv[1][0] == 's' && BU_STR_EQUAL(argv[1], "start")) {
bu_log_add_hook(log_hook, (void *)gedp->ged_log);
return GED_OK;
}
if (argv[1][0] == 's' && BU_STR_EQUAL(argv[1], "stop")) {
bu_log_delete_hook(log_hook, (void *)gedp->ged_log);
return GED_OK;
}
bu_log("Usage: %s %s ", argv[0], usage);
return GED_ERROR;
}
开发者ID:behollis,项目名称:brlcad-svn-rev65072-gsoc2015,代码行数:41,代码来源:log.c
示例11: ged_dump
int
ged_dump(struct ged *gedp, int argc, const char *argv[])
{
struct rt_wdb *op;
int ret;
static const char *usage = "file.g";
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 ((op = wdb_fopen(argv[1])) == RT_WDB_NULL) {
bu_vls_printf(gedp->ged_result_str, "dump: %s: cannot create", argv[1]);
return GED_ERROR;
}
ret = db_dump(op, gedp->ged_wdbp->dbip);
wdb_close(op);
if (ret < 0) {
bu_vls_printf(gedp->ged_result_str, "dump: %s: db_dump() error", argv[1]);
return GED_ERROR;
}
return GED_OK;
}
开发者ID:kanzure,项目名称:brlcad,代码行数:39,代码来源:dump.c
示例12: dup_dir_check
/**
*@brief
* Check a name against the global directory.
*/
static int
dup_dir_check(struct db_i *input_dbip, const char *name, off_t UNUSED(laddr), size_t UNUSED(len), int UNUSED(flags), void *ptr)
{
struct directory *dupdp;
struct bu_vls local = BU_VLS_INIT_ZERO;
struct dir_check_stuff *dcsp = (struct dir_check_stuff *)ptr;
if (dcsp->main_dbip == DBI_NULL)
return 0;
RT_CK_DBI(input_dbip);
/* Add the prefix, if any */
if (db_version(dcsp->main_dbip) < 5) {
if (dcsp->wdbp->wdb_ncharadd > 0) {
bu_vls_strncpy(&local, bu_vls_addr(&dcsp->wdbp->wdb_prestr), dcsp->wdbp->wdb_ncharadd);
bu_vls_strcat(&local, name);
} else {
bu_vls_strncpy(&local, name, _GED_V4_MAXNAME);
}
bu_vls_trunc(&local, _GED_V4_MAXNAME);
} else {
if (dcsp->wdbp->wdb_ncharadd > 0) {
bu_vls_vlscat(&local, &dcsp->wdbp->wdb_prestr);
bu_vls_strcat(&local, name);
} else {
bu_vls_strcat(&local, name);
}
}
/* Look up this new name in the existing (main) database */
if ((dupdp = db_lookup(dcsp->main_dbip, bu_vls_addr(&local), LOOKUP_QUIET)) != RT_DIR_NULL) {
/* Duplicate found, add it to the list */
dcsp->wdbp->wdb_num_dups++;
*dcsp->dup_dirp++ = dupdp;
}
bu_vls_free(&local);
return 0;
}
开发者ID:behollis,项目名称:brlcad-svn-rev65072-gsoc2015,代码行数:43,代码来源:dup.c
示例13: bu_units_strings_vls
struct bu_vls *
bu_units_strings_vls()
{
register const struct cvt_tab *tp;
struct bu_vls *vlsp;
double prev_val = 0.0;
BU_ALLOC(vlsp, struct bu_vls);
bu_vls_init(vlsp);
for (tp=bu_units_length_tab; tp->name[0]; tp++) {
if (ZERO(prev_val - tp->val))
continue;
bu_vls_printf(vlsp, "%s, ", tp->name);
prev_val = tp->val;
}
/* Remove the last ", " */
bu_vls_trunc(vlsp, -2);
return vlsp;
}
开发者ID:behollis,项目名称:brlcad-svn-rev65072-gsoc2015,代码行数:22,代码来源:units.c
示例14: ged_view2model_lu
int
ged_view2model_lu(struct ged *gedp, int argc, const char *argv[])
{
fastf_t sf;
point_t view_pt;
point_t model_pt;
double scan[3];
static const char *usage = "x y z";
GED_CHECK_DATABASE_OPEN(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 != 4)
goto bad;
if (sscanf(argv[1], "%lf", &scan[X]) != 1 ||
sscanf(argv[2], "%lf", &scan[Y]) != 1 ||
sscanf(argv[3], "%lf", &scan[Z]) != 1)
goto bad;
/* convert from double to fastf_t */
VMOVE(view_pt, scan);
sf = 1.0 / (gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
VSCALE(view_pt, view_pt, sf);
MAT4X3PNT(model_pt, gedp->ged_gvp->gv_view2model, view_pt);
VSCALE(model_pt, model_pt, gedp->ged_wdbp->dbip->dbi_base2local);
bn_encode_vect(gedp->ged_result_str, model_pt);
return GED_OK;
bad:
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_ERROR;
}
开发者ID:kanzure,项目名称:brlcad,代码行数:39,代码来源:view2model_lu.c
示例15: ged_model2view
/**
* Given a point in model space coordinates (in mm) convert it to view
* (screen) coordinates which must be scaled to correspond to actual
* screen coordinates. If no input coordinates are supplied, the
* model2view matrix is displayed.
*/
int
ged_model2view(struct ged *gedp, int argc, const char *argv[])
{
point_t view_pt;
double model_pt[3]; /* intentionally double for scan */
static const char *usage = "[x y z]";
GED_CHECK_DATABASE_OPEN(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);
/* get the model2view matrix */
if (argc == 1) {
bn_encode_mat(gedp->ged_result_str, gedp->ged_gvp->gv_model2view);
return GED_OK;
}
if (argc != 4) {
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_ERROR;
}
if (sscanf(argv[1], "%lf", &model_pt[X]) != 1
|| sscanf(argv[2], "%lf", &model_pt[Y]) != 1
|| sscanf(argv[3], "%lf", &model_pt[Z]) != 1)
{
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_ERROR;
}
MAT4X3PNT(view_pt, gedp->ged_gvp->gv_model2view, model_pt);
bn_encode_vect(gedp->ged_result_str, view_pt);
return GED_OK;
}
开发者ID:cogitokat,项目名称:brlcad,代码行数:44,代码来源:model2view.c
示例16: ged_view2model_vec
int
ged_view2model_vec(struct ged *gedp, int argc, const char *argv[])
{
point_t model_vec;
point_t view_vec;
mat_t inv_Viewrot;
double scan[3];
static const char *usage = "x y z";
GED_CHECK_DATABASE_OPEN(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 != 4)
goto bad;
if (sscanf(argv[1], "%lf", &scan[X]) != 1 ||
sscanf(argv[2], "%lf", &scan[Y]) != 1 ||
sscanf(argv[3], "%lf", &scan[Z]) != 1)
goto bad;
/* convert from double to fastf_t */
VMOVE(view_vec, scan);
bn_mat_inv(inv_Viewrot, gedp->ged_gvp->gv_rotation);
MAT4X3PNT(model_vec, inv_Viewrot, view_vec);
bn_encode_vect(gedp->ged_result_str, model_vec);
return GED_OK;
bad:
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_ERROR;
}
开发者ID:kanzure,项目名称:brlcad,代码行数:37,代码来源:view2model_vec.c
示例17: ged_rtabort
/*
* Abort the current raytrace processes.
*
* Usage:
* rtabort
*
*/
int
ged_rtabort(struct ged *gedp, int argc, const char *argv[])
{
struct ged_run_rt *rrp;
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);
if (argc != 1) {
bu_vls_printf(gedp->ged_result_str, "Usage: %s", argv[0]);
return GED_ERROR;
}
for (BU_LIST_FOR(rrp, ged_run_rt, &gedp->ged_gdp->gd_headRunRt.l)) {
bu_terminate(rrp->pid);
rrp->aborted = 1;
}
return GED_OK;
}
开发者ID:kanzure,项目名称:brlcad,代码行数:31,代码来源:rtabort.c
示例18: ged_redraw
int
ged_redraw(struct ged *gedp, int argc, const char *argv[])
{
int ret;
struct display_list *gdlp;
GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
GED_CHECK_DRAWABLE(gedp, GED_ERROR);
GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
RT_CHECK_DBI(gedp->ged_wdbp->dbip);
bu_vls_trunc(gedp->ged_result_str, 0);
if (argc == 1) {
/* redraw everything */
for (BU_LIST_FOR(gdlp, display_list, gedp->ged_gdp->gd_headDisplay))
{
ret = dl_redraw(gdlp, gedp->ged_wdbp->dbip, &gedp->ged_wdbp->wdb_initial_tree_state, gedp->ged_gvp, gedp->ged_create_vlist_callback);
if (ret < 0) {
bu_vls_printf(gedp->ged_result_str, "%s: redraw failure\n", argv[0]);
return GED_ERROR;
}
}
} else {
开发者ID:behollis,项目名称:brlcad-svn-rev65072-gsoc2015,代码行数:24,代码来源:draw.c
示例19: ged_otranslate
int
ged_otranslate(struct ged *gedp, int argc, const char *argv[])
{
struct directory *dp;
struct _ged_trace_data gtd;
struct rt_db_internal intern;
vect_t delta;
double scan[3];
mat_t dmat;
mat_t emat;
mat_t tmpMat;
mat_t invXform;
point_t rpp_min;
point_t rpp_max;
static const char *usage = "obj dx dy dz";
GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
GED_CHECK_READ_ONLY(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 != 5) {
bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
return GED_ERROR;
}
if (_ged_get_obj_bounds2(gedp, 1, argv+1, >d, rpp_min, rpp_max) == GED_ERROR)
return GED_ERROR;
dp = gtd.gtd_obj[gtd.gtd_objpos-1];
if (!(dp->d_flags & RT_DIR_SOLID)) {
if (_ged_get_obj_bounds(gedp, 1, argv+1, 1, rpp_min, rpp_max) == GED_ERROR)
return GED_ERROR;
}
if (sscanf(argv[2], "%lf", &scan[X]) != 1) {
bu_vls_printf(gedp->ged_result_str, "%s: bad x value - %s", argv[0], argv[2]);
return GED_ERROR;
}
if (sscanf(argv[3], "%lf", &scan[Y]) != 1) {
bu_vls_printf(gedp->ged_result_str, "%s: bad y value - %s", argv[0], argv[3]);
return GED_ERROR;
}
if (sscanf(argv[4], "%lf", &scan[Z]) != 1) {
bu_vls_printf(gedp->ged_result_str, "%s: bad z value - %s", argv[0], argv[4]);
return GED_ERROR;
}
MAT_IDN(dmat);
VSCALE(delta, scan, gedp->ged_wdbp->dbip->dbi_local2base);
MAT_DELTAS_VEC(dmat, delta);
bn_mat_inv(invXform, gtd.gtd_xform);
bn_mat_mul(tmpMat, invXform, dmat);
bn_mat_mul(emat, tmpMat, gtd.gtd_xform);
GED_DB_GET_INTERNAL(gedp, &intern, dp, emat, &rt_uniresource, GED_ERROR);
RT_CK_DB_INTERNAL(&intern);
GED_DB_PUT_INTERNAL(gedp, dp, &intern, &rt_uniresource, GED_ERROR);
return GED_OK;
}
开发者ID:cogitokat,项目名称:brlcad,代码行数:72,代码来源:otranslate.c
示例20: ged_unhide
int
ged_unhide(struct ged *gedp, int argc, const char *argv[])
{
struct directory *dp;
struct db_i *dbip;
struct bu_external ext;
struct bu_external tmp;
struct db5_raw_internal raw;
int i;
static const char *usage = "object(s)";
GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
GED_CHECK_READ_ONLY(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;
}
dbip = gedp->ged_wdbp->dbip;
if (db_version(dbip) < 5) {
bu_vls_printf(gedp->ged_result_str, "Database was created with a previous release of BRL-CAD.\nSelect \"Tools->Upgrade Database...\" to enable support for this feature.");
return GED_ERROR;
}
for (i = 1; i < argc; i++) {
if ((dp = db_lookup(dbip, argv[i], LOOKUP_NOISY)) == RT_DIR_NULL) {
continue;
}
RT_CK_DIR(dp);
BU_EXTERNAL_INIT(&ext);
if (db_get_external(&ext, dp, dbip) < 0) {
bu_vls_printf(gedp->ged_result_str, "db_get_external failed for %s\n", dp->d_namep);
continue;
}
if (db5_get_raw_internal_ptr(&raw, ext.ext_buf) == NULL) {
bu_vls_printf(gedp->ged_result_str, "db5_get_raw_internal_ptr() failed for %s\n", dp->d_namep);
bu_free_external(&ext);
continue;
}
raw.h_name_hidden = (unsigned char)(0x0);
BU_EXTERNAL_INIT(&tmp);
db5_export_object3(&tmp, DB5HDR_HFLAGS_DLI_APPLICATION_DATA_OBJECT,
dp->d_namep,
raw.h_name_hidden,
&raw.attributes,
&raw.body,
raw.major_type, raw.minor_type,
raw.a_zzz, raw.b_zzz);
bu_free_external(&ext);
if (db_put_external(&tmp, dp, dbip)) {
bu_vls_printf(gedp->ged_result_str, "db_put_external() failed for %s\n", dp->d_namep);
bu_free_external(&tmp);
continue;
}
bu_free_external(&tmp);
dp->d_flags &= (~RT_DIR_HIDDEN);
}
return GED_OK;
}
开发者ID:kanzure,项目名称:brlcad,代码行数:74,代码来源:unhide.c
注:本文中的bu_vls_trunc函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论