[brlcad-commits] SF.net SVN: brlcad:[31858] brlcad/trunk/src/libged
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <bo...@us...> - 2008-07-17 11:57:50
|
Revision: 31858 http://brlcad.svn.sourceforge.net/brlcad/?rev=31858&view=rev Author: bob1961 Date: 2008-07-17 11:57:38 +0000 (Thu, 17 Jul 2008) Log Message: ----------- Initial check-in. Added Paths: ----------- brlcad/trunk/src/libged/perspective.c brlcad/trunk/src/libged/rmat.c Added: brlcad/trunk/src/libged/perspective.c =================================================================== --- brlcad/trunk/src/libged/perspective.c (rev 0) +++ brlcad/trunk/src/libged/perspective.c 2008-07-17 11:57:38 UTC (rev 31858) @@ -0,0 +1,88 @@ +/* P E R S P E C T I V E . C + * BRL-CAD + * + * Copyright (c) 2008 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ +/** @file perspective.c + * + * The perspective command. + * + */ + +#include "common.h" + +#include <stdlib.h> +#include <ctype.h> +#include <string.h> + +#include "ged_private.h" + + +int +ged_perspective(struct ged *gedp, int argc, const char *argv[]) +{ + fastf_t perspective; + static const char *usage = "[angle]"; + + GED_CHECK_DATABASE_OPEN(gedp, BRLCAD_ERROR); + GED_CHECK_VIEW(gedp, BRLCAD_ERROR); + + /* initialize result */ + bu_vls_trunc(&gedp->ged_result_str, 0); + gedp->ged_result = GED_RESULT_NULL; + gedp->ged_result_flags = 0; + + /* get the perspective angle */ + if (argc == 1) { + bu_vls_printf(&gedp->ged_result_str, "%g", gedp->ged_gvp->gv_perspective); + return BRLCAD_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 BRLCAD_ERROR; + } + + gedp->ged_gvp->gv_perspective = perspective; +#if 1 + /* This way works, with reasonable Z-clipping */ + ged_persp_mat(gedp->ged_gvp->gv_pmat, gedp->ged_gvp->gv_perspective, + 1.0, 0.01, 1.0e10, 1.0); +#else + ged_mike_persp_mat(gedp->ged_gvp->gv_pmat, gedp->ged_gvp->gv_eye_pos); +#endif + ged_view_update(gedp->ged_gvp); + + return BRLCAD_OK; + } + + bu_vls_printf(&gedp->ged_result_str, "Usage: %s %s", argv[0], usage); + return BRLCAD_ERROR; +} + + +/* + * Local Variables: + * tab-width: 8 + * mode: C + * indent-tabs-mode: t + * c-file-style: "stroustrup" + * End: + * ex: shiftwidth=4 tabstop=8 + */ Property changes on: brlcad/trunk/src/libged/perspective.c ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: brlcad/trunk/src/libged/rmat.c =================================================================== --- brlcad/trunk/src/libged/rmat.c (rev 0) +++ brlcad/trunk/src/libged/rmat.c 2008-07-17 11:57:38 UTC (rev 31858) @@ -0,0 +1,76 @@ +/* R M A T . C + * BRL-CAD + * + * Copyright (c) 2008 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ +/** @file rmat.c + * + * The rmat command. + * + */ + +#include "common.h" + +#include <stdlib.h> +#include <ctype.h> +#include <string.h> + +#include "ged_private.h" + + +int +ged_rmat(struct ged *gedp, int argc, const char *argv[]) +{ + mat_t rotation; + + GED_CHECK_DATABASE_OPEN(gedp, BRLCAD_ERROR); + GED_CHECK_VIEW(gedp, BRLCAD_ERROR); + + /* initialize result */ + bu_vls_trunc(&gedp->ged_result_str, 0); + gedp->ged_result = GED_RESULT_NULL; + gedp->ged_result_flags = 0; + + /* get the rotation matrix */ + if (argc == 1) { + bn_encode_mat(&gedp->ged_result_str, gedp->ged_gvp->gv_rotation); + return BRLCAD_OK; + } else if (argc == 2) { + /* set rotation matrix */ + if (bn_decode_mat(rotation, argv[1]) != 16) + return BRLCAD_ERROR; + + MAT_COPY(gedp->ged_gvp->gv_rotation, rotation); + ged_view_update(gedp->ged_gvp); + + return TCL_OK; + } + + bu_vls_printf(&gedp->ged_result_str, "Usage: %s", argv[0]); + return BRLCAD_ERROR; +} + + +/* + * Local Variables: + * tab-width: 8 + * mode: C + * indent-tabs-mode: t + * c-file-style: "stroustrup" + * End: + * ex: shiftwidth=4 tabstop=8 + */ Property changes on: brlcad/trunk/src/libged/rmat.c ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |