Thread: [brlcad-commits] SF.net SVN: brlcad:[32036] brlcad/trunk/src
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <bo...@us...> - 2008-07-29 11:49:11
|
Revision: 32036 http://brlcad.svn.sourceforge.net/brlcad/?rev=32036&view=rev Author: bob1961 Date: 2008-07-29 11:49:17 +0000 (Tue, 29 Jul 2008) Log Message: ----------- Update version to 7.13.0 Modified Paths: -------------- brlcad/trunk/src/archer/archer.bat brlcad/trunk/src/mged/mged.bat brlcad/trunk/src/util/rtwizard.bat Modified: brlcad/trunk/src/archer/archer.bat =================================================================== --- brlcad/trunk/src/archer/archer.bat 2008-07-29 11:22:25 UTC (rev 32035) +++ brlcad/trunk/src/archer/archer.bat 2008-07-29 11:49:17 UTC (rev 32036) @@ -24,7 +24,7 @@ REM Company: Survice Engineering SETLOCAL -SET CAD_VERSION=7.12.5 +SET CAD_VERSION=7.13.0 SET SAVE_CD=%CD% SET PATH=%~dp0 SET ARCHER=%~dp0archer Modified: brlcad/trunk/src/mged/mged.bat =================================================================== --- brlcad/trunk/src/mged/mged.bat 2008-07-29 11:22:25 UTC (rev 32035) +++ brlcad/trunk/src/mged/mged.bat 2008-07-29 11:49:17 UTC (rev 32036) @@ -24,7 +24,7 @@ REM Company: Survice Engineering SETLOCAL -SET CAD_VERSION=7.12.5 +SET CAD_VERSION=7.13.0 SET SAVE_CD=%CD% SET PATH=%~dp0 CD %PATH%\.. Modified: brlcad/trunk/src/util/rtwizard.bat =================================================================== --- brlcad/trunk/src/util/rtwizard.bat 2008-07-29 11:22:25 UTC (rev 32035) +++ brlcad/trunk/src/util/rtwizard.bat 2008-07-29 11:49:17 UTC (rev 32036) @@ -24,7 +24,7 @@ REM Company: Survice Engineering SETLOCAL -SET CAD_VERSION=7.12.5 +SET CAD_VERSION=7.13.0 SET SAVE_CD=%CD% SET PATH=%~dp0 CD %PATH%\.. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2008-07-29 15:25:15
|
Revision: 32058 http://brlcad.svn.sourceforge.net/brlcad/?rev=32058&view=rev Author: bob1961 Date: 2008-07-29 15:25:24 +0000 (Tue, 29 Jul 2008) Log Message: ----------- Added the importFg4Section command to libged. Modified Paths: -------------- brlcad/trunk/src/libged/importFg4Section.c brlcad/trunk/src/libtclcad/ged_obj.c Modified: brlcad/trunk/src/libged/importFg4Section.c =================================================================== --- brlcad/trunk/src/libged/importFg4Section.c 2008-07-29 15:21:33 UTC (rev 32057) +++ brlcad/trunk/src/libged/importFg4Section.c 2008-07-29 15:25:24 UTC (rev 32058) @@ -44,6 +44,7 @@ #include "raytrace.h" #include "wdb.h" #include "plot3.h" +#include "ged_private.h" static int grid_size; /* Number of points that will fit in current grid_pts array */ @@ -97,11 +98,11 @@ static point_t *grid_pts; -void do_grid(char *line); -void do_tri(char *line); -void do_quad(char *line); -void make_bot_object(char *name, - struct rt_wdb *wdbp); +static void do_grid(char *line); +static void do_tri(char *line); +static void do_quad(char *line); +static void make_bot_object(char *name, + struct rt_wdb *wdbp); /*************************** code from libwdb/bot.c ***************************/ @@ -204,7 +205,7 @@ /*************************** code from conv/fast4-g.c ***************************/ -void +static void do_grid(char *line) { int grid_no; @@ -245,7 +246,7 @@ bu_log( "ERROR: bu_mem_barriercheck failed at end of do_grid\n" ); } -void +static void Add_bot_face(int pt1, int pt2, int pt3, fastf_t thick, int pos) { @@ -300,7 +301,7 @@ bu_log( "memory corrupted at end of Add_bot_face()\n" ); } -void +static void do_tri(char *line) { int element_id; @@ -366,7 +367,7 @@ bu_log( "memory corrupted after call to Add_bot_face()\n" ); } -void +static void do_quad(char *line) { int element_id; @@ -427,7 +428,7 @@ Add_bot_face( pt1, pt3, pt4, thick, pos ); } -void +static void make_bot_object(char *name, struct rt_wdb *wdbp) { @@ -523,26 +524,34 @@ *(_cp) = '\0'; int -wdb_importFg4Section_cmd(struct rt_wdb *wdbp, - Tcl_Interp *interp, - int argc, - char *argv[]) +ged_importFg4Section(struct ged *gedp, int argc, const char *argv[]) { char *cp; char *line; char *lines; int eosFlag = 0; + static const char *usage = "obj section"; - if (argc != 3) { - struct bu_vls vls; + GED_CHECK_DATABASE_OPEN(gedp, BRLCAD_ERROR); + GED_CHECK_READ_ONLY(gedp, BRLCAD_ERROR); - bu_vls_init(&vls); - bu_vls_printf(&vls, "helplib_alias wdb_importFg4Section %s", argv[0]); - Tcl_Eval(interp, bu_vls_addr(&vls)); - bu_vls_free(&vls); - return TCL_ERROR; + /* initialize result */ + bu_vls_trunc(&gedp->ged_result_str, 0); + gedp->ged_result = GED_RESULT_NULL; + gedp->ged_result_flags = 0; + + /* must be wanting help */ + if (argc == 1) { + gedp->ged_result_flags |= GED_RESULT_FLAGS_HELP_BIT; + bu_vls_printf(&gedp->ged_result_str, "Usage: %s %s", argv[0], usage); + return BRLCAD_OK; } + if (argc != 3) { + bu_vls_printf(&gedp->ged_result_str, "Usage: %s %s", argv[0], usage); + return BRLCAD_ERROR; + } + grid_size = GRID_BLOCK; grid_pts = (point_t *)bu_malloc(grid_size * sizeof(point_t) , "importFg4Section: grid_pts"); @@ -586,7 +595,7 @@ do_quad(line); } - make_bot_object(argv[1], wdbp); + make_bot_object(argv[1], gedp->ged_wdbp); free((void *)lines); bu_free((void *)grid_pts, "importFg4Section: grid_pts"); Modified: brlcad/trunk/src/libtclcad/ged_obj.c =================================================================== --- brlcad/trunk/src/libtclcad/ged_obj.c 2008-07-29 15:21:33 UTC (rev 32057) +++ brlcad/trunk/src/libtclcad/ged_obj.c 2008-07-29 15:25:24 UTC (rev 32058) @@ -369,9 +369,7 @@ {"i", (char *)0, MAXARGS, go_pass_through_func, ged_instance}, {"idle_mode", "vname", MAXARGS, go_idle_mode, GED_FUNC_PTR_NULL}, {"illum", (char *)0, MAXARGS, go_pass_through_and_refresh_func, ged_illum}, -#if 0 {"importFg4Section", (char *)0, MAXARGS, go_pass_through_func, ged_importFg4Section}, -#endif {"isize", "vname", 2, go_view_func, ged_isize}, {"item", (char *)0, MAXARGS, go_pass_through_func, ged_item}, {"keep", (char *)0, MAXARGS, go_pass_through_func, ged_keep}, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2008-07-30 05:31:01
|
Revision: 32126 http://brlcad.svn.sourceforge.net/brlcad/?rev=32126&view=rev Author: brlcad Date: 2008-07-30 05:31:09 +0000 (Wed, 30 Jul 2008) Log Message: ----------- apply the same FN macro changes consistently to the (surprisingly few) manual pages that have a FILES section. Modified Paths: -------------- brlcad/trunk/src/fb/cat-fb.1 brlcad/trunk/src/nirt/nirt.1 brlcad/trunk/src/util/buffer.1 brlcad/trunk/src/util/dunncolor.1 brlcad/trunk/src/util/dunnsnap.1 brlcad/trunk/src/vas4/vas4.1 brlcad/trunk/src/vdeck/vdeck.1 Modified: brlcad/trunk/src/fb/cat-fb.1 =================================================================== --- brlcad/trunk/src/fb/cat-fb.1 2008-07-30 05:11:05 UTC (rev 32125) +++ brlcad/trunk/src/fb/cat-fb.1 2008-07-30 05:31:09 UTC (rev 32126) @@ -38,6 +38,15 @@ .\" SUCH DAMAGE. .\" .\".\".\" +.\" +.\" File name macro to make listing files easier +.\" +.de FN +\fI\|\\$1\|\fP +.. +.\" +.\" Begin actual content +.\" .SH NAME cat\(hyfb \(em display a troff C/A/T document on a framebuffer .SH SYNOPSIS @@ -156,8 +165,9 @@ An attempt was made to typeset the character ``X'' beyond the right edge of the screen/file. .SH FILES - .railmag - /usr/lib/vfont/railmag +.TP +.FN .railmag +/usr/lib/vfont/railmag .SH "BUG REPORTS" Reports of bugs or problems should be submitted via electronic mail to <de...@br...>. Modified: brlcad/trunk/src/nirt/nirt.1 =================================================================== --- brlcad/trunk/src/nirt/nirt.1 2008-07-30 05:11:05 UTC (rev 32125) +++ brlcad/trunk/src/nirt/nirt.1 2008-07-30 05:31:09 UTC (rev 32126) @@ -40,11 +40,14 @@ .\".\".\" .\" Set the interparagraph spacing to 1 (default is 0.4) .PD 1v +.\" +.\" File name macro to make listing files easier +.\" .de FN \fI\|\\$1\|\fP .. .\" -.\" The man page begins... +.\" Begin actual content .\" .SH NAME nirt \- interactively ray trace a BRL-CAD geometric model Modified: brlcad/trunk/src/util/buffer.1 =================================================================== --- brlcad/trunk/src/util/buffer.1 2008-07-30 05:11:05 UTC (rev 32125) +++ brlcad/trunk/src/util/buffer.1 2008-07-30 05:31:09 UTC (rev 32126) @@ -38,6 +38,15 @@ .\" SUCH DAMAGE. .\" .\".\".\" +.\" +.\" File name macro to make listing files easier +.\" +.de FN +\fI\|\\$1\|\fP +.. +.\" +.\" Begin actual content +.\" .SH NAME buffer \- buffer data from stdin until EOF, then write to stdout .SH SYNOPSIS @@ -62,7 +71,9 @@ .fi \fP .SH FILES -/usr/tmp/bufferXXXXXX +.TP +.FN /usr/tmp/bufferXXXXXX +temporary file used to buffer piped data .SH "BUG REPORTS" Reports of bugs or problems should be submitted via electronic mail to <de...@br...>. Modified: brlcad/trunk/src/util/dunncolor.1 =================================================================== --- brlcad/trunk/src/util/dunncolor.1 2008-07-30 05:11:05 UTC (rev 32125) +++ brlcad/trunk/src/util/dunncolor.1 2008-07-30 05:31:09 UTC (rev 32126) @@ -38,6 +38,15 @@ .\" SUCH DAMAGE. .\" .\".\".\" +.\" +.\" File name macro to make listing files easier +.\" +.de FN +\fI\|\\$1\|\fP +.. +.\" +.\" Begin actual content +.\" .SH NAME dunncolor \- set exposure values for a Dunn Model 631 camera .SH SYNOPSIS @@ -92,7 +101,9 @@ .SH DIAGNOSTICS Diagnostics are intended to be self-explanatory. .SH FILES -/dev/camera +.TP +.FN /dev/camera +camera device supported by the operating system .SH "SEE ALSO" brlcad(1), dunnsnap(1) .SH "BUG REPORTS" Modified: brlcad/trunk/src/util/dunnsnap.1 =================================================================== --- brlcad/trunk/src/util/dunnsnap.1 2008-07-30 05:11:05 UTC (rev 32125) +++ brlcad/trunk/src/util/dunnsnap.1 2008-07-30 05:31:09 UTC (rev 32126) @@ -38,6 +38,15 @@ .\" SUCH DAMAGE. .\" .\".\".\" +.\" +.\" File name macro to make listing files easier +.\" +.de FN +\fI\|\\$1\|\fP +.. +.\" +.\" Begin actual content +.\" .SH NAME dunnsnap \- expose film in a Dunn Model 631 camera .SH SYNOPSIS @@ -123,7 +132,9 @@ .SH DIAGNOSTICS Diagnostics are intended to be self-explanatory. .SH FILES -/dev/camera +.TP +.FN /dev/camera +camera device supported by the operating system .SH "SEE ALSO" brlcad(1), dunncolor(1) .SH "BUG REPORTS" Modified: brlcad/trunk/src/vas4/vas4.1 =================================================================== --- brlcad/trunk/src/vas4/vas4.1 2008-07-30 05:11:05 UTC (rev 32125) +++ brlcad/trunk/src/vas4/vas4.1 2008-07-30 05:31:09 UTC (rev 32126) @@ -38,6 +38,15 @@ .\" SUCH DAMAGE. .\" .\".\".\" +.\" +.\" File name macro to make listing files easier +.\" +.de FN +\fI\|\\$1\|\fP +.. +.\" +.\" Begin actual content +.\" .SH NAME vas4 \- control Lyon Lamb Video Animation System VAS4 to record videotape .SH SYNOPSIS @@ -245,9 +254,9 @@ the 'RECORD' & 'PLAY' buttons on the VTR and wait until the entire tape has been recorded with the black signal. .SH FILES -.nf -/dev/vas tty port connected to the VAS IV -.fi +.TP +.FN /dev/vas +tty port connected to the VAS IV .SH SEE ALSO brlcad(1), fbcbars(1), rle-fb(1), pix-fb(1), rle-ik(1) .br Modified: brlcad/trunk/src/vdeck/vdeck.1 =================================================================== --- brlcad/trunk/src/vdeck/vdeck.1 2008-07-30 05:11:05 UTC (rev 32125) +++ brlcad/trunk/src/vdeck/vdeck.1 2008-07-30 05:31:09 UTC (rev 32126) @@ -38,8 +38,15 @@ .\" SUCH DAMAGE. .\" .\".\".\" -'\" last edit: 86/03/26 D A Gwyn -'\" SCCS ID: @(#)vdeck.1 2.4 +.\" +.\" File name macro to make listing files easier +.\" +.de FN +\fI\|\\$1\|\fP +.. +.\" +.\" Begin actual content +.\" .SH NAME vdeck \- generate COM-GEOM decks from a GED file .SH SYNOPSIS @@ -78,35 +85,34 @@ may be incompatible with .IR vdeck\^ . .SH FILES -.PD 0 -.TP "\w'/tmp/reg??? 'u" -solids +.TP +.FN solids default solid table output .TP -regions +.FN regions default region table output .TP -region_ids +.FN region_ids default region .SM ID table output .TP -*.st +.FN *.st unique solid table output .TP -*.rt +.FN *.rt unique region table output .TP -*.id +.FN *.id unique region .SM ID table output .TP -/tmp/dis??? -temporary +.FN /tmp/dis??? +temporary file used during processing .TP -/tmp/reg??? -temporary +.FN /tmp/reg??? +temporary file used during processing .SH "SEE ALSO" cat(1), gedplot(1V), mged(1B). .SH AUTHORS This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hom...@us...> - 2008-08-07 09:56:27
|
Revision: 32315 http://brlcad.svn.sourceforge.net/brlcad/?rev=32315&view=rev Author: homovulgaris Date: 2008-08-07 09:56:34 +0000 (Thu, 07 Aug 2008) Log Message: ----------- adding spirit::symbols for MathVM Modified Paths: -------------- brlcad/trunk/src/libpc/NOTES Added Paths: ----------- brlcad/trunk/src/other/boost/spirit/include/classic_symbols.hpp brlcad/trunk/src/other/boost/spirit/symbols/ brlcad/trunk/src/other/boost/spirit/symbols/symbols.hpp Modified: brlcad/trunk/src/libpc/NOTES =================================================================== --- brlcad/trunk/src/libpc/NOTES 2008-08-07 03:25:32 UTC (rev 32314) +++ brlcad/trunk/src/libpc/NOTES 2008-08-07 09:56:34 UTC (rev 32315) @@ -11,6 +11,7 @@ 5. graph/graph_traits.hpp in pcNetwork.h 6. graph/adjacency_list.hpp in pcNetwork.h 7. graph/graphviz.hpp in pcNetwork.h + 8. spirit/include/classic_symbols.hpp in pcMathVM.h The above and corresponding dependencies are added to the src/other/boost directory using bcp --scan --boost=BOOST_DIR pcMathVM.h pcConstraint.h\ pcParser.h pcNetwork.h ../other Added: brlcad/trunk/src/other/boost/spirit/include/classic_symbols.hpp =================================================================== --- brlcad/trunk/src/other/boost/spirit/include/classic_symbols.hpp (rev 0) +++ brlcad/trunk/src/other/boost/spirit/include/classic_symbols.hpp 2008-08-07 09:56:34 UTC (rev 32315) @@ -0,0 +1,12 @@ +/*============================================================================= + Copyright (c) 2001-2008 Joel de Guzman + Copyright (c) 2001-2008 Hartmut Kaiser + http://spirit.sourceforge.net/ + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +=============================================================================*/ +#ifndef BOOST_SPIRIT_INCLUDE_CLASSIC_SYMBOLS +#define BOOST_SPIRIT_INCLUDE_CLASSIC_SYMBOLS +#include <boost/spirit/home/classic/symbols.hpp> +#endif Property changes on: brlcad/trunk/src/other/boost/spirit/include/classic_symbols.hpp ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: brlcad/trunk/src/other/boost/spirit/symbols/symbols.hpp =================================================================== --- brlcad/trunk/src/other/boost/spirit/symbols/symbols.hpp (rev 0) +++ brlcad/trunk/src/other/boost/spirit/symbols/symbols.hpp 2008-08-07 09:56:34 UTC (rev 32315) @@ -0,0 +1,23 @@ +/*============================================================================= + Copyright (c) 2001-2008 Joel de Guzman + Copyright (c) 2001-2008 Hartmut Kaiser + http://spirit.sourceforge.net/ + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +=============================================================================*/ +#ifndef BOOST_SPIRIT_DEPRECATED_INCLUDE_SYMBOLS +#define BOOST_SPIRIT_DEPRECATED_INCLUDE_SYMBOLS + +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) +# pragma message ("Warning: This header is deprecated. Please use: boost/spirit/include/classic_symbols.hpp") +#elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) +# warning "This header is deprecated. Please use: boost/spirit/include/classic_symbols.hpp" +#endif + +#if !defined(BOOST_SPIRIT_USE_OLD_NAMESPACE) +#define BOOST_SPIRIT_USE_OLD_NAMESPACE +#endif +#include <boost/spirit/include/classic_symbols.hpp> + +#endif Property changes on: brlcad/trunk/src/other/boost/spirit/symbols/symbols.hpp ___________________________________________________________________ Added: svn:executable + * 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. |
From: <hom...@us...> - 2008-08-08 09:58:26
|
Revision: 32350 http://brlcad.svn.sourceforge.net/brlcad/?rev=32350&view=rev Author: homovulgaris Date: 2008-08-08 09:58:25 +0000 (Fri, 08 Aug 2008) Log Message: ----------- using boost::prior for iterator addition, subtraction ; also updating to 1.36 Modified Paths: -------------- brlcad/trunk/src/libpc/NOTES brlcad/trunk/src/other/boost/concept/detail/general.hpp brlcad/trunk/src/other/boost/concept/detail/msvc.hpp brlcad/trunk/src/other/boost/config/compiler/pgi.hpp brlcad/trunk/src/other/boost/config/compiler/sunpro_cc.hpp brlcad/trunk/src/other/boost/config/platform/bsd.hpp brlcad/trunk/src/other/boost/config/stdlib/libstdcpp3.hpp brlcad/trunk/src/other/boost/date_time/compiler_config.hpp brlcad/trunk/src/other/boost/date_time/gregorian/greg_weekday.hpp brlcad/trunk/src/other/boost/date_time/gregorian_calendar.ipp brlcad/trunk/src/other/boost/date_time/string_parse_tree.hpp brlcad/trunk/src/other/boost/date_time/time.hpp brlcad/trunk/src/other/boost/exception/enable_current_exception.hpp brlcad/trunk/src/other/boost/exception/enable_error_info.hpp brlcad/trunk/src/other/boost/exception/exception.hpp brlcad/trunk/src/other/boost/graph/detail/read_graphviz_spirit.hpp brlcad/trunk/src/other/boost/integer_traits.hpp brlcad/trunk/src/other/boost/limits.hpp brlcad/trunk/src/other/boost/ref.hpp brlcad/trunk/src/other/boost/shared_ptr.hpp brlcad/trunk/src/other/boost/spirit/actor.hpp brlcad/trunk/src/other/boost/spirit/attribute.hpp brlcad/trunk/src/other/boost/spirit/core.hpp brlcad/trunk/src/other/boost/spirit/dynamic.hpp brlcad/trunk/src/other/boost/spirit/home/classic/core/non_terminal/impl/static.hpp brlcad/trunk/src/other/boost/spirit/iterator/multi_pass.hpp brlcad/trunk/src/other/boost/spirit/phoenix/binders.hpp brlcad/trunk/src/other/boost/spirit/phoenix.hpp brlcad/trunk/src/other/boost/spirit/utility/confix.hpp brlcad/trunk/src/other/boost/spirit/utility/distinct.hpp brlcad/trunk/src/other/boost/spirit/utility/escape_char.hpp brlcad/trunk/src/other/boost/spirit/utility/lists.hpp brlcad/trunk/src/other/boost/thread/detail/move.hpp brlcad/trunk/src/other/boost/thread/detail/platform.hpp brlcad/trunk/src/other/boost/thread/detail/thread.hpp brlcad/trunk/src/other/boost/thread/locks.hpp brlcad/trunk/src/other/boost/thread/pthread/condition_variable.hpp brlcad/trunk/src/other/boost/thread/pthread/condition_variable_fwd.hpp brlcad/trunk/src/other/boost/thread/pthread/mutex.hpp brlcad/trunk/src/other/boost/thread/tss.hpp brlcad/trunk/src/other/boost/thread/win32/basic_timed_mutex.hpp brlcad/trunk/src/other/boost/thread/win32/mutex.hpp brlcad/trunk/src/other/boost/thread/win32/thread_primitives.hpp brlcad/trunk/src/other/boost/throw_exception.hpp brlcad/trunk/src/other/boost/tuple/detail/tuple_basic.hpp brlcad/trunk/src/other/boost/tuple/detail/tuple_basic_no_partial_spec.hpp brlcad/trunk/src/other/boost/tuple/tuple.hpp brlcad/trunk/src/other/boost/type_traits/conversion_traits.hpp brlcad/trunk/src/other/boost/type_traits/is_abstract.hpp brlcad/trunk/src/other/boost/type_traits/is_base_and_derived.hpp brlcad/trunk/src/other/boost/type_traits/is_convertible.hpp brlcad/trunk/src/other/boost/type_traits/is_function.hpp brlcad/trunk/src/other/boost/type_traits/is_member_function_pointer.hpp brlcad/trunk/src/other/boost/utility/enable_if.hpp brlcad/trunk/src/other/boost/version.hpp Added Paths: ----------- brlcad/trunk/src/other/boost/detail/extended_integer.hpp Modified: brlcad/trunk/src/libpc/NOTES =================================================================== --- brlcad/trunk/src/libpc/NOTES 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/libpc/NOTES 2008-08-08 09:58:25 UTC (rev 32350) @@ -12,7 +12,8 @@ 6. graph/adjacency_list.hpp in pcNetwork.h 7. graph/graphviz.hpp in pcNetwork.h 8. spirit/include/classic_symbols.hpp in pcMathVM.h + 9. next_prior.hpp in pcMathVM.cpp The above and corresponding dependencies are added to the src/other/boost directory using bcp --scan --boost=BOOST_DIR pcMathVM.h pcConstraint.h\ - pcParser.h pcNetwork.h ../other + pcParser.h pcNetwork.h pcMathVM.cpp ../other Modified: brlcad/trunk/src/other/boost/concept/detail/general.hpp =================================================================== --- brlcad/trunk/src/other/boost/concept/detail/general.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/concept/detail/general.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -29,6 +29,14 @@ static void failed() { ((Model*)0)->~Model(); } }; +struct failed {}; + +template <class Model> +struct requirement<failed ************ Model::************> +{ + static void failed() { ((Model*)0)->~Model(); } +}; + # ifdef BOOST_OLD_CONCEPT_SUPPORT template <class Model> @@ -42,7 +50,7 @@ : mpl::if_< concept::not_satisfied<Model> , constraint<Model> - , requirement<Model> + , requirement<failed ************ Model::************> >::type {}; @@ -51,7 +59,7 @@ // For GCC-2.x, these can't have exactly the same name template <class Model> struct requirement_<void(*)(Model)> - : requirement<Model> + : requirement<failed ************ Model::************> {}; # endif Modified: brlcad/trunk/src/other/boost/concept/detail/msvc.hpp =================================================================== --- brlcad/trunk/src/other/boost/concept/detail/msvc.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/concept/detail/msvc.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -14,6 +14,7 @@ namespace boost { namespace concept { + template <class Model> struct check { @@ -22,7 +23,19 @@ x->~Model(); } }; - + +# ifndef BOOST_NO_PARTIAL_SPECIALIZATION +struct failed {}; +template <class Model> +struct check<failed ************ Model::************> +{ + virtual void failed(Model* x) + { + x->~Model(); + } +}; +# endif + # ifdef BOOST_OLD_CONCEPT_SUPPORT namespace detail @@ -38,7 +51,11 @@ : mpl::if_c< not_satisfied<Model>::value , detail::constraint +# ifndef BOOST_NO_PARTIAL_SPECIALIZATION , check<Model> +# else + , check<failed ************ Model::************> +# endif >::type {}; @@ -46,7 +63,11 @@ template <class Model> struct require - : check<Model> +# ifndef BOOST_NO_PARTIAL_SPECIALIZATION + : check<Model> +# else + : check<failed ************ Model::************> +# endif {}; # endif Modified: brlcad/trunk/src/other/boost/config/compiler/pgi.hpp =================================================================== --- brlcad/trunk/src/other/boost/config/compiler/pgi.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/config/compiler/pgi.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -16,7 +16,7 @@ // if no threading API is detected. // -#if (__PGIC__ == 7) && (__PGIC_MINOR__ == 1) +#if (__PGIC__ == 7) && (__PGIC_MINOR__ <= 2) #define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL #define BOOST_NO_TWO_PHASE_NAME_LOOKUP Modified: brlcad/trunk/src/other/boost/config/compiler/sunpro_cc.hpp =================================================================== --- brlcad/trunk/src/other/boost/config/compiler/sunpro_cc.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/config/compiler/sunpro_cc.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -40,7 +40,7 @@ // initialized in-class. // >> Assertion: (../links/dbg_cstabs.cc, line 611) // while processing ../test.cpp at line 0. - // (Jens Maurer according to Gottfried Gan\xDFauge 04 Mar 2002) + // (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002) # define BOOST_NO_INCLASS_MEMBER_INITIALIZATION // SunPro 5.3 has better support for partial specialization, Modified: brlcad/trunk/src/other/boost/config/platform/bsd.hpp =================================================================== --- brlcad/trunk/src/other/boost/config/platform/bsd.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/config/platform/bsd.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -43,7 +43,19 @@ // // No wide character support in the BSD header files: // -#if !(defined(__FreeBSD__) && (__FreeBSD__ >= 5)) +#if defined(__NetBSD__) +#define __NetBSD_GCC__ (__GNUC__ * 1000000 \ + + __GNUC_MINOR__ * 1000 \ + + __GNUC_PATCHLEVEL__) +// XXX - the following is required until c++config.h +// defines _GLIBCXX_HAVE_SWPRINTF and friends +// or the preprocessor conditionals are removed +// from the cwchar header. +#define _GLIBCXX_HAVE_SWPRINTF 1 +#endif + +#if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \ + || (__NetBSD_GCC__ >= 2095003)) # define BOOST_NO_CWCHAR #endif // Modified: brlcad/trunk/src/other/boost/config/stdlib/libstdcpp3.hpp =================================================================== --- brlcad/trunk/src/other/boost/config/stdlib/libstdcpp3.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/config/stdlib/libstdcpp3.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -68,6 +68,11 @@ # define BOOST_HAS_SLIST # define BOOST_HAS_HASH # define BOOST_SLIST_HEADER <ext/slist> -# define BOOST_HASH_SET_HEADER <ext/hash_set> -# define BOOST_HASH_MAP_HEADER <ext/hash_map> +# if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) +# define BOOST_HASH_SET_HEADER <ext/hash_set> +# define BOOST_HASH_MAP_HEADER <ext/hash_map> +# else +# define BOOST_HASH_SET_HEADER <backward/hash_set> +# define BOOST_HASH_MAP_HEADER <backward/hash_map> +# endif #endif Modified: brlcad/trunk/src/other/boost/date_time/compiler_config.hpp =================================================================== --- brlcad/trunk/src/other/boost/date_time/compiler_config.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/date_time/compiler_config.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -5,7 +5,7 @@ * Subject to the Boost Software License, Version 1.0. (See accompanying * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-28 00:21:14 +0530 (Thu, 28 Feb 2008) $ + * $Date: 2008-07-13 05:45:30 +0530 (Sun, 13 Jul 2008) $ */ #include "boost/detail/workaround.hpp" @@ -90,7 +90,7 @@ * * For code that will be placed in the date_time .dll, * it must be properly prefixed with BOOST_DATE_TIME_DECL. - * The corresponding .cpp file must have BOOST_DATE_TIME_SOURCES + * The corresponding .cpp file must have BOOST_DATE_TIME_SOURCE * defined before including its header. For examples see: * greg_month.hpp & greg_month.cpp * Modified: brlcad/trunk/src/other/boost/date_time/gregorian/greg_weekday.hpp =================================================================== --- brlcad/trunk/src/other/boost/date_time/gregorian/greg_weekday.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/date_time/gregorian/greg_weekday.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -6,7 +6,7 @@ * Boost Software License, Version 1.0. (See accompanying * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-28 00:21:14 +0530 (Thu, 28 Feb 2008) $ + * $Date: 2008-06-24 14:05:07 +0530 (Tue, 24 Jun 2008) $ */ #include "boost/date_time/constrained_value.hpp" @@ -31,7 +31,7 @@ //! Exception that flags that a weekday number is incorrect struct bad_weekday : public std::out_of_range { - bad_weekday() : std::out_of_range(std::string("Weekday os out of range 0..6")) {} + bad_weekday() : std::out_of_range(std::string("Weekday is out of range 0..6")) {} }; typedef CV::simple_exception_policy<unsigned short, 0, 6, bad_weekday> greg_weekday_policies; typedef CV::constrained_value<greg_weekday_policies> greg_weekday_rep; Modified: brlcad/trunk/src/other/boost/date_time/gregorian_calendar.ipp =================================================================== --- brlcad/trunk/src/other/boost/date_time/gregorian_calendar.ipp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/date_time/gregorian_calendar.ipp 2008-08-08 09:58:25 UTC (rev 32350) @@ -3,7 +3,7 @@ * Boost Software License, Version 1.0. (See accompanying * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-28 00:21:14 +0530 (Thu, 28 Feb 2008) $ + * $Date: 2008-07-13 05:45:30 +0530 (Sun, 13 Jul 2008) $ */ #ifndef NO_BOOST_DATE_TIME_INLINE @@ -14,7 +14,7 @@ namespace boost { namespace date_time { //! Return the day of the week (0==Sunday, 1==Monday, etc) - /*! Converts a the year-month-day into a day of the week number + /*! Converts a year-month-day into a day of the week number */ template<typename ymd_type_, typename date_int_type_> BOOST_DATE_TIME_INLINE Modified: brlcad/trunk/src/other/boost/date_time/string_parse_tree.hpp =================================================================== --- brlcad/trunk/src/other/boost/date_time/string_parse_tree.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/date_time/string_parse_tree.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -2,16 +2,16 @@ #define BOOST_DATE_TIME_STRING_PARSE_TREE___HPP__ /* Copyright (c) 2004-2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the + * Use, modification and distribution is subject to the * Boost Software License, Version 1.0. (See accompanying * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-28 00:21:14 +0530 (Thu, 28 Feb 2008) $ + * $Date: 2008-07-21 03:32:39 +0530 (Mon, 21 Jul 2008) $ */ #include "boost/lexical_cast.hpp" //error without? -#include "boost/algorithm/string/case_conv.hpp" +#include "boost/algorithm/string/case_conv.hpp" #include <map> #include <string> #include <vector> @@ -37,21 +37,21 @@ return cache; } //some of the cache was used return the rest - return string_type(cache, match_depth); + return string_type(cache, match_depth); } charT last_char() const { return cache[cache.size()-1]; } //! Returns true if more characters were parsed than was necessary - /*! Should be used in conjunction with last_char() - * to get the remaining character. + /*! Should be used in conjunction with last_char() + * to get the remaining character. */ bool has_remaining() const { return (cache.size() > match_depth); } - + // cache will hold characters that have been read from the stream string_type cache; unsigned short match_depth; @@ -64,8 +64,8 @@ std::basic_ostream<charT>& operator<<(std::basic_ostream<charT>& os, parse_match_result<charT>& mr) { - os << "cm: " << mr.current_match - << " C: '" << mr.cache + os << "cm: " << mr.current_match + << " C: '" << mr.cache << "' md: " << mr.match_depth << " R: " << mr.remaining(); return os; @@ -93,11 +93,11 @@ typedef std::basic_string<charT> string_type; typedef std::vector<std::basic_string<charT> > collection_type; typedef parse_match_result<charT> parse_match_result_type; - - /*! Parameter "starting_point" desingates where the numbering begins. - * A starting_point of zero will start the numbering at zero - * (Sun=0, Mon=1, ...) were a starting_point of one starts the - * numbering at one (Jan=1, Feb=2, ...). The default is zero, + + /*! Parameter "starting_point" designates where the numbering begins. + * A starting_point of zero will start the numbering at zero + * (Sun=0, Mon=1, ...) were a starting_point of one starts the + * numbering at one (Jan=1, Feb=2, ...). The default is zero, * negative vaules are not allowed */ string_parse_tree(collection_type names, unsigned int starting_point=0) { @@ -126,44 +126,44 @@ while(i < s.size()) { if (i==0) { if (i == (s.size()-1)) { - ti = m_next_chars.insert(value_type(s[i], + ti = m_next_chars.insert(value_type(s[i], string_parse_tree<charT>(value))); } else { - ti = m_next_chars.insert(value_type(s[i], + ti = m_next_chars.insert(value_type(s[i], string_parse_tree<charT>())); } } else { if (i == (s.size()-1)) { - ti = ti->second.m_next_chars.insert(value_type(s[i], + ti = ti->second.m_next_chars.insert(value_type(s[i], string_parse_tree<charT>(value))); } - + else { - ti = ti->second.m_next_chars.insert(value_type(s[i], + ti = ti->second.m_next_chars.insert(value_type(s[i], string_parse_tree<charT>())); } - - } + + } i++; } } - - + + //! Recursive function that finds a matching string in the tree. - /*! Must check match_results::has_remaining() after match() is - * called. This is required so the user can determine if - * stream iterator is already pointing to the expected + /*! Must check match_results::has_remaining() after match() is + * called. This is required so the user can determine if + * stream iterator is already pointing to the expected * character or not (match() might advance sitr to next char in stream). * - * A parse_match_result that has been returned from a failed match - * attempt can be sent in to the match function of a different - * string_parse_tree to attempt a match there. Use the iterators - * for the partially consumed stream, the parse_match_result object, + * A parse_match_result that has been returned from a failed match + * attempt can be sent in to the match function of a different + * string_parse_tree to attempt a match there. Use the iterators + * for the partially consumed stream, the parse_match_result object, * and '0' for the level parameter. */ short - match(std::istreambuf_iterator<charT>& sitr, + match(std::istreambuf_iterator<charT>& sitr, std::istreambuf_iterator<charT>& stream_end, parse_match_result_type& result, unsigned int& level) const @@ -171,7 +171,7 @@ level++; charT c; - // if we conditionally advance sitr, we won't have + // if we conditionally advance sitr, we won't have // to consume the next character past the input bool adv_itr = true; if (level > result.cache.size()) { @@ -181,16 +181,16 @@ //sitr++; } else { - // if we're looking for characters from the cache, + // if we're looking for characters from the cache, // we don't want to increment sitr - adv_itr = false; + adv_itr = false; c = static_cast<charT>(std::tolower(result.cache[level-1])); } const_iterator litr = m_next_chars.lower_bound(c); const_iterator uitr = m_next_chars.upper_bound(c); while (litr != uitr) { // equal if not found if(adv_itr) { - sitr++; + sitr++; result.cache += c; } if (litr->second.m_value != -1) { // -1 is default value @@ -198,16 +198,16 @@ result.current_match = litr->second.m_value; result.match_depth = static_cast<unsigned short>(level); } - litr->second.match(sitr, stream_end, + litr->second.match(sitr, stream_end, result, level); level--; } else { - litr->second.match(sitr, stream_end, + litr->second.match(sitr, stream_end, result, level); level--; } - + if(level <= result.cache.size()) { adv_itr = false; } @@ -218,13 +218,13 @@ } - /*! Must check match_results::has_remaining() after match() is - * called. This is required so the user can determine if - * stream iterator is already pointing to the expected + /*! Must check match_results::has_remaining() after match() is + * called. This is required so the user can determine if + * stream iterator is already pointing to the expected * character or not (match() might advance sitr to next char in stream). */ parse_match_result_type - match(std::istreambuf_iterator<charT>& sitr, + match(std::istreambuf_iterator<charT>& sitr, std::istreambuf_iterator<charT>& stream_end) const { // lookup to_lower of char in tree. @@ -242,8 +242,8 @@ iterator end = m_next_chars.end(); // os << "starting level: " << level << std::endl; while (itr != end) { - os << "level: " << level - << " node: " << itr->first + os << "level: " << level + << " node: " << itr->first << " value: " << itr->second.m_value << std::endl; itr->second.printme(os, level); @@ -257,14 +257,14 @@ int level = 0; printme(os, level); } - + void printmatch(std::ostream& os, charT c) { iterator litr = m_next_chars.lower_bound(c); iterator uitr = m_next_chars.upper_bound(c); os << "matches for: " << c << std::endl; while (litr != uitr) { - os << " node: " << litr->first + os << " node: " << litr->first << " value: " << litr->second.m_value << std::endl; litr++; Modified: brlcad/trunk/src/other/boost/date_time/time.hpp =================================================================== --- brlcad/trunk/src/other/boost/date_time/time.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/date_time/time.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -6,7 +6,7 @@ * Boost Software License, Version 1.0. (See accompanying * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-28 00:21:14 +0530 (Thu, 28 Feb 2008) $ + * $Date: 2008-08-03 15:39:21 +0530 (Sun, 03 Aug 2008) $ */ @@ -77,14 +77,14 @@ /*! Optional bool parameter will return time zone as an offset * (ie "+07:00"). Empty string is returned for classes that do * not use a time_zone */ - std::string zone_name(bool as_offset=false) const + std::string zone_name(bool /*as_offset*/=false) const { return time_system::zone_name(time_); } /*! Optional bool parameter will return time zone as an offset * (ie "+07:00"). Empty string is returned for classes that do * not use a time_zone */ - std::string zone_abbrev(bool as_offset=false) const + std::string zone_abbrev(bool /*as_offset*/=false) const { return time_system::zone_name(time_); } Added: brlcad/trunk/src/other/boost/detail/extended_integer.hpp =================================================================== --- brlcad/trunk/src/other/boost/detail/extended_integer.hpp (rev 0) +++ brlcad/trunk/src/other/boost/detail/extended_integer.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -0,0 +1,177 @@ +// Boost detail/extended_integer.hpp header file ----------------------------// + +// (C) Copyright Daryle Walker 2008. Distributed under the Boost Software +// License, Version 1.0. (See the accompanying file LICENSE_1_0.txt or a copy +// at <http://www.boost.org/LICENSE_1_0.txt>.) + +// Encapsulates the double-long and __int64 type families as a single family, +// as they are mutually exclusive. + +/** \file + \brief Common definition of extended integer types. + + Instead of other Boost headers making separate \#defines for the double-long + and __int64 type families, since they're mutually exclusive, make a single + set of types and macros for the family that exists (if either). + */ + +#ifndef BOOST_DETAIL_EXTENDED_INTEGER_HPP +#define BOOST_DETAIL_EXTENDED_INTEGER_HPP + +#include <boost/config.hpp> // for BOOST_HAS_LONG_LONG and BOOST_HAS_MS_INT64 + +#include <climits> // for CHAR_BIT, etc. + + +namespace boost +{ +namespace detail +{ + + +// Extended integer type macro and alias definitions -----------------------// + +// (Unsigned) long long family +#ifdef BOOST_HAS_LONG_LONG + +// Existence +#define BOOST_HAS_XINT 1 + +// Extents +#ifdef ULLONG_MAX +#define BOOST_XINT_MAX LLONG_MAX +#define BOOST_XINT_MIN LLONG_MIN +#define BOOST_UXINT_MAX ULLONG_MAX +#elif defined(ULONG_LONG_MAX) +#define BOOST_XINT_MAX LONG_LONG_MAX +#define BOOST_XINT_MIN LONG_LONG_MIN +#define BOOST_UXINT_MAX ULONG_LONG_MAX +#elif defined(ULONGLONG_MAX) +#define BOOST_XINT_MAX LONGLONG_MAX +#define BOOST_XINT_MIN LONGLONG_MIN +#define BOOST_UXINT_MAX ULONGLONG_MAX +#elif defined(_LLONG_MAX) && defined(_C2) +#define BOOST_XINT_MAX _LLONG_MAX +#define BOOST_XINT_MIN (-_LLONG_MAX - _C2) +#define BOOST_UXINT_MAX _ULLONG_MAX +#else // guess +// Sometimes we get the double-long types without the corresponding constants, +// e.g. GCC in "-ansi" mode. In this case, we'll just have to work out the +// values ourselves. (Here we assume a two's complement representation.) +#define BOOST_XINT_MIN (1LL << (sizeof(::boost::long_long_type) * CHAR_BIT - 1)) +#define BOOST_XINT_MAX (~ BOOST_XINT_MIN) +#define BOOST_UXINT_MAX (~ 0uLL) +#endif + +// Types +typedef ::boost:: long_long_type xint_t; +typedef ::boost::ulong_long_type uxint_t; + +// (Unsigned) __int64 family +#elif defined(BOOST_HAS_MS_INT64) + +// Existence +#define BOOST_HAS_XINT 1 + +// Extents +#ifdef _UI64_MAX +#define BOOST_XINT_MAX _I64_MAX +#define BOOST_XINT_MIN _I64_MIN +#define BOOST_UXINT_MAX _UI64_MAX +#else // guess +// The types are exactly 2's-compl. 64-bit, so we'll enter the values directly. +#define BOOST_XINT_MAX 0x7FFFFFFFFFFFFFFFi64 +#define BOOST_XINT_MIN 0x8000000000000000i64 +#define BOOST_UXINT_MAX 0xFFFFFFFFFFFFFFFFui64 +#endif + +// Types +typedef __int64 xint_t; +typedef unsigned __int64 uxint_t; + +// Neither +#else + +// Non-existence +#define BOOST_HAS_XINT 0 + +// Dummy extents +#define BOOST_XINT_MAX LONG_MAX +#define BOOST_XINT_MIN LONG_MIN +#define BOOST_UXINT_MAX ULONG_MAX + +// Dummy types +typedef signed long xint_t; +typedef unsigned long uxint_t; + +#endif // defined(BOOST_HAS_LONG_LONG)/defined(BOOST_HAS_MS_INT64)/else + +/** \def BOOST_HAS_XINT + + \brief Flag for extended integer types. + + Indicates the presence of one of the two common extended integer type + families, either (<code>unsigned</code>) <code>long long</code> or + (<code>unsigned</code>) <code>__int64</code>. \c BOOST_HAS_XINT is \c 1 if + either type family is defined, and \c 0 if neither is. + */ + +/** \def BOOST_XINT_MAX + + \brief Maximum value for the signed extended integer type. + + \pre \c BOOST_HAS_XINT is \c \#defined to be \c 1. + + Macro constant representing the largest value the signed extended integer + type supports. Its composition may be another macro, an expression, or a + literal. Defaulted to \c LONG_MAX if \c BOOST_HAS_XINT is zero. + */ +/** \def BOOST_XINT_MIN + + \brief Minimum value for the signed extended integer type. + + \pre \c BOOST_HAS_XINT is \c \#defined to be \c 1. + + Macro constant representing the smallest value the signed extended integer + type supports. Its composition may be another macro, an expression, or a + literal. Defaulted to \c LONG_MIN if \c BOOST_HAS_XINT is zero. + */ +/** \def BOOST_UXINT_MAX + + \brief Maximum value for the unsigned extended integer type. + + \pre \c BOOST_HAS_XINT is \c \#defined to be \c 1. + + Macro constant representing the largest value the unsigned extended integer + type supports. Its composition may be another macro, an expression, or a + literal. Defaulted to \c ULONG_MAX if \c BOOST_HAS_XINT is zero. (Use + \c 0u for the type's minimum value.) + */ + +/** \typedef signed long boost::detail::xint_t + + \brief Alias for the signed extended integer type. + + \pre \c BOOST_HAS_XINT is \c \#defined to be \c 1. + + Alias representing the signed extended integer type, no matter which type + family it came from. Defaulted to <code>signed long</code> if + \c BOOST_HAS_XINT is zero. + */ +/** \typedef unsigned long ::boost::detail::uxint_t + + \brief Alias for the signed extended integer type. + + \pre \c BOOST_HAS_XINT is \c \#defined to be \c 1. + + Alias representing the unsigned extended integer type, no matter which type + family it came from. Defaulted to <code>unsigned long</code> if + \c BOOST_HAS_XINT is zero. + */ + + +} // namespace detail +} // namespace boost + + +#endif // BOOST_DETAIL_EXTENDED_INTEGER_HPP Property changes on: brlcad/trunk/src/other/boost/detail/extended_integer.hpp ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Modified: brlcad/trunk/src/other/boost/exception/enable_current_exception.hpp =================================================================== --- brlcad/trunk/src/other/boost/exception/enable_current_exception.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/exception/enable_current_exception.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -92,7 +92,7 @@ count_(0) { if( boost::exception * be1=dynamic_cast<boost::exception *>(this) ) - if( boost::exception const * be2=dynamic_cast<boost::exception const *>(&x) ) + if( boost::exception const * be2=dynamic_cast<boost::exception const *>(&x) ) *be1 = *be2; } @@ -121,6 +121,7 @@ }; template <class T> + inline clone_base * make_clone( T const & x ) { @@ -144,6 +145,7 @@ } template <class T> + inline exception_detail::clone_impl<T> enable_current_exception( T const & x ) { Modified: brlcad/trunk/src/other/boost/exception/enable_error_info.hpp =================================================================== --- brlcad/trunk/src/other/boost/exception/enable_error_info.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/exception/enable_error_info.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -32,6 +32,12 @@ ~error_info_injector() throw() { } + + char const * + diagnostic_information() const throw() + { + return boost::exception::_diagnostic_information(T::what()); + } }; struct large_size { char c[256]; }; @@ -82,6 +88,7 @@ } template <class T> + inline #if !BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x582)) typename #endif Modified: brlcad/trunk/src/other/boost/exception/exception.hpp =================================================================== --- brlcad/trunk/src/other/boost/exception/exception.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/exception/exception.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -27,7 +27,7 @@ error_info_container: public exception_detail::counted_base { - virtual char const * what( std::type_info const & ) const = 0; + virtual char const * diagnostic_information( char const *, std::type_info const & ) const = 0; virtual shared_ptr<error_info_base const> get( std::type_info const & ) const = 0; virtual void set( shared_ptr<error_info_base const> const & ) = 0; }; @@ -49,19 +49,9 @@ virtual char const * - what() const throw() + diagnostic_information() const throw() { - if( data_ ) - try - { - char const * w = data_->what(typeid(*this)); - BOOST_ASSERT(0!=w); - return w; - } - catch(...) - { - } - return typeid(*this).name(); + return _diagnostic_information(0); } protected: @@ -75,6 +65,22 @@ { } + char const * + _diagnostic_information( char const * std_what ) const throw() + { + if( data_ ) + try + { + char const * w = data_->diagnostic_information(std_what,typeid(*this)); + BOOST_ASSERT(0!=w); + return w; + } + catch(...) + { + } + return std_what ? std_what : typeid(*this).name(); + } + #if BOOST_WORKAROUND( BOOST_MSVC, BOOST_TESTED_AT(1500) ) //Force class exception to be abstract. //Otherwise, MSVC bug allows throw exception(), even though the copy constructor is protected. Modified: brlcad/trunk/src/other/boost/graph/detail/read_graphviz_spirit.hpp =================================================================== --- brlcad/trunk/src/other/boost/graph/detail/read_graphviz_spirit.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/graph/detail/read_graphviz_spirit.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -53,6 +53,7 @@ #include <utility> #include <map> #include <boost/graph/graphviz.hpp> +#include <boost/throw_exception.hpp> namespace phoenix { // Workaround: std::map::operator[] uses a different return type than all @@ -292,12 +293,12 @@ void check_undirected() { if(self.graph_.is_directed()) - throw boost::undirected_graph_error(); + boost::throw_exception(boost::undirected_graph_error()); } void check_directed() { if(!self.graph_.is_directed()) - throw boost::directed_graph_error(); + boost::throw_exception(boost::directed_graph_error()); } void memoize_node() { Modified: brlcad/trunk/src/other/boost/integer_traits.hpp =================================================================== --- brlcad/trunk/src/other/boost/integer_traits.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/integer_traits.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -5,7 +5,7 @@ * accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) * - * $Id: integer_traits.hpp 32576 2006-02-05 10:19:42Z johnmaddock $ + * $Id: integer_traits.hpp 47754 2008-07-24 11:43:02Z dlwalker $ * * Idea by Beman Dawes, Ed Brey, Steve Cleary, and Nathan Myers */ @@ -27,7 +27,9 @@ #include <wchar.h> #endif +#include <boost/detail/extended_integer.hpp> // for BOOST_HAS_XINT, etc. + namespace boost { template<class T> class integer_traits : public std::numeric_limits<T> @@ -155,78 +157,19 @@ public detail::integer_traits_base<unsigned long, 0, ULONG_MAX> { }; -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) -#if defined(ULLONG_MAX) && defined(BOOST_HAS_LONG_LONG) - +#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && BOOST_HAS_XINT template<> -class integer_traits< ::boost::long_long_type> - : public std::numeric_limits< ::boost::long_long_type>, - public detail::integer_traits_base< ::boost::long_long_type, LLONG_MIN, LLONG_MAX> +class integer_traits< detail::xint_t > + : public std::numeric_limits< detail::xint_t >, + public detail::integer_traits_base< detail::xint_t, BOOST_XINT_MIN, BOOST_XINT_MAX > { }; template<> -class integer_traits< ::boost::ulong_long_type> - : public std::numeric_limits< ::boost::ulong_long_type>, - public detail::integer_traits_base< ::boost::ulong_long_type, 0, ULLONG_MAX> +class integer_traits< detail::uxint_t > + : public std::numeric_limits< detail::uxint_t >, + public detail::integer_traits_base< detail::uxint_t, 0u, BOOST_UXINT_MAX > { }; - -#elif defined(ULONG_LONG_MAX) && defined(BOOST_HAS_LONG_LONG) - -template<> -class integer_traits< ::boost::long_long_type> : public std::numeric_limits< ::boost::long_long_type>, public detail::integer_traits_base< ::boost::long_long_type, LONG_LONG_MIN, LONG_LONG_MAX>{ }; -template<> -class integer_traits< ::boost::ulong_long_type> - : public std::numeric_limits< ::boost::ulong_long_type>, - public detail::integer_traits_base< ::boost::ulong_long_type, 0, ULONG_LONG_MAX> -{ }; - -#elif defined(ULONGLONG_MAX) && defined(BOOST_HAS_LONG_LONG) - -template<> -class integer_traits< ::boost::long_long_type> - : public std::numeric_limits< ::boost::long_long_type>, - public detail::integer_traits_base< ::boost::long_long_type, LONGLONG_MIN, LONGLONG_MAX> -{ }; - -template<> -class integer_traits< ::boost::ulong_long_type> - : public std::numeric_limits< ::boost::ulong_long_type>, - public detail::integer_traits_base< ::boost::ulong_long_type, 0, ULONGLONG_MAX> -{ }; - -#elif defined(_LLONG_MAX) && defined(_C2) && defined(BOOST_HAS_LONG_LONG) - -template<> -class integer_traits< ::boost::long_long_type> - : public std::numeric_limits< ::boost::long_long_type>, - public detail::integer_traits_base< ::boost::long_long_type, -_LLONG_MAX - _C2, _LLONG_MAX> -{ }; - -template<> -class integer_traits< ::boost::ulong_long_type> - : public std::numeric_limits< ::boost::ulong_long_type>, - public detail::integer_traits_base< ::boost::ulong_long_type, 0, _ULLONG_MAX> -{ }; - -#elif defined(BOOST_HAS_LONG_LONG) -// -// we have long long but no constants, this happens for example with gcc in -ansi mode, -// we'll just have to work out the values for ourselves (assumes 2's compliment representation): -// -template<> -class integer_traits< ::boost::long_long_type> - : public std::numeric_limits< ::boost::long_long_type>, - public detail::integer_traits_base< ::boost::long_long_type, (1LL << (sizeof(::boost::long_long_type) - 1)), ~(1LL << (sizeof(::boost::long_long_type) - 1))> -{ }; - -template<> -class integer_traits< ::boost::ulong_long_type> - : public std::numeric_limits< ::boost::ulong_long_type>, - public detail::integer_traits_base< ::boost::ulong_long_type, 0, ~0uLL> -{ }; - #endif -#endif } // namespace boost Modified: brlcad/trunk/src/other/boost/limits.hpp =================================================================== --- brlcad/trunk/src/other/boost/limits.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/limits.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -19,40 +19,29 @@ # include <limits> #endif +#include <boost/detail/extended_integer.hpp> // for BOOST_HAS_XINT, etc. + #if (defined(BOOST_HAS_LONG_LONG) && defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)) \ || (defined(BOOST_HAS_MS_INT64) && defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS)) // Add missing specializations for numeric_limits: -#ifdef BOOST_HAS_MS_INT64 -# define BOOST_LLT __int64 -# define BOOST_ULLT unsigned __int64 -#else -# define BOOST_LLT ::boost::long_long_type -# define BOOST_ULLT ::boost::ulong_long_type +#if !defined(BOOST_HAS_XINT) || !(BOOST_HAS_XINT) +#error "Shouldn't have gotten here based on preceeding preprocessor statements" #endif +#define BOOST_LLT ::boost::detail::xint_t +#define BOOST_ULLT ::boost::detail::uxint_t #include <climits> // for CHAR_BIT namespace std { template<> - class numeric_limits<BOOST_LLT> + class numeric_limits< BOOST_LLT > { public: BOOST_STATIC_CONSTANT(bool, is_specialized = true); -#ifdef BOOST_HAS_MS_INT64 - static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x8000000000000000i64; } - static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x7FFFFFFFFFFFFFFFi64; } -#elif defined(LLONG_MAX) - static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MIN; } - static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MAX; } -#elif defined(LONGLONG_MAX) - static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MIN; } - static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MAX; } -#else - static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 1LL << (sizeof(BOOST_LLT) * CHAR_BIT - 1); } - static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~(min)(); } -#endif + static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return BOOST_XINT_MIN; } + static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return BOOST_XINT_MAX; } BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT -1); BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT) - 1) * 301L / 1000); BOOST_STATIC_CONSTANT(bool, is_signed = true); @@ -88,24 +77,13 @@ }; template<> - class numeric_limits<BOOST_ULLT> + class numeric_limits< BOOST_ULLT > { public: BOOST_STATIC_CONSTANT(bool, is_specialized = true); -#ifdef BOOST_HAS_MS_INT64 - static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0ui64; } - static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0xFFFFFFFFFFFFFFFFui64; } -#elif defined(ULLONG_MAX) && defined(ULLONG_MIN) - static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MIN; } - static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MAX; } -#elif defined(ULONGLONG_MAX) && defined(ULONGLONG_MIN) - static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MIN; } - static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MAX; } -#else - static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0uLL; } - static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~0uLL; } -#endif + static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return (BOOST_ULLT) 0u; } + static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return BOOST_UXINT_MAX; } BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT); BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT)) * 301L / 1000); BOOST_STATIC_CONSTANT(bool, is_signed = false); Modified: brlcad/trunk/src/other/boost/ref.hpp =================================================================== --- brlcad/trunk/src/other/boost/ref.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/ref.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -15,7 +15,7 @@ // // ref.hpp - ref/cref, useful helper functions // -// Copyright (C) 1999, 2000 Jaakko J\xE4rvi (jaa...@cs...) +// Copyright (C) 1999, 2000 Jaakko Jarvi (jaa...@cs...) // Copyright (C) 2001, 2002 Peter Dimov // Copyright (C) 2002 David Abrahams // @@ -173,6 +173,12 @@ # endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +template <class T> inline typename unwrap_reference<T>::type& +unwrap_ref(T& t) +{ + return t; +} + } // namespace boost #endif // #ifndef BOOST_REF_HPP_INCLUDED Modified: brlcad/trunk/src/other/boost/shared_ptr.hpp =================================================================== --- brlcad/trunk/src/other/boost/shared_ptr.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/shared_ptr.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -5,7 +5,7 @@ // shared_ptr.hpp // // (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. -// Copyright (c) 2001-2007 Peter Dimov +// Copyright (c) 2001-2008 Peter Dimov // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at @@ -516,65 +516,11 @@ return pn < rhs.pn; } - // atomic access - -#if !defined(BOOST_SP_NO_ATOMIC_ACCESS) - - shared_ptr<T> atomic_load( memory_order /*mo*/ = memory_order_seq_cst ) const + bool _internal_equiv( shared_ptr const & r ) const { - boost::detail::spinlock_pool<2>::scoped_lock lock( this ); - return *this; + return px == r.px && pn == r.pn; } - void atomic_store( shared_ptr<T> r, memory_order /*mo*/ = memory_order_seq_cst ) - { - boost::detail::spinlock_pool<2>::scoped_lock lock( this ); - swap( r ); - } - - shared_ptr<T> atomic_swap( shared_ptr<T> r, memory_order /*mo*/ = memory_order_seq_cst ) - { - boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( this ); - - sp.lock(); - swap( r ); - sp.unlock(); - - return r; // return std::move(r) - } - - bool atomic_compare_swap( shared_ptr<T> & v, shared_ptr<T> w ) - { - boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( this ); - - sp.lock(); - - if( px == v.px && pn == v.pn ) - { - swap( w ); - - sp.unlock(); - - return true; - } - else - { - shared_ptr tmp( *this ); - - sp.unlock(); - - tmp.swap( v ); - return false; - } - } - - inline bool atomic_compare_swap( shared_ptr<T> & v, shared_ptr<T> w, memory_order /*success*/, memory_order /*failure*/ ) - { - return atomic_compare_swap( v, w ); // std::move( w ) - } - -#endif - // Tasteless as this may seem, making all members public allows member templates // to work in the absence of member template friends. (Matthew Langston) @@ -784,6 +730,85 @@ return del; } +// atomic access + +#if !defined(BOOST_SP_NO_ATOMIC_ACCESS) + +template<class T> inline bool atomic_is_lock_free( shared_ptr<T> const * /*p*/ ) +{ + return false; +} + +template<class T> shared_ptr<T> atomic_load( shared_ptr<T> const * p ) +{ + boost::detail::spinlock_pool<2>::scoped_lock lock( p ); + return *p; +} + +template<class T> inline shared_ptr<T> atomic_load_explicit( shared_ptr<T> const * p, memory_order /*mo*/ ) +{ + return atomic_load( p ); +} + +template<class T> void atomic_store( shared_ptr<T> * p, shared_ptr<T> r ) +{ + boost::detail::spinlock_pool<2>::scoped_lock lock( p ); + p->swap( r ); +} + +template<class T> inline void atomic_store_explicit( shared_ptr<T> * p, shared_ptr<T> r, memory_order /*mo*/ ) +{ + atomic_store( p, r ); // std::move( r ) +} + +template<class T> shared_ptr<T> atomic_exchange( shared_ptr<T> * p, shared_ptr<T> r ) +{ + boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p ); + + sp.lock(); + p->swap( r ); + sp.unlock(); + + return r; // return std::move( r ) +} + +template<class T> shared_ptr<T> atomic_exchange_explicit( shared_ptr<T> * p, shared_ptr<T> r, memory_order /*mo*/ ) +{ + return atomic_exchange( p, r ); // std::move( r ) +} + +template<class T> bool atomic_compare_exchange( shared_ptr<T> * p, shared_ptr<T> * v, shared_ptr<T> w ) +{ + boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p ); + + sp.lock(); + + if( p->_internal_equiv( *v ) ) + { + p->swap( w ); + + sp.unlock(); + + return true; + } + else + { + shared_ptr<T> tmp( *p ); + + sp.unlock(); + + tmp.swap( *v ); + return false; + } +} + +template<class T> inline bool atomic_compare_exchange_explicit( shared_ptr<T> * p, shared_ptr<T> * v, shared_ptr<T> w, memory_order /*success*/, memory_order /*failure*/ ) +{ + return atomic_compare_exchange( p, v, w ); // std::move( w ) +} + +#endif + } // namespace boost #ifdef BOOST_MSVC Modified: brlcad/trunk/src/other/boost/spirit/actor.hpp =================================================================== --- brlcad/trunk/src/other/boost/spirit/actor.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/spirit/actor.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -9,11 +9,15 @@ #ifndef BOOST_SPIRIT_DEPRECATED_INCLUDE_ACTOR #define BOOST_SPIRIT_DEPRECATED_INCLUDE_ACTOR +#include <boost/version.hpp> + +#if BOOST_VERSION >= 103800 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) # pragma message ("Warning: This header is deprecated. Please use: boost/spirit/include/classic_actor.hpp") #elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) # warning "This header is deprecated. Please use: boost/spirit/include/classic_actor.hpp" #endif +#endif #if !defined(BOOST_SPIRIT_USE_OLD_NAMESPACE) #define BOOST_SPIRIT_USE_OLD_NAMESPACE Modified: brlcad/trunk/src/other/boost/spirit/attribute.hpp =================================================================== --- brlcad/trunk/src/other/boost/spirit/attribute.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/spirit/attribute.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -9,11 +9,15 @@ #ifndef BOOST_SPIRIT_DEPRECATED_INCLUDE_ATTRIBUTE #define BOOST_SPIRIT_DEPRECATED_INCLUDE_ATTRIBUTE +#include <boost/version.hpp> + +#if BOOST_VERSION >= 103800 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) # pragma message ("Warning: This header is deprecated. Please use: boost/spirit/include/classic_attribute.hpp") #elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) # warning "This header is deprecated. Please use: boost/spirit/include/classic_attribute.hpp" #endif +#endif #if !defined(BOOST_SPIRIT_USE_OLD_NAMESPACE) #define BOOST_SPIRIT_USE_OLD_NAMESPACE Modified: brlcad/trunk/src/other/boost/spirit/core.hpp =================================================================== --- brlcad/trunk/src/other/boost/spirit/core.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/spirit/core.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -9,11 +9,15 @@ #ifndef BOOST_SPIRIT_DEPRECATED_INCLUDE_CORE #define BOOST_SPIRIT_DEPRECATED_INCLUDE_CORE +#include <boost/version.hpp> + +#if BOOST_VERSION >= 103800 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) # pragma message ("Warning: This header is deprecated. Please use: boost/spirit/include/classic_core.hpp") #elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) # warning "This header is deprecated. Please use: boost/spirit/include/classic_core.hpp" #endif +#endif #if !defined(BOOST_SPIRIT_USE_OLD_NAMESPACE) #define BOOST_SPIRIT_USE_OLD_NAMESPACE Modified: brlcad/trunk/src/other/boost/spirit/dynamic.hpp =================================================================== --- brlcad/trunk/src/other/boost/spirit/dynamic.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/spirit/dynamic.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -9,11 +9,15 @@ #ifndef BOOST_SPIRIT_DEPRECATED_INCLUDE_DYNAMIC #define BOOST_SPIRIT_DEPRECATED_INCLUDE_DYNAMIC +#include <boost/version.hpp> + +#if BOOST_VERSION >= 103800 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) # pragma message ("Warning: This header is deprecated. Please use: boost/spirit/include/classic_dynamic.hpp") #elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) # warning "This header is deprecated. Please use: boost/spirit/include/classic_dynamic.hpp" #endif +#endif #if !defined(BOOST_SPIRIT_USE_OLD_NAMESPACE) #define BOOST_SPIRIT_USE_OLD_NAMESPACE Modified: brlcad/trunk/src/other/boost/spirit/home/classic/core/non_terminal/impl/static.hpp =================================================================== --- brlcad/trunk/src/other/boost/spirit/home/classic/core/non_terminal/impl/static.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/spirit/home/classic/core/non_terminal/impl/static.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -1,5 +1,5 @@ /*============================================================================= - Copyright (c) 2006 João Abecasis + Copyright (c) 2006 Joao Abecasis http://spirit.sourceforge.net/ Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -34,7 +34,7 @@ // Requirements: // T is default constructible // (There's an alternate implementation that relaxes this - // requirement -- João Abecasis) + // requirement -- Joao Abecasis) // T::T() MUST not throw! // this is a requirement of boost::call_once. // @@ -42,29 +42,33 @@ struct static_ : boost::noncopyable { + private: + + struct destructor + { + ~destructor() + { + static_::get_address()->~value_type(); + } + }; + + struct default_ctor + { + static void construct() + { + ::new (static_::get_address()) value_type(); + static destructor d; + } + }; + + public: + typedef T value_type; typedef typename boost::call_traits<T>::reference reference; typedef typename boost::call_traits<T>::const_reference const_reference; static_(Tag = Tag()) { - struct destructor - { - ~destructor() - { - static_::get_address()->~value_type(); - } - }; - - struct default_ctor - { - static void construct() - { - ::new (static_::get_address()) value_type(); - static destructor d; - } - }; - boost::call_once(&default_ctor::construct, constructed_); } Modified: brlcad/trunk/src/other/boost/spirit/iterator/multi_pass.hpp =================================================================== --- brlcad/trunk/src/other/boost/spirit/iterator/multi_pass.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/spirit/iterator/multi_pass.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -9,11 +9,15 @@ #ifndef BOOST_SPIRIT_DEPRECATED_INCLUDE_MULTI_PASS #define BOOST_SPIRIT_DEPRECATED_INCLUDE_MULTI_PASS +#include <boost/version.hpp> + +#if BOOST_VERSION >= 103800 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) # pragma message ("Warning: This header is deprecated. Please use: boost/spirit/include/classic_multi_pass.hpp") #elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) # warning "This header is deprecated. Please use: boost/spirit/include/classic_multi_pass.hpp" #endif +#endif #if !defined(BOOST_SPIRIT_USE_OLD_NAMESPACE) #define BOOST_SPIRIT_USE_OLD_NAMESPACE Modified: brlcad/trunk/src/other/boost/spirit/phoenix/binders.hpp =================================================================== --- brlcad/trunk/src/other/boost/spirit/phoenix/binders.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/spirit/phoenix/binders.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -9,11 +9,15 @@ #ifndef BOOST_SPIRIT_DEPRECATED_INCLUDE_BINDERS #define BOOST_SPIRIT_DEPRECATED_INCLUDE_BINDERS +#include <boost/version.hpp> + +#if BOOST_VERSION >= 103800 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) # pragma message ("Warning: This header is deprecated. Please use: boost/spirit/include/phoenix1_binders.hpp") #elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) # warning "This header is deprecated. Please use: boost/spirit/include/phoenix1_binders.hpp" #endif +#endif #include <boost/spirit/include/phoenix1_binders.hpp> Modified: brlcad/trunk/src/other/boost/spirit/phoenix.hpp =================================================================== --- brlcad/trunk/src/other/boost/spirit/phoenix.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/spirit/phoenix.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -9,11 +9,15 @@ #ifndef BOOST_SPIRIT_DEPRECATED_INCLUDE_PHOENIX #define BOOST_SPIRIT_DEPRECATED_INCLUDE_PHOENIX +#include <boost/version.hpp> + +#if BOOST_VERSION >= 103800 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) # pragma message ("Warning: This header is deprecated. Please use: boost/spirit/include/phoenix1.hpp") #elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) # warning "This header is deprecated. Please use: boost/spirit/include/phoenix1.hpp" #endif +#endif #if !defined(BOOST_SPIRIT_USE_OLD_NAMESPACE) #define BOOST_SPIRIT_USE_OLD_NAMESPACE Modified: brlcad/trunk/src/other/boost/spirit/utility/confix.hpp =================================================================== --- brlcad/trunk/src/other/boost/spirit/utility/confix.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/spirit/utility/confix.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -9,11 +9,15 @@ #ifndef BOOST_SPIRIT_DEPRECATED_INCLUDE_CONFIX #define BOOST_SPIRIT_DEPRECATED_INCLUDE_CONFIX +#include <boost/version.hpp> + +#if BOOST_VERSION >= 103800 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) # pragma message ("Warning: This header is deprecated. Please use: boost/spirit/include/classic_confix.hpp") #elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) # warning "This header is deprecated. Please use: boost/spirit/include/classic_confix.hpp" #endif +#endif #if !defined(BOOST_SPIRIT_USE_OLD_NAMESPACE) #define BOOST_SPIRIT_USE_OLD_NAMESPACE Modified: brlcad/trunk/src/other/boost/spirit/utility/distinct.hpp =================================================================== --- brlcad/trunk/src/other/boost/spirit/utility/distinct.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/spirit/utility/distinct.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -9,11 +9,15 @@ #ifndef BOOST_SPIRIT_DEPRECATED_INCLUDE_DISTINCT #define BOOST_SPIRIT_DEPRECATED_INCLUDE_DISTINCT +#include <boost/version.hpp> + +#if BOOST_VERSION >= 103800 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) # pragma message ("Warning: This header is deprecated. Please use: boost/spirit/include/classic_distinct.hpp") #elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) # warning "This header is deprecated. Please use: boost/spirit/include/classic_distinct.hpp" #endif +#endif #if !defined(BOOST_SPIRIT_USE_OLD_NAMESPACE) #define BOOST_SPIRIT_USE_OLD_NAMESPACE Modified: brlcad/trunk/src/other/boost/spirit/utility/escape_char.hpp =================================================================== --- brlcad/trunk/src/other/boost/spirit/utility/escape_char.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/spirit/utility/escape_char.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -9,11 +9,15 @@ #ifndef BOOST_SPIRIT_DEPRECATED_INCLUDE_ESCAPE_CHAR #define BOOST_SPIRIT_DEPRECATED_INCLUDE_ESCAPE_CHAR +#include <boost/version.hpp> + +#if BOOST_VERSION >= 103800 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) # pragma message ("Warning: This header is deprecated. Please use: boost/spirit/include/classic_escape_char.hpp") #elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) # warning "This header is deprecated. Please use: boost/spirit/include/classic_escape_char.hpp" #endif +#endif #if !defined(BOOST_SPIRIT_USE_OLD_NAMESPACE) #define BOOST_SPIRIT_USE_OLD_NAMESPACE Modified: brlcad/trunk/src/other/boost/spirit/utility/lists.hpp =================================================================== --- brlcad/trunk/src/other/boost/spirit/utility/lists.hpp 2008-08-08 09:06:34 UTC (rev 32349) +++ brlcad/trunk/src/other/boost/spirit/utility/lists.hpp 2008-08-08 09:58:25 UTC (rev 32350) @@ -9,11 +9,15 @@ #ifndef BOOST_SPIRIT_DEPRECATED_INCLUDE_LISTS #define BOOST_SPIRIT_DEPRECATED_INCLUDE_LISTS +#include <boost/version.hpp> + +#if BOOST_VERSION >= 103800 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) # pragma message ("Warning: This header is deprecated. Please use: boost/spirit/include/classic_lists.hpp") #elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) # warning "This header is deprecated. Please use: boost/spi... [truncated message content] |
From: <hom...@us...> - 2008-08-11 10:09:08
|
Revision: 32373 http://brlcad.svn.sourceforge.net/brlcad/?rev=32373&view=rev Author: homovulgaris Date: 2008-08-11 10:09:10 +0000 (Mon, 11 Aug 2008) Log Message: ----------- shifting test to outside libpc since it depends on pc,rt,wdb Modified Paths: -------------- brlcad/trunk/src/libpc/Makefile.am brlcad/trunk/src/util/Makefile.am Added Paths: ----------- brlcad/trunk/src/util/pc_test.c Removed Paths: ------------- brlcad/trunk/src/libpc/pc_test.c Property Changed: ---------------- brlcad/trunk/src/libpc/ brlcad/trunk/src/util/ Property changes on: brlcad/trunk/src/libpc ___________________________________________________________________ Modified: svn:ignore - .deps .libs Makefile Makefile.in pc_test vm_test solver_test + .deps .libs Makefile Makefile.in vm_test solver_test Modified: brlcad/trunk/src/libpc/Makefile.am =================================================================== --- brlcad/trunk/src/libpc/Makefile.am 2008-08-11 02:35:27 UTC (rev 32372) +++ brlcad/trunk/src/libpc/Makefile.am 2008-08-11 10:09:10 UTC (rev 32373) @@ -9,7 +9,6 @@ ${TCL_CPPFLAGS} noinst_PROGRAMS = \ - pc_test \ solver_test \ vm_test @@ -43,9 +42,6 @@ libpc_nil.la \ ${PC_LIBS} -pc_test_SOURCES = pc_test.c -pc_test_LDADD = libpc.la ${PC_LIBS} - solver_test_SOURCES = solver_test.cpp solver_test_LDADD = libpc.la ${PC_LIBS} Deleted: brlcad/trunk/src/libpc/pc_test.c =================================================================== --- brlcad/trunk/src/libpc/pc_test.c 2008-08-11 02:35:27 UTC (rev 32372) +++ brlcad/trunk/src/libpc/pc_test.c 2008-08-11 10:09:10 UTC (rev 32373) @@ -1,128 +0,0 @@ -/* P C _ T E S T . C - * BRL-CAD - * - * Copyright (c) 2008-2012 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 pc_test.c - * - * Simple test file for checking various aspects of libpc through the - * initial development phase - * - * Immediate jobs: Include cleanup - * Short term: Clean up commandline argument parsing - * - * @author Dawn Thomas - * - */ - -#include "common.h" - -#include <stdlib.h> -#include <ctype.h> -#include <string.h> - -int -main(int argc, char **argv) -{ -#if 0 - int i,ret; - struct rt_wdb *fp; - struct directory *dp; - struct rt_db_internal ip; - struct rt_ell_internal *eip; - struct pc_pc_set pcs; - - point_t cent; - fastf_t rad; - char solnam[9]; - /* Set up solid name */ - solnam[0] = 's'; - solnam[1] = '.'; - solnam[2] = 's'; - solnam[3] = 'p'; - solnam[4] = 'h'; - solnam[5] = ' '; - solnam[6] = 'P'; - solnam[7] = '1'; - solnam[8] = '\0'; - - /*rt_init_resource(&rt_uniresource,0,NULL);*/ - if (argc!=2) { - bu_exit(1,"Too few arguments, Please provide output filename\n"); - } - - if ((fp = wdb_fopen(argv[1])) == NULL) { - perror(argv[2]); - return 1; - } - mk_id(fp,"Parametrics test"); - cent[0] = 3.4; - cent[1] = 4.5; - cent[2] = 5.3; - rad = 53.2; - mk_sph(fp, solnam, cent, rad); - - solnam[0] = 's'; - solnam[1] = '.'; - solnam[2] = 's'; - solnam[3] = 'p'; - solnam[4] = 'h'; - solnam[5] = ' '; - solnam[6] = 'P'; - solnam[7] = '2'; - solnam[8] = '\0'; - - cent[0] = 23.4; - cent[1] = 34.5; - cent[2] = 45.3; - rad = 153.2; - mk_sph(fp, solnam, cent, rad); - - if ((dp = db_lookup(fp->dbip,solnam,LOOKUP_QUIET)) == DIR_NULL) - return 2; - /*rt_db_get_internal(&intern, dp, fp->dbip, NULL, &rt_uniresource);*/ - - - //pc_mk_constraint(fp,"Constraint",0); - if ((dp = db_lookup(fp->dbip,"Constraint",LOOKUP_QUIET)) == DIR_NULL) - return 3; - wdb_import(fp, &ip,solnam, (matp_t)NULL); - ip.idb_meth->ft_params(&pcs,&ip); - /*fprintf(stdout, "%s = ( %f , %f , %f ) %s = (%f,%f,%f) %s = (%f,%f,%f) %s = (%f,%f,%f)\n",\ - bu_vls_addr(pcs.ps[0].name), pcs.ps[0].pval.pointp[0],pcs.ps[0].pval.pointp[1], \ - pcs.ps[0].pval.pointp[2], bu_vls_addr(pcs.ps[1].name), pcs.ps[1].pval.vectorp[0], \ - pcs.ps[1].pval.vectorp[1], pcs.ps[1].pval.vectorp[2], bu_vls_addr(pcs.ps[2].name), \ - pcs.ps[2].pval.vectorp[0], pcs.ps[2].pval.vectorp[1], pcs.ps[2].pval.vectorp[2], \ - bu_vls_addr(pcs.ps[3].name), pcs.ps[3].pval.vectorp[0], pcs.ps[3].pval.vectorp[1], \ - pcs.ps[3].pval.vectorp[2]);*/ - /* Todo: Free pcs parametric set */ - - wdb_close(fp); - - return ret; -#endif -} - -/* - * Local Variables: - * mode: C - * tab-width: 8 - * indent-tabs-mode: t - * c-file-style: "stroustrup" - * End: - * ex: shiftwidth=4 tabstop=8 - */ Property changes on: brlcad/trunk/src/util ___________________________________________________________________ Modified: svn:ignore - .deps .libs Makefile Makefile.in alias-pix ap-pix asc-pl azel bary binfo bombardier buffer bw-a bw-imp bw-pix bw-png bw-ps bw-rle bw3-pix bwcrop bwdiff bwfilter bwhist bwhisteq bwmod bwrect bwrot bwscale bwshrink bwstat bwthresh cv dbcp decimate double-asc dpix-pix dsp_add dunncolor dunnsnap files-tape fix_polysolids gencolor hex imgdims loop lowp mac-pix msrandom mst op-bw orle-pix pcd-pix pix-alias pix-bw pix-bw3 pix-orle pix-png pix-ppm pix-ps pix-rle pix-spm pix-sun pix-yuv pix3filter pixbackgnd pixbgstrip pixblend pixborder pixbustup pixclump pixcolors pixcount pixcut pixdiff pixdsplit pixelswap pixembed pixfade pixfields pixfieldsep pixfilter pixhalve pixhist pixhist3d pixhist3d-pl pixinterp2x pixmatte pixmerge pixmorph pixpaste pixrect pixrot pixsaturate pixscale pixshrink pixstat pixsubst pixtile pixuntile pl-X pl-X10.1 pl-asc pl-dm pl-hpgl pl-pl pl-ps pl-sgi pl-tek plcolor pldebug plgetframe plline2 plrot plstat png-bw png-pix png_info query remapid rle-pix roots_example sgi-pix sun-pix terrain texturescale ttcp wavelet xyz-pl yuv-pix + .deps .libs Makefile Makefile.in alias-pix ap-pix asc-pl azel bary binfo bombardier buffer bw-a bw-imp bw-pix bw-png bw-ps bw-rle bw3-pix bwcrop bwdiff bwfilter bwhist bwhisteq bwmod bwrect bwrot bwscale bwshrink bwstat bwthresh cv dbcp decimate double-asc dpix-pix dsp_add dunncolor dunnsnap files-tape fix_polysolids gencolor hex imgdims loop lowp mac-pix msrandom mst op-bw orle-pix pcd-pix pc_test pix-alias pix-bw pix-bw3 pix-orle pix-png pix-ppm pix-ps pix-rle pix-spm pix-sun pix-yuv pix3filter pixbackgnd pixbgstrip pixblend pixborder pixbustup pixclump pixcolors pixcount pixcut pixdiff pixdsplit pixelswap pixembed pixfade pixfields pixfieldsep pixfilter pixhalve pixhist pixhist3d pixhist3d-pl pixinterp2x pixmatte pixmerge pixmorph pixpaste pixrect pixrot pixsaturate pixscale pixshrink pixstat pixsubst pixtile pixuntile pl-X pl-X10.1 pl-asc pl-dm pl-hpgl pl-pl pl-ps pl-sgi pl-tek plcolor pldebug plgetframe plline2 plrot plstat png-bw png-pix png_info query remapid rle-pix roots_example sgi-pix sun-pix terrain texturescale ttcp wavelet xyz-pl yuv-pix Modified: brlcad/trunk/src/util/Makefile.am =================================================================== --- brlcad/trunk/src/util/Makefile.am 2008-08-11 02:35:27 UTC (rev 32372) +++ brlcad/trunk/src/util/Makefile.am 2008-08-11 10:09:10 UTC (rev 32373) @@ -145,8 +145,11 @@ AM_CPPFLAGS = ${TCL_CPPFLAGS} -noinst_PROGRAMS = roots_example +noinst_PROGRAMS = \ + roots_example \ + pc_test + dist_bin_SCRIPTS = \ rtwizard \ morphedit.tcl @@ -522,6 +525,9 @@ roots_example_SOURCES = roots_example.c roots_example_LDADD = ${RT} ${BU} +pc_test_SOURCES = pc_test.c +pc_test_LDADD = ${PC} ${PC_LIBS} ${WDB} ${WDB_LIBS} + sgi_pix_SOURCES = sgi-pix.c sgi_pix_LDADD = ${BU} ${LIBSGIGL} Copied: brlcad/trunk/src/util/pc_test.c (from rev 32372, brlcad/trunk/src/libpc/pc_test.c) =================================================================== --- brlcad/trunk/src/util/pc_test.c (rev 0) +++ brlcad/trunk/src/util/pc_test.c 2008-08-11 10:09:10 UTC (rev 32373) @@ -0,0 +1,128 @@ +/* P C _ T E S T . C + * BRL-CAD + * + * Copyright (c) 2008-2012 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 pc_test.c + * + * Simple test file for checking various aspects of libpc through the + * initial development phase + * + * Immediate jobs: Include cleanup + * Short term: Clean up commandline argument parsing + * + * @author Dawn Thomas + * + */ + +#include "common.h" + +#include <stdlib.h> +#include <ctype.h> +#include <string.h> + +int +main(int argc, char **argv) +{ +#if 0 + int i,ret; + struct rt_wdb *fp; + struct directory *dp; + struct rt_db_internal ip; + struct rt_ell_internal *eip; + struct pc_pc_set pcs; + + point_t cent; + fastf_t rad; + char solnam[9]; + /* Set up solid name */ + solnam[0] = 's'; + solnam[1] = '.'; + solnam[2] = 's'; + solnam[3] = 'p'; + solnam[4] = 'h'; + solnam[5] = ' '; + solnam[6] = 'P'; + solnam[7] = '1'; + solnam[8] = '\0'; + + /*rt_init_resource(&rt_uniresource,0,NULL);*/ + if (argc!=2) { + bu_exit(1,"Too few arguments, Please provide output filename\n"); + } + + if ((fp = wdb_fopen(argv[1])) == NULL) { + perror(argv[2]); + return 1; + } + mk_id(fp,"Parametrics test"); + cent[0] = 3.4; + cent[1] = 4.5; + cent[2] = 5.3; + rad = 53.2; + mk_sph(fp, solnam, cent, rad); + + solnam[0] = 's'; + solnam[1] = '.'; + solnam[2] = 's'; + solnam[3] = 'p'; + solnam[4] = 'h'; + solnam[5] = ' '; + solnam[6] = 'P'; + solnam[7] = '2'; + solnam[8] = '\0'; + + cent[0] = 23.4; + cent[1] = 34.5; + cent[2] = 45.3; + rad = 153.2; + mk_sph(fp, solnam, cent, rad); + + if ((dp = db_lookup(fp->dbip,solnam,LOOKUP_QUIET)) == DIR_NULL) + return 2; + /*rt_db_get_internal(&intern, dp, fp->dbip, NULL, &rt_uniresource);*/ + + + //pc_mk_constraint(fp,"Constraint",0); + if ((dp = db_lookup(fp->dbip,"Constraint",LOOKUP_QUIET)) == DIR_NULL) + return 3; + wdb_import(fp, &ip,solnam, (matp_t)NULL); + ip.idb_meth->ft_params(&pcs,&ip); + /*fprintf(stdout, "%s = ( %f , %f , %f ) %s = (%f,%f,%f) %s = (%f,%f,%f) %s = (%f,%f,%f)\n",\ + bu_vls_addr(pcs.ps[0].name), pcs.ps[0].pval.pointp[0],pcs.ps[0].pval.pointp[1], \ + pcs.ps[0].pval.pointp[2], bu_vls_addr(pcs.ps[1].name), pcs.ps[1].pval.vectorp[0], \ + pcs.ps[1].pval.vectorp[1], pcs.ps[1].pval.vectorp[2], bu_vls_addr(pcs.ps[2].name), \ + pcs.ps[2].pval.vectorp[0], pcs.ps[2].pval.vectorp[1], pcs.ps[2].pval.vectorp[2], \ + bu_vls_addr(pcs.ps[3].name), pcs.ps[3].pval.vectorp[0], pcs.ps[3].pval.vectorp[1], \ + pcs.ps[3].pval.vectorp[2]);*/ + /* Todo: Free pcs parametric set */ + + wdb_close(fp); + + return ret; +#endif +} + +/* + * Local Variables: + * mode: C + * tab-width: 8 + * indent-tabs-mode: t + * c-file-style: "stroustrup" + * End: + * ex: shiftwidth=4 tabstop=8 + */ Property changes on: brlcad/trunk/src/util/pc_test.c ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:mergeinfo + Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hom...@us...> - 2008-08-12 12:18:23
|
Revision: 32399 http://brlcad.svn.sourceforge.net/brlcad/?rev=32399&view=rev Author: homovulgaris Date: 2008-08-12 12:18:31 +0000 (Tue, 12 Aug 2008) Log Message: ----------- Shifting mk_constraint to libwdb Modified Paths: -------------- brlcad/trunk/src/librt/constraint.c brlcad/trunk/src/libwdb/Makefile.am brlcad/trunk/src/util/pc_test.c Added Paths: ----------- brlcad/trunk/src/libwdb/constraint.c Modified: brlcad/trunk/src/librt/constraint.c =================================================================== --- brlcad/trunk/src/librt/constraint.c 2008-08-12 07:00:03 UTC (rev 32398) +++ brlcad/trunk/src/librt/constraint.c 2008-08-12 12:18:31 UTC (rev 32399) @@ -35,7 +35,6 @@ #include "bu.h" #include "bn.h" #include "db.h" -#include "wdb.h" #include "pc.h" #include "raytrace.h" Modified: brlcad/trunk/src/libwdb/Makefile.am =================================================================== --- brlcad/trunk/src/libwdb/Makefile.am 2008-08-12 07:00:03 UTC (rev 32398) +++ brlcad/trunk/src/libwdb/Makefile.am 2008-08-12 12:18:31 UTC (rev 32399) @@ -16,6 +16,7 @@ ars.c \ bot.c \ cline.c \ + constraint.c \ dsp.c \ dynamic_geometry.c \ ebm.c \ Added: brlcad/trunk/src/libwdb/constraint.c =================================================================== --- brlcad/trunk/src/libwdb/constraint.c (rev 0) +++ brlcad/trunk/src/libwdb/constraint.c 2008-08-12 12:18:31 UTC (rev 32399) @@ -0,0 +1,86 @@ +/* P C _ M A I N . 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. + */ +/** @addtogroup pcdbio */ +/** @{ */ +/** @file pc_main.c + * + * @brief External C Routines of Parametrics and Constraints API + * + * @author Dawn Thomas + * + * + */ + +#include "common.h" + +#include <stdlib.h> + +#include "raytrace.h" +#include "wdb.h" +#include "pc.h" + +/** + * PC_MK_CONSTRAINT + * + * Given the appropriate parameters, makes the non-geometric + * constraint object and writes it to the database using + * wdb_put_internal. Only supported on database version 5 or above + * + */ +int +pc_mk_constraint( + struct rt_wdb *wdbp, + const char *name, + const char *expr ) +{ + struct rt_db_internal intern; + struct rt_constraint_internal *constraint; + + RT_CK_WDB(wdbp); + + RT_INIT_DB_INTERNAL(&intern); + /* Create a fresh new object for export */ + BU_GETSTRUCT( constraint, rt_constraint_internal ); + constraint->magic = RT_CONSTRAINT_MAGIC; + /* bu_vls_init( &constraint->shader );*/ + intern.idb_major_type = DB5_MAJORTYPE_BRLCAD; + intern.idb_type = ID_CONSTRAINT; + intern.idb_ptr = (genptr_t)constraint; + intern.idb_meth = &rt_functab[ID_CONSTRAINT]; + + /* Add data */ + constraint->id=1432; + constraint->type=323; + + /* The internal representation will be freed */ + return wdb_put_internal( wdbp, name, &intern, mk_conv2mm ); + /*return wdb_export(wdbp,name,(genptr_t) constraint,ID_CONSTRAINT, mk_conv2mm);*/ +} + +/** @} */ +/* + * Local Variables: + * mode: C + * tab-width: 8 + * indent-tabs-mode: t + * c-file-style: "stroustrup" + * End: + * ex: shiftwidth=4 tabstop=8 + */ Property changes on: brlcad/trunk/src/libwdb/constraint.c ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Modified: brlcad/trunk/src/util/pc_test.c =================================================================== --- brlcad/trunk/src/util/pc_test.c 2008-08-12 07:00:03 UTC (rev 32398) +++ brlcad/trunk/src/util/pc_test.c 2008-08-12 12:18:31 UTC (rev 32399) @@ -104,7 +104,7 @@ /*rt_db_get_internal(&intern, dp, fp->dbip, NULL, &rt_uniresource);*/ - //pc_mk_constraint(fp,"Constraint",0); + pc_mk_constraint(fp,"Constraint",0); if ((dp = db_lookup(fp->dbip,"Constraint",LOOKUP_QUIET)) == DIR_NULL) return 3; wdb_import(fp, &ip,solnam, (matp_t)NULL); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hom...@us...> - 2008-08-12 15:10:23
|
Revision: 32405 http://brlcad.svn.sourceforge.net/brlcad/?rev=32405&view=rev Author: homovulgaris Date: 2008-08-12 15:10:29 +0000 (Tue, 12 Aug 2008) Log Message: ----------- doxygen : correcting end of file while in a group error Modified Paths: -------------- brlcad/trunk/src/libpc/pcParser.cpp brlcad/trunk/src/librt/namegen.c Modified: brlcad/trunk/src/libpc/pcParser.cpp =================================================================== --- brlcad/trunk/src/libpc/pcParser.cpp 2008-08-12 14:59:32 UTC (rev 32404) +++ brlcad/trunk/src/libpc/pcParser.cpp 2008-08-12 15:10:29 UTC (rev 32405) @@ -114,3 +114,14 @@ bu_free(con, "free constraint"); } } + +/** @} */ +/* + * Local Variables: + * mode: C++ + * tab-width: 8 + * indent-tabs-mode: t + * c-file-style: "stroustrup" + * End: + * ex: shiftwidth=4 tabstop=8 + */ Modified: brlcad/trunk/src/librt/namegen.c =================================================================== --- brlcad/trunk/src/librt/namegen.c 2008-08-12 14:59:32 UTC (rev 32404) +++ brlcad/trunk/src/librt/namegen.c 2008-08-12 15:10:29 UTC (rev 32405) @@ -696,7 +696,7 @@ db_close(dbip); } - +/** @} */ /* * Local Variables: * tab-width: 8 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <n_...@us...> - 2008-08-25 02:06:10
|
Revision: 32525 http://brlcad.svn.sourceforge.net/brlcad/?rev=32525&view=rev Author: n_reed Date: 2008-08-25 02:06:18 +0000 (Mon, 25 Aug 2008) Log Message: ----------- added mged make/in support for point primitive: [make|in] <name> pnts Modified Paths: -------------- brlcad/trunk/src/libged/make.c brlcad/trunk/src/librt/primitives/pnts/pnts.c brlcad/trunk/src/mged/typein.c Modified: brlcad/trunk/src/libged/make.c =================================================================== --- brlcad/trunk/src/libged/make.c 2008-08-24 21:42:30 UTC (rev 32524) +++ brlcad/trunk/src/libged/make.c 2008-08-25 02:06:18 UTC (rev 32525) @@ -595,7 +595,7 @@ internal.idb_major_type = DB5_MAJORTYPE_BRLCAD; internal.idb_type = ID_PNTS; internal.idb_meth = &rt_functab[ID_PNTS]; - internal.idb_ptr = (genptr_t) bu_malloc(sizeof(struct rt_pnts_internal), "rt_pnts_internal"); + internal.idb_ptr = (genptr_t) bu_malloc(sizeof(struct rt_pnts_internal),"rt_pnts_internal"); pnts_ip = (struct rt_pnts_internal *) internal.idb_ptr; pnts_ip->magic = RT_PNTS_INTERNAL_MAGIC; @@ -603,10 +603,10 @@ pnts_ip->weight = 0; BU_GETSTRUCT(pnts_ip->vList, pnt); - BU_LIST_INIT(&(pnts_ip->vList->l)); + BU_LIST_INIT(&pnts_ip->vList->l); BU_GETSTRUCT(point, pnt); VSET(point->v, origin[X], origin[Y], origin[Z]); - BU_LIST_PUSH(&(pnts_ip->vList->l), &point->l); + BU_LIST_PUSH(&pnts_ip->vList->l, &point->l); } else if (strcmp(argv[bu_optind+1], "bot") == 0) { internal.idb_major_type = DB5_MAJORTYPE_BRLCAD; Modified: brlcad/trunk/src/librt/primitives/pnts/pnts.c =================================================================== --- brlcad/trunk/src/librt/primitives/pnts/pnts.c 2008-08-24 21:42:30 UTC (rev 32524) +++ brlcad/trunk/src/librt/primitives/pnts/pnts.c 2008-08-25 02:06:18 UTC (rev 32525) @@ -31,7 +31,8 @@ #include "rtgeom.h" #include "vmath.h" -#define SEG_LENGTH .1 /* length of axes segments plotted for points with zero weight */ +/* length of axes segments plotted for points with zero weight */ +#define SEG_LENGTH .1 /** * R T _ P N T S _ E X P O R T 5 @@ -40,13 +41,15 @@ * to the database format: numPoints, weight, points */ int -rt_pnts_export5(struct bu_external *external, const struct rt_db_internal *internal, double local2mm, const struct db_i *db) +rt_pnts_export5(struct bu_external *external, const struct rt_db_internal *internal, + double local2mm, const struct db_i *db) { - int i, pointBytes; + int i, numPointsBytes, weightBytes, pointBytes; + unsigned long numPoints; struct rt_pnts_internal *pnts; register struct pnt *point; struct bu_list *head; - fastf_t *pt; + fastf_t *points; /* acquire internal pnts structure */ RT_CK_DB_INTERNAL(internal); @@ -54,33 +57,41 @@ pnts = (struct rt_pnts_internal *) internal->idb_ptr; RT_PNTS_CK_MAGIC(pnts); + + numPoints = pnts->numPoints; - /* allocate enough space for the external format: unsigned long numPoints, double weight, point doubles */ + + /* allocate enough space in buffer for the external format: + * unsigned long numPoints, double weight, point doubles + */ + numPointsBytes = sizeof(long); + weightBytes = SIZEOF_NETWORK_DOUBLE; pointBytes = pnts->numPoints * ELEMENTS_PER_PT * SIZEOF_NETWORK_DOUBLE; - external->ext_nbytes = pointBytes + sizeof(long) + SIZEOF_NETWORK_DOUBLE; + external->ext_nbytes = numPointsBytes + weightBytes + pointBytes; external->ext_buf = (genptr_t) bu_malloc(external->ext_nbytes, "pnts external"); /* place numPoints and weight at beginning of buffer */ - (void) bu_plong((unsigned char *) external->ext_buf, pnts->numPoints); + (void) bu_plong((unsigned char *) external->ext_buf, numPoints); - htond((unsigned char *) external->ext_buf + sizeof(long), (unsigned char *) &pnts->weight, 1); + htond((unsigned char *)external->ext_buf + numPointsBytes, (unsigned char *)&pnts->weight, 1); - if (pointBytes > 0) { + if (numPoints > 0) { head = &pnts->vList->l; - pt = (fastf_t *) bu_malloc(pointBytes, "rt_pnts_export5: pt"); + points = (fastf_t *) bu_malloc(pointBytes, "rt_pnts_export5: points"); /* scale points and store in memory */ for (i = 0, BU_LIST_FOR(point, pnt, head), i += 3) { - VSCALE(&pt[i], point->v, local2mm); + VSCALE(&points[i], point->v, local2mm); } /* place scaled points after numPoints and weight in the buffer */ - htond((unsigned char *) external->ext_buf + sizeof(long) + SIZEOF_NETWORK_DOUBLE, (unsigned char *) pt, ELEMENTS_PER_PT * pnts->numPoints); + htond((unsigned char *) external->ext_buf + numPointsBytes + weightBytes, + (unsigned char *) points, ELEMENTS_PER_PT * numPoints); - bu_free((genptr_t) pt, "rt_pnts_export5: pt"); + bu_free((genptr_t) points, "rt_pnts_export5: points"); } return 0; @@ -93,9 +104,11 @@ * the internal structure and apply modeling transformations. */ int -rt_pnts_import5(struct rt_db_internal *internal, const struct bu_external *external, register const fastf_t *mat, const struct db_i *db) +rt_pnts_import5(struct rt_db_internal *internal, const struct bu_external *external, + register const fastf_t *mat, const struct db_i *db) { - int i, pointBytes; + int i, numPointsBytes, weightBytes, pointBytes; + unsigned long numPoints; struct rt_pnts_internal*pnts; struct pnt *point; fastf_t *pt; @@ -116,17 +129,21 @@ BU_LIST_INIT(&pnts->vList->l); /* pull internal members from buffer */ - pnts->numPoints = bu_glong((unsigned char *) external->ext_buf); - ntohd((unsigned char *) &pnts->weight, (unsigned char *) external->ext_buf + sizeof(long), 1); + numPointsBytes = sizeof(long); + weightBytes = SIZEOF_NETWORK_DOUBLE; - pointBytes = pnts->numPoints * ELEMENTS_PER_PT * SIZEOF_NETWORK_DOUBLE; + numPoints = pnts->numPoints = bu_glong((unsigned char *) external->ext_buf); + pointBytes = numPoints * ELEMENTS_PER_PT * SIZEOF_NETWORK_DOUBLE; + ntohd((unsigned char *)&pnts->weight, (unsigned char *)external->ext_buf + numPointsBytes, 1); - if (pnts->numPoints > 0) { + + if (numPoints > 0) { pt = (fastf_t *) bu_malloc(pointBytes, "rt_pnts_import5: pt"); /* pull points from buffer */ - ntohd((unsigned char *) pt, (unsigned char *) external->ext_buf + sizeof(long) + SIZEOF_NETWORK_DOUBLE, ELEMENTS_PER_PT * pnts->numPoints); + ntohd((unsigned char *) pt, (unsigned char *) external->ext_buf + numPointsBytes + + weightBytes, ELEMENTS_PER_PT * numPoints); if (mat == NULL) { @@ -134,7 +151,7 @@ } /* make point_t's from doubles and place in bu_list */ - for (i = 0; i < pnts->numPoints * ELEMENTS_PER_PT; i += 3) { + for (i = 0; i < numPoints * ELEMENTS_PER_PT; i += 3) { BU_GETSTRUCT(point, pnt); MAT4X3PNT(point->v, mat, &pt[i]); @@ -178,26 +195,30 @@ * Plot pnts collection as axes or spheres. */ int -rt_pnts_plot(struct bu_list *vhead, struct rt_db_internal *internal, const struct rt_tess_tol *ttol, const struct bn_tol *tol) +rt_pnts_plot(struct bu_list *vhead, struct rt_db_internal *internal, + const struct rt_tess_tol *ttol, const struct bn_tol *tol) { - double vCoord, hCoord, weight; + struct rt_pnts_internal *pnts; struct bu_list *head; - struct rt_pnts_internal *pnts; - struct pnt *point; struct rt_db_internal db; struct rt_ell_internal ell; + struct pnt *point; + double weight, vCoord, hCoord; point_t a, b; RT_CK_DB_INTERNAL(internal); pnts = (struct rt_pnts_internal *) internal->idb_ptr; RT_PNTS_CK_MAGIC(pnts); - weight = pnts->weight; + if (pnts->numPoints > 0) { + head = &pnts->vList->l; + weight = pnts->weight; + } else { + return 0; + } - if (pnts->numPoints > 0 && weight > 0) { - head = &pnts->vList->l; - + if (weight > 0) { /* set local database */ db.idb_magic = RT_DB_INTERNAL_MAGIC; db.idb_major_type = ID_ELL; @@ -215,7 +236,7 @@ VMOVE(ell.v, point->v); rt_ell_plot(vhead, &db, ttol, tol); } - } else if (pnts->numPoints > 0) { + } else { vCoord = hCoord = SEG_LENGTH / 2; for (BU_LIST_FOR(point, pnt, head)) { Modified: brlcad/trunk/src/mged/typein.c =================================================================== --- brlcad/trunk/src/mged/typein.c 2008-08-24 21:42:30 UTC (rev 32524) +++ brlcad/trunk/src/mged/typein.c 2008-08-25 02:06:18 UTC (rev 32525) @@ -528,6 +528,14 @@ "Enter name of sketch: " }; +char *p_pnts[] = { + "Enter number of points: ", + "Enter point weight: ", + "Enter X, Y, Z", + "Enter Y", + "Enter Z" +}; + /* F _ I N ( ) : decides which solid reader to call * Used for manual entry of solids. */ @@ -578,7 +586,8 @@ superell_in(char **cmd_argvs, struct rt_db_internal *intern), metaball_in(int argc, char **argv, struct rt_db_internal *intern, char **prompt), hyp_in(char **cmd_argvs, struct rt_db_internal *intern), - revolve_in(char **cmd_argvs, struct rt_db_internal *intern); + revolve_in(char **cmd_argvs, struct rt_db_internal *intern), + pnts_in(int argc, char **argv, struct rt_db_internal *intern, char **prompt); CHECK_DBI_NULL; @@ -869,6 +878,17 @@ nvals = 3*4 + 2; menu = p_superell; fn_in = superell_in; + } else if (strcmp(argv[2], "pnts") == 0) { + switch (pnts_in(argc, argv, &internal, p_pnts)) { + case CMD_BAD: + Tcl_AppendResult(interp, "ERROR, pnts not made!\n", (char *)NULL); + rt_db_free_internal(&internal, &rt_uniresource); + return TCL_ERROR; + case CMD_MORE: + return TCL_ERROR; + } + + goto do_new_update; } else if (strcmp(argv[2], "cline") == 0 || strcmp(argv[2], "grip") == 0 || strcmp(argv[2], "nmg") == 0 || @@ -2881,6 +2901,86 @@ return CMD_OK; } +/* P N T S _ I N */ +int +pnts_in(int argc, char **argv, struct rt_db_internal *intern, char **prompt) { + int i, j; + double weight; + unsigned long numPoints; + struct rt_pnts_internal *pnts; + struct pnt *point; + struct bu_vls tmpVls; + + CHECK_DBI_NULL; + + /* prompt for numPoints if not entered */ + if (argc < 4) { + Tcl_AppendResult(interp, MORE_ARGS_STR, prompt[0], (char *)NULL); + return CMD_MORE; + } + + /* validate numPoints */ + if (atol(argv[3]) < 0) { + Tcl_AppendResult(interp, "Number of points must be nonnegative!\n", (char *)NULL); + return CMD_BAD; + } + + numPoints = atol(argv[3]); + + /* prompt for weight of points if not entered */ + if (argc < 5) { + Tcl_AppendResult(interp, MORE_ARGS_STR, prompt[1], (char *)NULL); + return CMD_MORE; + } + + /* validate weight */ + if (atof(argv[4]) < 0) { + Tcl_AppendResult(interp, "Weight must be nonnegative!\n", (char *)NULL); + return CMD_BAD; + } + + weight = atof(argv[4]); + + /* set database structure */ + intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; + intern->idb_type = ID_PNTS; + intern->idb_meth = &rt_functab[ID_PNTS]; + intern->idb_ptr = (genptr_t) bu_malloc(sizeof(struct rt_pnts_internal), "rt_pnts_internal"); + + /* set internal structure */ + pnts = (struct rt_pnts_internal *) intern->idb_ptr; + pnts->magic = RT_PNTS_INTERNAL_MAGIC; + pnts->numPoints = numPoints; + pnts->weight = weight; + BU_GETSTRUCT(pnts->vList, pnt); + BU_LIST_INIT(&(pnts->vList->l)); + + /* prompt for X, Y, Z of points */ + if (argc < 5 + numPoints * ELEMENTS_PER_PT) { + bu_vls_init(&tmpVls); + + bu_vls_printf(&tmpVls, "%s for point %d: ", prompt[(argc - 2) % ELEMENTS_PER_PT + 2], + 1 + (argc - 5) / ELEMENTS_PER_PT); + + Tcl_AppendResult(interp, MORE_ARGS_STR, bu_vls_addr(&tmpVls), (char *)NULL); + + bu_vls_free(&tmpVls); + + return CMD_MORE; + } + + /* store points in list */ + for(i = 5; i < argc; i += 3) { + BU_GETSTRUCT(point, pnt); + + point->v[X] = atof(argv[i]) * local2base; + point->v[Y] = atof(argv[i + 1]) * local2base; + point->v[Z] = atof(argv[i + 2]) * local2base; + + BU_LIST_PUSH(&(pnts->vList->l), &(point->l)); + } +} + /* * Local Variables: * mode: C This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2008-09-05 01:08:33
|
Revision: 32574 http://brlcad.svn.sourceforge.net/brlcad/?rev=32574&view=rev Author: brlcad Date: 2008-09-05 01:08:43 +0000 (Fri, 05 Sep 2008) Log Message: ----------- make findang() static Modified Paths: -------------- brlcad/trunk/src/libged/analyze.c brlcad/trunk/src/mged/anal.c Modified: brlcad/trunk/src/libged/analyze.c =================================================================== --- brlcad/trunk/src/libged/analyze.c 2008-09-04 20:57:29 UTC (rev 32573) +++ brlcad/trunk/src/libged/analyze.c 2008-09-05 01:08:43 UTC (rev 32574) @@ -261,7 +261,7 @@ * angles = pointer to 5 fastf_t's to store angles * unitv = pointer to the unit vector (previously computed) */ -void +static void findang(register fastf_t *angles, register fastf_t *unitv) { fastf_t f; Modified: brlcad/trunk/src/mged/anal.c =================================================================== --- brlcad/trunk/src/mged/anal.c 2008-09-04 20:57:29 UTC (rev 32573) +++ brlcad/trunk/src/mged/anal.c 2008-09-05 01:08:43 UTC (rev 32574) @@ -314,7 +314,7 @@ * angles = pointer to 5 fastf_t's to store angles * unitv = pointer to the unit vector (previously computed) */ -void +static void findang(register fastf_t *angles, register fastf_t *unitv) { fastf_t f; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sta...@us...> - 2008-09-05 05:05:10
|
Revision: 32577 http://brlcad.svn.sourceforge.net/brlcad/?rev=32577&view=rev Author: starseeker Date: 2008-09-05 05:05:17 +0000 (Fri, 05 Sep 2008) Log Message: ----------- Fix a crash caused by too few args, add to normal MGED environment as nfind for easier testing. Although this is technically user visible I'm not quite sure it's NEWS file ready, so holding off - more work to do both in features and testing. Modified Paths: -------------- brlcad/trunk/src/libged/Makefile.am brlcad/trunk/src/libged/nfind.c brlcad/trunk/src/mged/cmd.c brlcad/trunk/src/mged/cmd.h brlcad/trunk/src/mged/setup.c Modified: brlcad/trunk/src/libged/Makefile.am =================================================================== --- brlcad/trunk/src/libged/Makefile.am 2008-09-05 04:33:58 UTC (rev 32576) +++ brlcad/trunk/src/libged/Makefile.am 2008-09-05 05:05:17 UTC (rev 32577) @@ -105,6 +105,7 @@ move_arb_edge.c \ move_arb_face.c \ mrot.c \ + nfind.c \ nirt.c \ nmg_collapse.c \ nmg_simplify.c \ @@ -206,6 +207,7 @@ ${TCL_CPPFLAGS} -DNEW_TOPS_BEHAVIOR noinst_HEADERS = \ + nfind.h \ ged_private.h \ qray.h Modified: brlcad/trunk/src/libged/nfind.c =================================================================== --- brlcad/trunk/src/libged/nfind.c 2008-09-05 04:33:58 UTC (rev 32576) +++ brlcad/trunk/src/libged/nfind.c 2008-09-05 05:05:17 UTC (rev 32577) @@ -671,7 +671,7 @@ int isoutput; int -wdb_find_cmd2(struct rt_wdb *wdbp, +wdb_nfind_cmd(struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char *argv[]) @@ -685,8 +685,13 @@ PLAN *dbplan; struct db_full_path dfp; - db_full_path_init(&dfp); - db_update_nref(wdbp->dbip, &rt_uniresource); + if (argc < 3) { + Tcl_AppendResult(interp, "nfind [path] [expressions...]\n", (char *)NULL); + } else { + db_full_path_init(&dfp); + db_update_nref(wdbp->dbip, &rt_uniresource); + + if ( !( (argv[1][0] == '-') || (argv[1][0] == '!') || (argv[1][0] == '(') )&& (strcmp(argv[1],"/") != 0)) { db_string_to_path(&dfp, wdbp->dbip, argv[1]); isoutput = 0; @@ -721,7 +726,8 @@ } } } - db_free_full_path(&dfp); + db_free_full_path(&dfp); + } return TCL_OK; } Modified: brlcad/trunk/src/mged/cmd.c =================================================================== --- brlcad/trunk/src/mged/cmd.c 2008-09-05 04:33:58 UTC (rev 32576) +++ brlcad/trunk/src/mged/cmd.c 2008-09-05 05:05:17 UTC (rev 32577) @@ -2585,6 +2585,24 @@ return wdb_find_cmd(wdbp, interp, argc, argv); } +/** + * C M D _ N F I N D + * + * Unix style find command for db objects. + */ +int +cmd_nfind(ClientData clientData, + Tcl_Interp *interp, + int argc, + char **argv) +{ + CHECK_DBI_NULL; + + return wdb_nfind_cmd(wdbp, interp, argc, argv); +} + + + /** Grouping command * Format: g groupname object1 object2 .... objectn */ Modified: brlcad/trunk/src/mged/cmd.h =================================================================== --- brlcad/trunk/src/mged/cmd.h 2008-09-05 04:33:58 UTC (rev 32576) +++ brlcad/trunk/src/mged/cmd.h 2008-09-05 05:05:17 UTC (rev 32577) @@ -92,6 +92,7 @@ MGED_EXTERN(int cmd_mrot, (ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); MGED_EXTERN(int cmd_mvall, (ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); MGED_EXTERN(int cmd_name, (ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); +MGED_EXTERN(int cmd_nfind, (ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); MGED_EXTERN(int cmd_nmg_collapse, (ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); MGED_EXTERN(int cmd_nmg_simplify, (ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); MGED_EXTERN(int cmd_nop, (ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); Modified: brlcad/trunk/src/mged/setup.c =================================================================== --- brlcad/trunk/src/mged/setup.c 2008-09-05 04:33:58 UTC (rev 32576) +++ brlcad/trunk/src/mged/setup.c 2008-09-05 05:05:17 UTC (rev 32577) @@ -218,6 +218,7 @@ {"mv", cmd_name}, {"mvall", cmd_mvall}, {"nirt", f_nirt}, + {"nfind", cmd_nfind}, {"nmg_collapse", cmd_nmg_collapse}, {"nmg_simplify", cmd_nmg_simplify}, {"o_rotate", be_o_rotate}, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2008-09-06 05:45:33
|
Revision: 32586 http://brlcad.svn.sourceforge.net/brlcad/?rev=32586&view=rev Author: brlcad Date: 2008-09-06 05:45:44 +0000 (Sat, 06 Sep 2008) Log Message: ----------- add a stub interface for commands (like 'db') that don't exist until after other commands are run (e.g. opendb). this lets us get help on commands even if they don't exactly exist Modified Paths: -------------- brlcad/trunk/src/libged/wdb_obj.c brlcad/trunk/src/mged/cmd.c brlcad/trunk/src/mged/cmd.h brlcad/trunk/src/mged/setup.c Modified: brlcad/trunk/src/libged/wdb_obj.c =================================================================== --- brlcad/trunk/src/libged/wdb_obj.c 2008-09-06 05:40:58 UTC (rev 32585) +++ brlcad/trunk/src/libged/wdb_obj.c 2008-09-06 05:45:44 UTC (rev 32586) @@ -264,6 +264,7 @@ static int wdb_rmap_tcl(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]); static int wdb_importFg4Section_tcl(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]); static int wdb_newcmds_tcl(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]); +static int wdb_stub_tcl(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]); void wdb_deleteProc(ClientData clientData); static void wdb_deleteProc_rt(ClientData clientData); @@ -325,6 +326,7 @@ {"concat", wdb_concat_tcl}, {"copyeval", wdb_copyeval_tcl}, {"cp", wdb_copy_tcl}, + {"db", wdb_stub_tcl}, {"dbip", wdb_dbip_tcl}, {"dump", wdb_dump_tcl}, {"dup", wdb_dup_tcl}, @@ -1925,8 +1927,47 @@ /** * + */ +int +wdb_stub_cmd(struct rt_wdb *wdbp, + Tcl_Interp *interp, + int argc, + char *argv[]) +{ + if (argc != 1) { + struct bu_vls vls; + bu_vls_init(&vls); + bu_vls_printf(&vls, "helplib_alias wdb_%s %s", argv[0], argv[0]); + Tcl_Eval(interp, bu_vls_addr(&vls)); + bu_vls_free(&vls); + return TCL_ERROR; + } + + Tcl_AppendResult(interp, "%s: no database is currently opened!", argv[0], (char *)NULL); + return TCL_ERROR; +} + +/** + * Stub command callback for commands that only exist after a database + * is opened (e.g., db). * + * @returns false */ +static int +wdb_stub_tcl(ClientData clientData, + Tcl_Interp *interp, + int argc, + char *argv[]) +{ + struct rt_wdb *wdbp = (struct rt_wdb *)clientData; + + return wdb_stub_cmd(wdbp, interp, argc-1, argv+1); +} + +/** + * + * + */ int wdb_dbip_cmd(struct rt_wdb *wdbp, Tcl_Interp *interp, Modified: brlcad/trunk/src/mged/cmd.c =================================================================== --- brlcad/trunk/src/mged/cmd.c 2008-09-06 05:40:58 UTC (rev 32585) +++ brlcad/trunk/src/mged/cmd.c 2008-09-06 05:45:44 UTC (rev 32586) @@ -3052,6 +3052,17 @@ return TCL_OK; } +int +cmd_stub(ClientData clientData, + Tcl_Interp *interp, + int argc, + char **argv) +{ + CHECK_DBI_NULL; + + return wdb_stub_cmd(wdbp, interp, argc, argv); +} + /* * Local Variables: * mode: C Modified: brlcad/trunk/src/mged/cmd.h =================================================================== --- brlcad/trunk/src/mged/cmd.h 2008-09-06 05:40:58 UTC (rev 32585) +++ brlcad/trunk/src/mged/cmd.h 2008-09-06 05:45:44 UTC (rev 32586) @@ -125,6 +125,7 @@ MGED_EXTERN(int cmd_size, (ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); MGED_EXTERN(int cmd_solid_report, (ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); MGED_EXTERN(int cmd_solids_on_ray, (ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); +MGED_EXTERN(int cmd_stub, (ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); MGED_EXTERN(int cmd_stuff_str, (ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); MGED_EXTERN(int cmd_summary, (ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); MGED_EXTERN(int cmd_title, (ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); Modified: brlcad/trunk/src/mged/setup.c =================================================================== --- brlcad/trunk/src/mged/setup.c 2008-09-06 05:40:58 UTC (rev 32585) +++ brlcad/trunk/src/mged/setup.c 2008-09-06 05:45:44 UTC (rev 32586) @@ -111,6 +111,7 @@ {"cpi", f_copy_inv}, {"d", cmd_erase}, {"dall", cmd_erase_all}, + {"db", cmd_stub}, {"db_glob", cmd_mged_glob}, {"dbconcat", cmd_concat}, {"dbfind", cmd_find}, @@ -149,11 +150,11 @@ {"eye_pt", cmd_eye_pt}, {"facedef", f_facedef}, {"facetize", f_facetize}, - {"form", cmd_form}, + {"form", cmd_form}, {"fracture", f_fracture}, - {"front", bv_front}, + {"front", bv_front}, {"g", cmd_group}, - {"get", cmd_get}, + {"get", cmd_get}, {"get_autoview", cmd_get_autoview}, {"get_comb", cmd_get_comb}, {"get_dbip", cmd_get_ptr}, @@ -254,7 +255,7 @@ {"preview", f_preview}, {"ps", f_ps}, {"push", cmd_push}, - {"put", cmd_put}, + {"put", cmd_put}, {"put_comb", cmd_put_comb}, {"put_sed", f_put_sedit}, {"putmat", f_putmat}, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2008-09-23 00:32:45
|
Revision: 32738 http://brlcad.svn.sourceforge.net/brlcad/?rev=32738&view=rev Author: brlcad Date: 2008-09-23 00:32:35 +0000 (Tue, 23 Sep 2008) Log Message: ----------- remove duplicate symbols on use_air, it was moved out of the application into the rt back-end Modified Paths: -------------- brlcad/trunk/src/remrt/remrt.c brlcad/trunk/src/rttherm/viewtherm.c Modified: brlcad/trunk/src/remrt/remrt.c =================================================================== --- brlcad/trunk/src/remrt/remrt.c 2008-09-23 00:22:17 UTC (rev 32737) +++ brlcad/trunk/src/remrt/remrt.c 2008-09-23 00:32:35 UTC (rev 32738) @@ -349,7 +349,7 @@ extern double AmbientIntensity; extern double azimuth, elevation; extern int lightmodel; -int use_air = 0; +extern int use_air; /* variables shared with worker() */ extern int hypersample; Modified: brlcad/trunk/src/rttherm/viewtherm.c =================================================================== --- brlcad/trunk/src/rttherm/viewtherm.c 2008-09-23 00:22:17 UTC (rev 32737) +++ brlcad/trunk/src/rttherm/viewtherm.c 2008-09-23 00:32:35 UTC (rev 32738) @@ -81,9 +81,6 @@ double first, double last, int vis_nsamp)); -int use_air = 0; /* Handling of air in librt */ - - const char title[] = "Thermal Multi-Spectral RT"; const char usage[] = "\ Usage: rttherm [options] model.g objects...\n\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_r...@us...> - 2008-10-20 10:51:50
|
Revision: 32995 http://brlcad.svn.sourceforge.net/brlcad/?rev=32995&view=rev Author: d_rossberg Date: 2008-10-20 10:51:44 +0000 (Mon, 20 Oct 2008) Log Message: ----------- some modifications to stay in sync with Makefile.am Modified Paths: -------------- brlcad/trunk/src/libged/CMakeLists.txt brlcad/trunk/src/other/openNURBS/CMakeLists.txt Modified: brlcad/trunk/src/libged/CMakeLists.txt =================================================================== --- brlcad/trunk/src/libged/CMakeLists.txt 2008-10-19 22:27:50 UTC (rev 32994) +++ brlcad/trunk/src/libged/CMakeLists.txt 2008-10-20 10:51:44 UTC (rev 32995) @@ -26,6 +26,7 @@ cat.c center.c clip.c + clone.c color.c comb.c comb_color.c @@ -118,9 +119,11 @@ plot.c pmat.c pmodel2view.c + png.c pov.c prcolor.c prefix.c + ps.c push.c put.c put_comb.c @@ -204,6 +207,8 @@ include_directories( ../../include + ../other/libpng + ../other/libz ../other/tcl/generic ) Modified: brlcad/trunk/src/other/openNURBS/CMakeLists.txt =================================================================== --- brlcad/trunk/src/other/openNURBS/CMakeLists.txt 2008-10-19 22:27:50 UTC (rev 32994) +++ brlcad/trunk/src/other/openNURBS/CMakeLists.txt 2008-10-20 10:51:44 UTC (rev 32995) @@ -12,6 +12,7 @@ opennurbs_bezier.cpp opennurbs_beziervolume.cpp opennurbs_bitmap.cpp + opennurbs_box.cpp opennurbs_bounding_box.cpp opennurbs_brep.cpp opennurbs_brep_changesrf.cpp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sta...@us...> - 2008-10-22 03:22:30
|
Revision: 33041 http://brlcad.svn.sourceforge.net/brlcad/?rev=33041&view=rev Author: starseeker Date: 2008-10-22 03:22:23 +0000 (Wed, 22 Oct 2008) Log Message: ----------- These tweaks get make distcheck up to the documentation build. Modified Paths: -------------- brlcad/trunk/src/libged/Makefile.am brlcad/trunk/src/libpc/Makefile.am brlcad/trunk/src/other/Makefile.am Modified: brlcad/trunk/src/libged/Makefile.am =================================================================== --- brlcad/trunk/src/libged/Makefile.am 2008-10-22 03:15:08 UTC (rev 33040) +++ brlcad/trunk/src/libged/Makefile.am 2008-10-22 03:22:23 UTC (rev 33041) @@ -217,7 +217,8 @@ noinst_HEADERS = \ search.h \ ged_private.h \ - qray.h + qray.h \ + wdb_qray.h libged_la_SOURCES = libged_la_LDFLAGS = -version-info 19:1 -no-undefined Modified: brlcad/trunk/src/libpc/Makefile.am =================================================================== --- brlcad/trunk/src/libpc/Makefile.am 2008-10-22 03:15:08 UTC (rev 33040) +++ brlcad/trunk/src/libpc/Makefile.am 2008-10-22 03:22:23 UTC (rev 33041) @@ -23,7 +23,7 @@ pcGenerator.h \ pcParser.h \ pcMathVM.h \ - pcMathGrammar.h + pcMathGrammar.h \ pcSolver.h libpc_nil_la_SOURCES = \ Modified: brlcad/trunk/src/other/Makefile.am =================================================================== --- brlcad/trunk/src/other/Makefile.am 2008-10-22 03:15:08 UTC (rev 33040) +++ brlcad/trunk/src/other/Makefile.am 2008-10-22 03:22:23 UTC (rev 33041) @@ -156,7 +156,9 @@ endif # end ONLY_BENCHMARK -EXTRA_DIST = tkhtml3 +EXTRA_DIST = \ + boost \ + tkhtml3 DIST_SUBDIRS = \ URToolkit \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2008-10-25 14:03:00
|
Revision: 33065 http://brlcad.svn.sourceforge.net/brlcad/?rev=33065&view=rev Author: brlcad Date: 2008-10-25 14:02:56 +0000 (Sat, 25 Oct 2008) Log Message: ----------- add files missing from the dist Modified Paths: -------------- brlcad/trunk/src/external/ProEngineer/Makefile.am brlcad/trunk/src/libpc/Makefile.am brlcad/trunk/src/librt/Makefile.am Modified: brlcad/trunk/src/external/ProEngineer/Makefile.am =================================================================== --- brlcad/trunk/src/external/ProEngineer/Makefile.am 2008-10-25 13:58:01 UTC (rev 33064) +++ brlcad/trunk/src/external/ProEngineer/Makefile.am 2008-10-25 14:02:56 UTC (rev 33065) @@ -122,6 +122,11 @@ $(proe_DATA) \ $(rsrc_DATA) \ $(tmsg_DATA) \ + win32-msvc8/proe-brl-3.0/proe-brl-3.0.vcproj \ + win32-msvc8/proe-brl-4.0/proe-brl-4.0.vcproj \ + win32-msvc8/proe-brl-4.0/proe-brl.vcproj \ + win32-msvc8/proe \ + win32-msvc8/proe/proe.sln \ mk.in \ protk.dat.in Modified: brlcad/trunk/src/libpc/Makefile.am =================================================================== --- brlcad/trunk/src/libpc/Makefile.am 2008-10-25 13:58:01 UTC (rev 33064) +++ brlcad/trunk/src/libpc/Makefile.am 2008-10-25 14:02:56 UTC (rev 33065) @@ -50,6 +50,8 @@ vm_test_SOURCES = vm_test.cpp vm_test_LDADD = libpc.la ${PC_LIBS} +EXTRA_DIST = NOTES + FAST_OBJECTS = \ $(libpc_nil_la_OBJECTS) \ $(libpc_la_OBJECTS) \ Modified: brlcad/trunk/src/librt/Makefile.am =================================================================== --- brlcad/trunk/src/librt/Makefile.am 2008-10-25 13:58:01 UTC (rev 33064) +++ brlcad/trunk/src/librt/Makefile.am 2008-10-25 14:02:56 UTC (rev 33065) @@ -208,7 +208,11 @@ parse.c \ pmalloc.c \ primitives/bot/g_bot_include.c \ + primitives/ell/ell_brep.cpp \ + primitives/nmg/nmg_brep.cpp \ primitives/nmg/nmg_junk.c \ + primitives/sph/sph_brep.cpp \ + primitives/tor/tor_brep.cpp \ timer-nt.c \ timer52brl.c \ timerhep.c \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <eri...@us...> - 2008-10-31 21:02:06
|
Revision: 33099 http://brlcad.svn.sourceforge.net/brlcad/?rev=33099&view=rev Author: erikgreenwald Date: 2008-10-31 21:01:56 +0000 (Fri, 31 Oct 2008) Log Message: ----------- completely untested implementations. Wee. Modified Paths: -------------- brlcad/trunk/src/librt/primitives/metaball/metaball.c brlcad/trunk/src/libwdb/wdb.c Modified: brlcad/trunk/src/librt/primitives/metaball/metaball.c =================================================================== --- brlcad/trunk/src/librt/primitives/metaball/metaball.c 2008-10-31 20:45:46 UTC (rev 33098) +++ brlcad/trunk/src/librt/primitives/metaball/metaball.c 2008-10-31 21:01:56 UTC (rev 33099) @@ -664,13 +664,24 @@ * R T _ M E T A B A L L _ A D D _ P O I N T * * Add a single point to an existing metaball, recomputing the bounding sphere - * and box after. + * and box after. (should there be a matrix in this mix?) */ int rt_metaball_add_point (struct rt_metaball_internal *mb, const point_t *loc, const fastf_t fldstr, const fastf_t goo) { - bu_log("rt_metaball_add_point called!\n"); - return -1; + struct wdb_metaballpt *mbpt; + + BU_GETSTRUCT( mbpt, wdb_metaballpt ); + mbpt->l.magic = WDB_METABALLPT_MAGIC; + VMOVE( mbpt->coord, *loc ); + mbpt->fldstr = fldstr; + mbpt->sweat = goo; + BU_LIST_INSERT( &mb->metaball_ctrl_head, &mbpt->l ); + + /* TODO: some punty way to get the soltab so we can call prep, or something. This + * is OKish for writing at the moment. */ + + return 0; } Modified: brlcad/trunk/src/libwdb/wdb.c =================================================================== --- brlcad/trunk/src/libwdb/wdb.c 2008-10-31 20:45:46 UTC (rev 33098) +++ brlcad/trunk/src/libwdb/wdb.c 2008-10-31 21:01:56 UTC (rev 33099) @@ -661,8 +661,14 @@ struct rt_metaball_internal *mb; BU_GETSTRUCT( mb, rt_metaball_internal ); mb->magic = RT_METABALL_INTERNAL_MAGIC; + mb->threshold = threshold > 0 ? threshold : 1.0; + mb->method = method >= 0 ? method : 2; /* default to Blinn blob */ - bu_log("Not ready yet!"); + while(nctlpt--) + if( rt_metaball_add_point (mb, verts[nctlpt], fldstr[nctlpt][3], verts[nctlpt][4]) != 0 ) { + bu_log("something is fishy here in mk_metaball"); + bu_bomb("AIIEEEEEEE"); + } return wdb_export( wdbp, name, (genptr_t)mb, ID_METABALL, mk_conv2mm ); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2008-11-03 21:24:12
|
Revision: 33110 http://brlcad.svn.sourceforge.net/brlcad/?rev=33110&view=rev Author: brlcad Date: 2008-11-03 21:19:47 +0000 (Mon, 03 Nov 2008) Log Message: ----------- more ignores Property Changed: ---------------- brlcad/trunk/src/conv/dxf/ brlcad/trunk/src/libgcv/ Property changes on: brlcad/trunk/src/conv/dxf ___________________________________________________________________ Modified: svn:ignore - bot-bldxf dxf-g g-dxf + .deps .libs Makefile Makefile.in bot-bldxf dxf-g g-dxf Property changes on: brlcad/trunk/src/libgcv ___________________________________________________________________ Modified: svn:ignore - .deps .libs Makefile* + .deps .libs Makefile Makefile.in This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2008-11-05 04:50:32
|
Revision: 33141 http://brlcad.svn.sourceforge.net/brlcad/?rev=33141&view=rev Author: brlcad Date: 2008-11-05 04:50:22 +0000 (Wed, 05 Nov 2008) Log Message: ----------- removal of a few more rcs var instances Modified Paths: -------------- brlcad/trunk/src/adrt/master/compnet.c brlcad/trunk/src/adrt/slave/load.c brlcad/trunk/src/adrt/slave/load.h brlcad/trunk/src/adrt/slave/slave.c brlcad/trunk/src/vdeck/vdeck.c Modified: brlcad/trunk/src/adrt/master/compnet.c =================================================================== --- brlcad/trunk/src/adrt/master/compnet.c 2008-11-05 04:48:34 UTC (rev 33140) +++ brlcad/trunk/src/adrt/master/compnet.c 2008-11-05 04:50:22 UTC (rev 33141) @@ -21,11 +21,7 @@ * */ -/* - * $Id$ - */ - -/* compnet is first as it includes $(top_srcdir)/include/common.h */ +/* interface header */ #include "compnet.h" #include <stdio.h> Modified: brlcad/trunk/src/adrt/slave/load.c =================================================================== --- brlcad/trunk/src/adrt/slave/load.c 2008-11-05 04:48:34 UTC (rev 33140) +++ brlcad/trunk/src/adrt/slave/load.c 2008-11-05 04:50:22 UTC (rev 33141) @@ -19,7 +19,6 @@ */ /** @file load.c * - * $Id$ */ #ifndef TIE_PRECISION Modified: brlcad/trunk/src/adrt/slave/load.h =================================================================== --- brlcad/trunk/src/adrt/slave/load.h 2008-11-05 04:48:34 UTC (rev 33140) +++ brlcad/trunk/src/adrt/slave/load.h 2008-11-05 04:50:22 UTC (rev 33141) @@ -19,7 +19,6 @@ */ /** @file load.h * - * $Id$ */ #ifndef _SLAVE_LOAD_H Modified: brlcad/trunk/src/adrt/slave/slave.c =================================================================== --- brlcad/trunk/src/adrt/slave/slave.c 2008-11-05 04:48:34 UTC (rev 33140) +++ brlcad/trunk/src/adrt/slave/slave.c 2008-11-05 04:50:22 UTC (rev 33141) @@ -19,7 +19,6 @@ */ /** @file slave.c * - * $Id$ */ #ifndef TIE_PRECISION Modified: brlcad/trunk/src/vdeck/vdeck.c =================================================================== --- brlcad/trunk/src/vdeck/vdeck.c 2008-11-05 04:48:34 UTC (rev 33140) +++ brlcad/trunk/src/vdeck/vdeck.c 2008-11-05 04:50:22 UTC (rev 33141) @@ -99,7 +99,7 @@ char *usage[] = { "", - "v d e c k ($Revision$)", + "v d e c k", "Make COMGEOM decks of objects from a \"mged\" file suitable as", "input to GIFT5 or gift(1V).", "", This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sta...@us...> - 2008-11-05 22:55:28
|
Revision: 33148 http://brlcad.svn.sourceforge.net/brlcad/?rev=33148&view=rev Author: starseeker Date: 2008-11-05 21:39:44 +0000 (Wed, 05 Nov 2008) Log Message: ----------- Add support for make obj hyp to libged, using new mk_hyp from libwdb Modified Paths: -------------- brlcad/trunk/src/libged/make.c brlcad/trunk/src/libwdb/wdb.c Modified: brlcad/trunk/src/libged/make.c =================================================================== --- brlcad/trunk/src/libged/make.c 2008-11-05 21:31:27 UTC (rev 33147) +++ brlcad/trunk/src/libged/make.c 2008-11-05 21:39:44 UTC (rev 33148) @@ -51,6 +51,7 @@ struct rt_tor_internal *tor_ip; struct rt_grip_internal *grp_ip; struct rt_half_internal *half_ip; + struct rt_hyp_internal *hyp_ip; struct rt_rpc_internal *rpc_ip; struct rt_rhc_internal *rhc_ip; struct rt_epa_internal *epa_ip; @@ -65,7 +66,7 @@ struct rt_superell_internal *superell_ip; struct rt_metaball_internal *metaball_ip; struct rt_pnts_internal *pnts_ip; - static const char *usage = "-h | -t | -o origin -s sf name <arb8|arb7|arb6|arb5|arb4|arbn|ars|bot|ehy|ell|ell1|epa|eto|extrude|grip|half|nmg|part|pipe|pnts|rcc|rec|rhc|rpc|rpp|sketch|sph|tec|tgc|tor|trc>"; + static const char *usage = "-h | -t | -o origin -s sf name <arb8|arb7|arb6|arb5|arb4|arbn|ars|bot|ehy|ell|ell1|epa|eto|extrude|grip|half|hyp|nmg|part|pipe|pnts|rcc|rec|rhc|rpc|rpp|sketch|sph|tec|tgc|tor|trc>"; GED_CHECK_DATABASE_OPEN(gedp, BRLCAD_ERROR); GED_CHECK_READ_ONLY(gedp, BRLCAD_ERROR); @@ -533,6 +534,12 @@ /* Close enough for now.*/ eto_ip->eto_r = scale*0.5 - mag*cos(M_PI_4); eto_ip->eto_rd = scale*0.05; + } else if (strcmp(argv[bu_optind+1], "hyp") == 0) { + vect_t vertex, height, vectA; + VSET(vertex, origin[X], origin[Y], origin[Z]); + VSET(height, 0.0, 0.0, scale); + VSET(vectA, 0.0, scale*0.5, 0.0); + return mk_hyp(gedp->ged_wdbp, argv[save_bu_optind], vertex, height, vectA, scale*0.25, 0.4); } else if (strcmp(argv[bu_optind+1], "part") == 0) { internal.idb_major_type = DB5_MAJORTYPE_BRLCAD; internal.idb_type = ID_PARTICLE; Modified: brlcad/trunk/src/libwdb/wdb.c =================================================================== --- brlcad/trunk/src/libwdb/wdb.c 2008-11-05 21:31:27 UTC (rev 33147) +++ brlcad/trunk/src/libwdb/wdb.c 2008-11-05 21:39:44 UTC (rev 33148) @@ -338,7 +338,73 @@ return wdb_export( wdbp, name, (genptr_t)ell, ID_ELL, mk_conv2mm ); } + /* + * M K _ H Y P + * + * Make a hyperbolid at the given center point with a vertex, height vector, + * A vector, magnitude of the B vector, and neck to base ratio. + */ +int +mk_hyp(struct rt_wdb *wdbp, const char *name, const point_t vertex, const vect_t height_vector, const vect_t vectA, fastf_t magB, fastf_t base_neck_ratio) +{ + struct rt_hyp_internal *hyp; + vect_t inH, inAu; + vect_t unit_H; + + + BU_GETSTRUCT( hyp, rt_hyp_internal ); + hyp->hyp_magic = RT_HYP_INTERNAL_MAGIC; + + + if (( MAGNITUDE(vectA) <= SQRT_SMALL_FASTF ) || (magB <= SQRT_SMALL_FASTF)) + return -2; + + hyp->hyp_r1 = base_neck_ratio * MAGNITUDE(vectA); + hyp->hyp_r2 = base_neck_ratio * magB; + hyp->hyp_c = sqrt(4 * MAGSQ( vectA ) / MAGSQ( height_vector ) * ( 1 - base_neck_ratio*base_neck_ratio )); + + VSCALE(hyp->hyp_H, height_vector, 0.5); + VADD2(hyp->hyp_V, vertex, hyp->hyp_H); + VMOVE(hyp->hyp_Au, vectA); + VUNITIZE(hyp->hyp_Au); + + if (MAGNITUDE(hyp->hyp_H) < RT_LEN_TOL + || hyp->hyp_r1 < RT_LEN_TOL + || hyp->hyp_r2 < RT_LEN_TOL + || hyp->hyp_c < RT_LEN_TOL) { + bu_log("ERROR, height, axes, and distance to asymptotes must be greater than zero!\n"); + return -1; + } + + if (!NEAR_ZERO (VDOT(hyp->hyp_H, hyp->hyp_Au), RT_DOT_TOL )) { + bu_log("ERROR, major axis must be perpendicular to height vector!\n"); + return -1; + } + + if ( base_neck_ratio >= 1 || base_neck_ratio <= 0 ) { + bu_log("ERROR, neck to base ratio must be between 0 and 1!\n"); + return -1; + } + + if (hyp->hyp_r2 > hyp->hyp_r1) { + vect_t majorAxis; + fastf_t majorLen; + + VCROSS( majorAxis, hyp->hyp_H, hyp->hyp_Au ); + VUNITIZE( majorAxis ); + VMOVE( hyp->hyp_Au, majorAxis ); + majorLen = hyp->hyp_r2; + hyp->hyp_r2 = hyp->hyp_r1; + hyp->hyp_r1 = majorLen; + } + + return wdb_export( wdbp, name, (genptr_t)hyp, ID_HYP, mk_conv2mm ); +} + + + +/* * M K _ T O R * * Make a torus. Specify center, normal, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2008-11-06 12:14:04
|
Revision: 33152 http://brlcad.svn.sourceforge.net/brlcad/?rev=33152&view=rev Author: bob1961 Date: 2008-11-06 12:13:43 +0000 (Thu, 06 Nov 2008) Log Message: ----------- Mods to get g_qa working again. Modified Paths: -------------- brlcad/trunk/src/gtools/g_qa.c brlcad/trunk/src/libged/gqa.c Modified: brlcad/trunk/src/gtools/g_qa.c =================================================================== --- brlcad/trunk/src/gtools/g_qa.c 2008-11-06 08:26:05 UTC (rev 33151) +++ brlcad/trunk/src/gtools/g_qa.c 2008-11-06 12:13:43 UTC (rev 33152) @@ -103,6 +103,8 @@ bu_exit(1, usage, argv[0]); } + bu_semaphore_reinit(GED_SEM_LAST); + (void)ged_gqa(gedp, j, av); if (bu_vls_strlen(&gedp->ged_result_str) > 0) bu_log("%s", bu_vls_addr(&gedp->ged_result_str)); Modified: brlcad/trunk/src/libged/gqa.c =================================================================== --- brlcad/trunk/src/libged/gqa.c 2008-11-06 08:26:05 UTC (rev 33151) +++ brlcad/trunk/src/libged/gqa.c 2008-11-06 12:13:43 UTC (rev 33152) @@ -84,22 +84,22 @@ static double azimuth_deg; static double elevation_deg; static char *densityFileName; -static double gridSpacing = 50.0; -static double gridSpacingLimit = 0.25; /* limit to 1/4 mm */ +static double gridSpacing; +static double gridSpacingLimit; static char makeOverlapAssemblies; -static int require_num_hits = 1; -static int ncpu = 1; -static double Samples_per_model_axis = 2.0; +static int require_num_hits; +static int ncpu; +static double Samples_per_model_axis; static double overlap_tolerance; -static double volume_tolerance = -1.0; -static double weight_tolerance = -1.0; +static double volume_tolerance; +static double weight_tolerance; static int print_per_region_stats; static int max_region_name_len; -static int use_air = 1; +static int use_air; static int num_objects; /* number of objects specified on command line */ static int max_cpus; -static int num_views = 3; +static int num_views; static int verbose; static int plot_files; /* Boolean: Should we produce plot files? */ @@ -115,7 +115,7 @@ static int adjAir_color[3] = { 128, 255, 192 }; /* pale green */ static int expAir_color[3] = { 255, 128, 255 }; /* magenta */ -static int debug = 0; +static int debug; #define DLOG if (debug) bu_vls_printf /* Some defines for re-using the values from the application structure @@ -447,6 +447,7 @@ /* Turn off getopt's error messages */ bu_opterr = 0; + bu_optind = 1; /* get all the option flags from the command line */ while ((c=bu_getopt(ac, av, options)) != EOF) { @@ -2087,15 +2088,31 @@ analysis_flags = ANALYSIS_VOLUME | ANALYSIS_OVERLAPS | ANALYSIS_WEIGHT | ANALYSIS_EXP_AIR | ANALYSIS_ADJ_AIR | ANALYSIS_GAP; multiple_analyses = 1; + azimuth_deg = 0.0; + elevation_deg = 0.0; + densityFileName = (char *)0; gridSpacing = 50.0; gridSpacingLimit = 0.25; + makeOverlapAssemblies = 0; require_num_hits = 1; max_cpus = ncpu = bu_avail_cpus(); Samples_per_model_axis = 2.0; + overlap_tolerance = 0.0; volume_tolerance = -1.0; weight_tolerance = -1.0; + print_per_region_stats = 0; + max_region_name_len = 0; use_air = 1; + num_objects = 0; num_views = 3; + verbose = 0; + plot_files = 0; + plot_weight = (FILE *)0; + plot_volume = (FILE *)0; + plot_overlaps = (FILE *)0; + plot_adjair = (FILE *)0; + plot_gaps = (FILE *)0; + plot_expair = (FILE *)0; debug = 0; /* parse command line arguments */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2008-11-13 16:13:34
|
Revision: 33173 http://brlcad.svn.sourceforge.net/brlcad/?rev=33173&view=rev Author: brlcad Date: 2008-11-13 16:13:29 +0000 (Thu, 13 Nov 2008) Log Message: ----------- okay, so commit this since this is at least back into a compiling state. this adds support for reading in pnts that optionally have an orientation, per-point color values, and per-point sizes. the typein interface is slightly different from others in that it asks a handful of yes/no questions that then determines the variable number of arguments that follow. export support is only done for two of the eight pnt types and import support is just wrong (it'll crash if you create a pnt) but it's long past time to commit something incremental so here it is. next step is to finish export, implement import, and add support for reading from files. Modified Paths: -------------- brlcad/trunk/src/librt/primitives/pnts/pnts.c brlcad/trunk/src/mged/typein.c Modified: brlcad/trunk/src/librt/primitives/pnts/pnts.c =================================================================== --- brlcad/trunk/src/librt/primitives/pnts/pnts.c 2008-11-13 15:26:27 UTC (rev 33172) +++ brlcad/trunk/src/librt/primitives/pnts/pnts.c 2008-11-13 16:13:29 UTC (rev 33173) @@ -31,68 +31,116 @@ #include "rtgeom.h" #include "vmath.h" + /* length of axes segments plotted for points with zero scale */ #define SEG_LENGTH .1 + /** - * R T _ P N T S _ E X P O R T 5 + * R T _ P N T S _ E X P O R T 5 * * Export a pnts collection from the internal structure - * to the database format: numPoints, scale, points + * to the database format */ int rt_pnts_export5(struct bu_external *external, const struct rt_db_internal *internal, double local2mm, const struct db_i *db) { - int i, numPointsBytes, scaleBytes, pointBytes; - unsigned long numPoints; - struct rt_pnts_internal *pnts; - register struct pnt *point; - struct bu_list *head; - fastf_t *points; + struct rt_pnts_internal *pnts = NULL; + struct bu_list *head = NULL; + unsigned long pointDataSize; + unsigned char *buf = NULL; + int i; /* acquire internal pnts structure */ RT_CK_DB_INTERNAL(internal); BU_CK_EXTERNAL(external); + external->ext_nbytes = 0; pnts = (struct rt_pnts_internal *) internal->idb_ptr; RT_PNTS_CK_MAGIC(pnts); - - numPoints = pnts->count; + /* allocate enough for the header (magic + scale + type + count) */ + external->ext_nbytes = sizeof(long) + SIZEOF_NETWORK_DOUBLE + sizeof(unsigned short) + sizeof (unsigned long); + external->ext_buf = (genptr_t) bu_calloc(sizeof(unsigned char), external->ext_nbytes, "pnts external"); + buf = (unsigned char *)external->ext_buf; - /* allocate enough space in buffer for the external format: - * unsigned long numPoints, double scale, point doubles - */ - numPointsBytes = sizeof(long); - scaleBytes = SIZEOF_NETWORK_DOUBLE; - pointBytes = pnts->count * ELEMENTS_PER_PT * SIZEOF_NETWORK_DOUBLE; + buf = bu_plong(buf, pnts->magic); + htond(buf, (unsigned char *)&pnts->scale, 1); + buf += SIZEOF_NETWORK_DOUBLE; + buf = bu_pshort(buf, (unsigned short)pnts->type); + buf = bu_plong(buf, pnts->count); - external->ext_nbytes = numPointsBytes + scaleBytes + pointBytes; - external->ext_buf = (genptr_t) bu_malloc(external->ext_nbytes, "pnts external"); + if (pnts->count <= 0) { + /* no points to stash, we're done */ + return 0; + } - /* place numPoints and scale at beginning of buffer */ - (void) bu_plong((unsigned char *) external->ext_buf, numPoints); + /* figure out how much data there is for each point */ + pointDataSize = ELEMENTS_PER_POINT * SIZEOF_NETWORK_DOUBLE; + if (pnts->type & RT_PNT_TYPE_COL) + pointDataSize += 3 * SIZEOF_NETWORK_DOUBLE; + if (pnts->type & RT_PNT_TYPE_SCA) + pointDataSize += 1 * SIZEOF_NETWORK_DOUBLE; + if (pnts->type & RT_PNT_TYPE_NRM) + pointDataSize += ELEMENTS_PER_VECT; - htond((unsigned char *)external->ext_buf + numPointsBytes, (unsigned char *)&pnts->scale, 1); + external->ext_buf = (genptr_t)bu_realloc(external->ext_buf, external->ext_nbytes + (pnts->count * pointDataSize), "pnts external realloc"); + buf = external->ext_buf + external->ext_nbytes; + switch (pnts->type) { + case RT_PNT_TYPE_PNT: { + register struct pnt *point = (struct pnt *)pnts->point; + head = &point->l; + + for (i = 0, BU_LIST_FOR(point, pnt, head), i += ELEMENTS_PER_POINT) { + point_t p; + VSCALE(p, point->v, local2mm); + htond((unsigned char *)buf, (unsigned char *)p, ELEMENTS_PER_POINT); + buf += ELEMENTS_PER_POINT; + } - if (numPoints > 0) { - struct pnt *point = (struct pnt *)&pnts->point; - head = &point->l; + break; + } + case RT_PNT_TYPE_COL: { + register struct pnt_color *point = (struct pnt_color *)pnts->point; + head = &point->l; + + for (i = 0, BU_LIST_FOR(point, pnt_color, head), i += ELEMENTS_PER_POINT) { + point_t p; + fastf_t c[3]; + VSCALE(p, point->v, local2mm); + htond((unsigned char *)buf, (unsigned char *)p, ELEMENTS_PER_POINT); + buf += ELEMENTS_PER_POINT * SIZEOF_NETWORK_DOUBLE; + + bu_color_to_rgb_floats(&point->c, c); /* !!! left off here, need to implement */ + htond((unsigned char *)buf, (unsigned char *)c, 3); + buf += 3 * SIZEOF_NETWORK_DOUBLE; + } - points = (fastf_t *) bu_malloc(pointBytes, "rt_pnts_export5: points"); - - /* scale points and store in memory */ - for (i = 0, BU_LIST_FOR(point, pnt, head), i += 3) { - VSCALE(&points[i], point->v, local2mm); + break; } - - /* place scaled points after numPoints and scale in the buffer */ - htond((unsigned char *) external->ext_buf + numPointsBytes + scaleBytes, - (unsigned char *) points, ELEMENTS_PER_PT * numPoints); - - bu_free((genptr_t) points, "rt_pnts_export5: points"); + case RT_PNT_TYPE_SCA: { + external->ext_nbytes += pnts->count * ELEMENTS_PER_POINT * SIZEOF_NETWORK_DOUBLE; + } + case RT_PNT_TYPE_NRM: { + external->ext_nbytes += pnts->count * ELEMENTS_PER_POINT * SIZEOF_NETWORK_DOUBLE; + } + case RT_PNT_TYPE_COL_SCA: { + external->ext_nbytes += pnts->count * ELEMENTS_PER_POINT * SIZEOF_NETWORK_DOUBLE; + } + case RT_PNT_TYPE_COL_NRM: { + external->ext_nbytes += pnts->count * ELEMENTS_PER_POINT * SIZEOF_NETWORK_DOUBLE; + } + case RT_PNT_TYPE_SCA_NRM: { + external->ext_nbytes += pnts->count * ELEMENTS_PER_POINT * SIZEOF_NETWORK_DOUBLE; + } + case RT_PNT_TYPE_COL_SCA_NRM: { + external->ext_nbytes += pnts->count * ELEMENTS_PER_POINT * SIZEOF_NETWORK_DOUBLE; + } + default: + bu_log("ERROR: unknown points primitive type\n"); + return 0; } return 0; @@ -136,7 +184,7 @@ scaleBytes = SIZEOF_NETWORK_DOUBLE; numPoints = pnts->count = bu_glong((unsigned char *) external->ext_buf); - pointBytes = numPoints * ELEMENTS_PER_PT * SIZEOF_NETWORK_DOUBLE; + pointBytes = numPoints * ELEMENTS_PER_POINT * SIZEOF_NETWORK_DOUBLE; ntohd((unsigned char *)&pnts->scale, (unsigned char *)external->ext_buf + numPointsBytes, 1); @@ -146,7 +194,7 @@ /* pull points from buffer */ ntohd((unsigned char *) pt, (unsigned char *) external->ext_buf + numPointsBytes + - scaleBytes, ELEMENTS_PER_PT * numPoints); + scaleBytes, ELEMENTS_PER_POINT * numPoints); if (mat == NULL) { @@ -154,7 +202,7 @@ } /* make point_t's from doubles and place in bu_list */ - for (i = 0; i < numPoints * ELEMENTS_PER_PT; i += 3) { + for (i = 0; i < numPoints * ELEMENTS_PER_POINT; i += 3) { BU_GETSTRUCT(point, pnt); Modified: brlcad/trunk/src/mged/typein.c =================================================================== --- brlcad/trunk/src/mged/typein.c 2008-11-13 15:26:27 UTC (rev 33172) +++ brlcad/trunk/src/mged/typein.c 2008-11-13 16:13:29 UTC (rev 33173) @@ -31,6 +31,7 @@ #include <stdio.h> #include <stdlib.h> #include <math.h> +#include <ctype.h> #include <string.h> #include "bio.h" @@ -49,7 +50,6 @@ void aexists(char *name); -int vals; /* number of args for s_values[] */ char **promp; /* the prompt string */ char *p_half[] = { @@ -529,13 +529,71 @@ }; char *p_pnts[] = { - "Enter number of points: ", - "Enter point weight: ", - "Enter X, Y, Z", - "Enter Y", - "Enter Z" + "Enter number of points (-1 for auto): ", + "Are the points orientated (yes/no)? ", + "Do the points have color values (yes/no)? ", + "Do the points differ in size (yes/no)? ", + "Enter default point size (>= 0.0): ", + "Enter X, Y, Z position", + "Enter Y position component", + "Enter Z position component", + "Enter X, Y, Z orientation vector", + "Enter Y orientation vector component", + "Enter Z orientation vector component", + "Enter R, G, B color values (0 to 255)", + "Enter G component color value", + "Enter B component color value", + "Enter point size (>= 0.0, -1 for default)" }; + +/** + * helper function that infers a boolean value from a given string + * returning 0 or 1 for false and true respectively. + * + * False values are any answers that are case-insensitive variants of + * 0, "no", "false", and whitespace-only, NULL, or empty strings. + * + * True values are any answers that are not false. + */ +static int +booleanize(const char *answer) +{ + int index = 0; + const char *ap; + static const char *noes[] = { + "0", + "n", + "no", + "false", + NULL + }; + + if (!answer || (strlen(answer) <= 0)) { + return 0; + } + + ap = answer; + while (ap[0] != '\0' && isspace(ap[0])) { + ap++; + } + if (ap[0] == '\0') { + return 0; + } + + ap = noes[index]; + while (ap && ap[0] != '\0') { + if ((strcasecmp(ap, answer) == 0)) { + return 0; + } + index++; + ap = noes[index]; + } + + /* true! */ + return 1; +} + /* F _ I N ( ) : decides which solid reader to call * Used for manual entry of solids. */ @@ -628,8 +686,6 @@ argc -= bu_optind-1; argv += bu_optind-1; - vals = 0; - /* Get the name of the solid to be created */ if ( argc < 2 ) { Tcl_AppendResult(interp, MORE_ARGS_STR, "Enter name of solid: ", (char *)NULL); @@ -2905,84 +2961,303 @@ int pnts_in(int argc, char **argv, struct rt_db_internal *intern, char **prompt) { int i, j; - double scale; unsigned long numPoints; struct rt_pnts_internal *pnts; - struct pnt *point; - struct pnt *headPoint; - struct bu_vls tmpVls; + void *headPoint; + rt_pnt_type type; + + int oriented = 0; + int hasColor = 0; + int hasScale = 0; + double defaultSize = 0.0; + + int valuesPerPoint; + int nextPrompt; + CHECK_DBI_NULL; - /* prompt for numPoints if not entered */ + /* prompt for number of points if not provided */ if (argc < 4) { Tcl_AppendResult(interp, MORE_ARGS_STR, prompt[0], (char *)NULL); return CMD_MORE; } - - /* validate numPoints */ - if (atol(argv[3]) <= 0) { - Tcl_AppendResult(interp, "Number of points must be positive!\n", (char *)NULL); - return CMD_BAD; + numPoints = atol(argv[3]); + if (numPoints < 0) { + /* negative means automatically figure out how many points */ + numPoints = -1; } - numPoints = atol(argv[3]); - - /* prompt for scale of points if not entered */ + /* prompt for orientation */ if (argc < 5) { Tcl_AppendResult(interp, MORE_ARGS_STR, prompt[1], (char *)NULL); return CMD_MORE; } + oriented = booleanize(argv[4]); - /* validate scale */ - if (atof(argv[4]) < 0) { - Tcl_AppendResult(interp, "Scale must be nonnegative!\n", (char *)NULL); - return CMD_BAD; + /* prompt for color */ + if (argc < 6) { + Tcl_AppendResult(interp, MORE_ARGS_STR, prompt[2], (char *)NULL); + return CMD_MORE; } + hasColor = booleanize(argv[5]); - scale = atof(argv[4]); + /* prompt for uniform scale */ + if (argc < 7) { + Tcl_AppendResult(interp, MORE_ARGS_STR, prompt[3], (char *)NULL); + return CMD_MORE; + } + hasScale = booleanize(argv[6]); /* has scale if not uniform */ - /* set database structure */ + /* prompt for size of points if not entered */ + if (argc < 8) { + Tcl_AppendResult(interp, MORE_ARGS_STR, prompt[4], (char *)NULL); + return CMD_MORE; + } + defaultSize = atof(argv[7]); + if (defaultSize < 0.0) { + defaultSize = 0.0; + bu_log("WARNING: default point size must be non-negative, using zero\n"); + } + + /* how many values are we expecting per point */ + valuesPerPoint = ELEMENTS_PER_POINT; + type = RT_PNT_TYPE_PNT; + if (hasColor) { + /* R G B */ + type |= RT_PNT_TYPE_COL; + valuesPerPoint += 3; + } + if (hasScale) { + /* scale value */ + type |= RT_PNT_TYPE_SCA; + valuesPerPoint += 1; + } + if (oriented) { + /* vector */ + valuesPerPoint += ELEMENTS_PER_VECT; + type |= RT_PNT_TYPE_NRM; + } + + /* reset argc/argv to be just point data */ + argc -= 8; + argv += 8; + nextPrompt = argc % valuesPerPoint; + + if (numPoints < 0) { + /* determine count from argc */ + if (nextPrompt != 0) { + bu_log("WARNING: Data mismatch.\n" + "\tFound %d extra values after reading %d points.\n" + "\tExpecting %d values per point.\n" + "\tOnly using %d points.\n", + nextPrompt, + argc / valuesPerPoint, + valuesPerPoint, + argc / valuesPerPoint); + } + numPoints = argc / valuesPerPoint; + } + + /* prompt for X, Y, Z of points */ + if (argc < numPoints * valuesPerPoint) { + struct bu_vls vls; + bu_vls_init(&vls); + int nextAsk = nextPrompt + 5; + + switch (type) { + case RT_PNT_TYPE_PNT: + /* do nothing, they're in order */ + break; + case RT_PNT_TYPE_COL: + if (nextPrompt > 2) { + nextAsk += 3; + } + break; + case RT_PNT_TYPE_SCA: + if (nextPrompt > 2) { + nextAsk += 6; + } + break; + case RT_PNT_TYPE_NRM: + /* do nothing, they're in order */ + break; + case RT_PNT_TYPE_COL_SCA: + if (nextPrompt > 2) { + nextAsk += 3; + } + break; + case RT_PNT_TYPE_COL_NRM: + /* do nothing, they're in order */ + break; + case RT_PNT_TYPE_SCA_NRM: + if (nextPrompt > 5) { + nextAsk += 3; + } + break; + case RT_PNT_TYPE_COL_SCA_NRM: + /* do nothing, they're in order */ + break; + } + + bu_vls_printf(&vls, "%s for point %d: ", + prompt[nextAsk], + (argc + valuesPerPoint) / valuesPerPoint); + + Tcl_AppendResult(interp, MORE_ARGS_STR, bu_vls_addr(&vls), (char *)NULL); + + bu_vls_free(&vls); + return CMD_MORE; + } + + /* now we have everything we need to allocate an internal */ + + /* init database structure */ intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_PNTS; intern->idb_meth = &rt_functab[ID_PNTS]; intern->idb_ptr = (genptr_t) bu_malloc(sizeof(struct rt_pnts_internal), "rt_pnts_internal"); - /* set internal structure */ + /* init internal structure */ pnts = (struct rt_pnts_internal *) intern->idb_ptr; pnts->magic = RT_PNTS_INTERNAL_MAGIC; - pnts->scale = scale; - pnts->type = RT_PNT_TYPE_PNT; + pnts->scale = defaultSize; + pnts->type = type; pnts->count = numPoints; - headPoint = pnts->point; - BU_GETSTRUCT(headPoint, pnt); /* empty list head */ - BU_LIST_INIT(&(headPoint->l)); + pnts->point = NULL; - /* prompt for X, Y, Z of points */ - if (argc < 5 + (numPoints * ELEMENTS_PER_PT)) { - bu_vls_init(&tmpVls); + /* empty list head */ + switch (type) { + case RT_PNT_TYPE_PNT: + BU_GETSTRUCT(headPoint, pnt); + BU_LIST_INIT(&(((struct pnt *)headPoint)->l)); + break; + case RT_PNT_TYPE_COL: + BU_GETSTRUCT(headPoint, pnt_color); + BU_LIST_INIT(&(((struct pnt_color *)headPoint)->l)); + break; + case RT_PNT_TYPE_SCA: + BU_GETSTRUCT(headPoint, pnt_scale); + BU_LIST_INIT(&(((struct pnt_scale *)headPoint)->l)); + break; + case RT_PNT_TYPE_NRM: + BU_GETSTRUCT(headPoint, pnt_normal); + BU_LIST_INIT(&(((struct pnt_normal *)headPoint)->l)); + break; + case RT_PNT_TYPE_COL_SCA: + BU_GETSTRUCT(headPoint, pnt_color_scale); + BU_LIST_INIT(&(((struct pnt_color_scale *)headPoint)->l)); + break; + case RT_PNT_TYPE_COL_NRM: + BU_GETSTRUCT(headPoint, pnt_color_normal); + BU_LIST_INIT(&(((struct pnt_color_normal *)headPoint)->l)); + break; + case RT_PNT_TYPE_SCA_NRM: + BU_GETSTRUCT(headPoint, pnt_scale_normal); + BU_LIST_INIT(&(((struct pnt_scale_normal *)headPoint)->l)); + break; + case RT_PNT_TYPE_COL_SCA_NRM: + BU_GETSTRUCT(headPoint, pnt_color_scale_normal); + BU_LIST_INIT(&(((struct pnt_color_scale_normal *)headPoint)->l)); + break; + } + pnts->point = headPoint; - bu_vls_printf(&tmpVls, "%s for point %d: ", prompt[(argc - 2) % ELEMENTS_PER_PT + 2], - 1 + (argc - 5) / ELEMENTS_PER_PT); - - Tcl_AppendResult(interp, MORE_ARGS_STR, bu_vls_addr(&tmpVls), (char *)NULL); - - bu_vls_free(&tmpVls); - - return CMD_MORE; - } - /* store points in list */ - for (i = 5; i < 5 + (numPoints * ELEMENTS_PER_PT); i += 3) { - BU_GETSTRUCT(point, pnt); + for (i = 0; i < numPoints * valuesPerPoint; i += valuesPerPoint) { + void *point; /* bu_log("%d: [%s, %s, %s]\n", ((i-5)/3)+1, argv[i], argv[i+1], argv[i+2]); */ - - point->v[X] = strtod(argv[i], NULL) * local2base; - point->v[Y] = strtod(argv[i + 1], NULL) * local2base; - point->v[Z] = strtod(argv[i + 2], NULL) * local2base; - - BU_LIST_PUSH(&(headPoint->l), &(point->l)); + switch (type) { + case RT_PNT_TYPE_PNT: + BU_GETSTRUCT(point, pnt); + ((struct pnt *)point)->v[X] = strtod(argv[i + 0], NULL) * local2base; + ((struct pnt *)point)->v[Y] = strtod(argv[i + 1], NULL) * local2base; + ((struct pnt *)point)->v[Z] = strtod(argv[i + 2], NULL) * local2base; + BU_LIST_PUSH(&(((struct pnt *)headPoint)->l), &((struct pnt *)point)->l); + break; + case RT_PNT_TYPE_COL: + BU_GETSTRUCT(point, pnt_color); + ((struct pnt_color *)point)->v[X] = strtod(argv[i + 0], NULL) * local2base; + ((struct pnt_color *)point)->v[Y] = strtod(argv[i + 1], NULL) * local2base; + ((struct pnt_color *)point)->v[Z] = strtod(argv[i + 2], NULL) * local2base; + ((struct pnt_color *)point)->c.buc_magic = BU_COLOR_MAGIC; + ((struct pnt_color *)point)->c.buc_rgb[RED] = strtod(argv[i + 3], NULL); + ((struct pnt_color *)point)->c.buc_rgb[GRN] = strtod(argv[i + 4], NULL); + ((struct pnt_color *)point)->c.buc_rgb[BLU] = strtod(argv[i + 5], NULL); + BU_LIST_PUSH(&(((struct pnt_color *)headPoint)->l), &((struct pnt_color *)point)->l); + break; + case RT_PNT_TYPE_SCA: + BU_GETSTRUCT(point, pnt_scale); + ((struct pnt_scale *)point)->v[X] = strtod(argv[i + 0], NULL) * local2base; + ((struct pnt_scale *)point)->v[Y] = strtod(argv[i + 1], NULL) * local2base; + ((struct pnt_scale *)point)->v[Z] = strtod(argv[i + 2], NULL) * local2base; + ((struct pnt_scale *)point)->s = strtod(argv[i + 3], NULL) * local2base; + BU_LIST_PUSH(&(((struct pnt_scale *)headPoint)->l), &((struct pnt_scale *)point)->l); + break; + case RT_PNT_TYPE_NRM: + BU_GETSTRUCT(point, pnt_normal); + ((struct pnt_normal *)point)->v[X] = strtod(argv[i + 0], NULL) * local2base; + ((struct pnt_normal *)point)->v[Y] = strtod(argv[i + 1], NULL) * local2base; + ((struct pnt_normal *)point)->v[Z] = strtod(argv[i + 2], NULL) * local2base; + ((struct pnt_normal *)point)->n[X] = strtod(argv[i + 3], NULL) * local2base; + ((struct pnt_normal *)point)->n[Y] = strtod(argv[i + 4], NULL) * local2base; + ((struct pnt_normal *)point)->n[Z] = strtod(argv[i + 5], NULL) * local2base; + BU_LIST_PUSH(&(((struct pnt_normal *)headPoint)->l), &((struct pnt_normal *)point)->l); + break; + case RT_PNT_TYPE_COL_SCA: + BU_GETSTRUCT(point, pnt_color_scale); + ((struct pnt_color_scale *)point)->v[X] = strtod(argv[i + 0], NULL) * local2base; + ((struct pnt_color_scale *)point)->v[Y] = strtod(argv[i + 1], NULL) * local2base; + ((struct pnt_color_scale *)point)->v[Z] = strtod(argv[i + 2], NULL) * local2base; + ((struct pnt_color_scale *)point)->c.buc_magic = BU_COLOR_MAGIC; + ((struct pnt_color_scale *)point)->c.buc_rgb[RED] = strtod(argv[i + 3], NULL); + ((struct pnt_color_scale *)point)->c.buc_rgb[GRN] = strtod(argv[i + 4], NULL); + ((struct pnt_color_scale *)point)->c.buc_rgb[BLU] = strtod(argv[i + 5], NULL); + ((struct pnt_color_scale *)point)->s = strtod(argv[i + 6], NULL) * local2base; + BU_LIST_PUSH(&(((struct pnt_color_scale *)headPoint)->l), &((struct pnt_color_scale *)point)->l); + break; + case RT_PNT_TYPE_COL_NRM: + BU_GETSTRUCT(point, pnt_color_normal); + ((struct pnt_color_normal *)point)->v[X] = strtod(argv[i + 0], NULL) * local2base; + ((struct pnt_color_normal *)point)->v[Y] = strtod(argv[i + 1], NULL) * local2base; + ((struct pnt_color_normal *)point)->v[Z] = strtod(argv[i + 2], NULL) * local2base; + ((struct pnt_color_normal *)point)->n[X] = strtod(argv[i + 3], NULL) * local2base; + ((struct pnt_color_normal *)point)->n[Y] = strtod(argv[i + 4], NULL) * local2base; + ((struct pnt_color_normal *)point)->n[Z] = strtod(argv[i + 5], NULL) * local2base; + ((struct pnt_color_normal *)point)->c.buc_magic = BU_COLOR_MAGIC; + ((struct pnt_color_normal *)point)->c.buc_rgb[RED] = strtod(argv[i + 6], NULL); + ((struct pnt_color_normal *)point)->c.buc_rgb[GRN] = strtod(argv[i + 7], NULL); + ((struct pnt_color_normal *)point)->c.buc_rgb[BLU] = strtod(argv[i + 8], NULL); + BU_LIST_PUSH(&(((struct pnt_color_normal *)headPoint)->l), &((struct pnt_color_normal *)point)->l); + break; + case RT_PNT_TYPE_SCA_NRM: + BU_GETSTRUCT(point, pnt_scale_normal); + ((struct pnt_scale_normal *)point)->v[X] = strtod(argv[i + 0], NULL) * local2base; + ((struct pnt_scale_normal *)point)->v[Y] = strtod(argv[i + 1], NULL) * local2base; + ((struct pnt_scale_normal *)point)->v[Z] = strtod(argv[i + 2], NULL) * local2base; + ((struct pnt_scale_normal *)point)->n[X] = strtod(argv[i + 3], NULL) * local2base; + ((struct pnt_scale_normal *)point)->n[Y] = strtod(argv[i + 4], NULL) * local2base; + ((struct pnt_scale_normal *)point)->n[Z] = strtod(argv[i + 5], NULL) * local2base; + ((struct pnt_scale_normal *)point)->s = strtod(argv[i + 6], NULL) * local2base; + BU_LIST_PUSH(&(((struct pnt_scale_normal *)headPoint)->l), &((struct pnt_scale_normal *)point)->l); + break; + case RT_PNT_TYPE_COL_SCA_NRM: + BU_GETSTRUCT(point, pnt_color_scale_normal); + ((struct pnt_color_scale_normal *)point)->v[X] = strtod(argv[i + 0], NULL) * local2base; + ((struct pnt_color_scale_normal *)point)->v[Y] = strtod(argv[i + 1], NULL) * local2base; + ((struct pnt_color_scale_normal *)point)->v[Z] = strtod(argv[i + 2], NULL) * local2base; + ((struct pnt_color_scale_normal *)point)->n[X] = strtod(argv[i + 3], NULL) * local2base; + ((struct pnt_color_scale_normal *)point)->n[Y] = strtod(argv[i + 4], NULL) * local2base; + ((struct pnt_color_scale_normal *)point)->n[Z] = strtod(argv[i + 5], NULL) * local2base; + ((struct pnt_color_scale_normal *)point)->c.buc_magic = BU_COLOR_MAGIC; + ((struct pnt_color_scale_normal *)point)->c.buc_rgb[RED] = strtod(argv[i + 6], NULL); + ((struct pnt_color_scale_normal *)point)->c.buc_rgb[GRN] = strtod(argv[i + 7], NULL); + ((struct pnt_color_scale_normal *)point)->c.buc_rgb[BLU] = strtod(argv[i + 8], NULL); + ((struct pnt_color_scale_normal *)point)->s = strtod(argv[i + 9], NULL) * local2base; + BU_LIST_PUSH(&(((struct pnt_color_scale_normal *)headPoint)->l), &((struct pnt_color_scale_normal *)point)->l); + break; + } } return CMD_OK; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2008-12-02 16:19:52
|
Revision: 33268 http://brlcad.svn.sourceforge.net/brlcad/?rev=33268&view=rev Author: bob1961 Date: 2008-12-02 16:19:49 +0000 (Tue, 02 Dec 2008) Log Message: ----------- Added local2base command to libtclcad's ged object and update cadwidgets:Ged Modified Paths: -------------- brlcad/trunk/src/libtclcad/ged_obj.c brlcad/trunk/src/tclscripts/lib/Ged.tcl Modified: brlcad/trunk/src/libtclcad/ged_obj.c =================================================================== --- brlcad/trunk/src/libtclcad/ged_obj.c 2008-12-02 08:15:31 UTC (rev 33267) +++ brlcad/trunk/src/libtclcad/ged_obj.c 2008-12-02 16:19:49 UTC (rev 33268) @@ -176,6 +176,12 @@ ged_func_ptr func, const char *usage, int maxargs); +static int go_local2base(struct ged *gedp, + int argc, + const char *argv[], + ged_func_ptr func, + const char *usage, + int maxargs); static int go_make(struct ged *gedp, int argc, const char *argv[], @@ -527,6 +533,7 @@ {"listen", "vname [port]", MAXARGS, go_listen, GED_FUNC_PTR_NULL}, {"listeval", (char *)0, MAXARGS, go_pass_through_func, ged_pathsum}, {"loadview", "vname filename", 3, go_view_func, ged_loadview}, + {"local2base", (char *)0, MAXARGS, go_local2base, GED_FUNC_PTR_NULL}, {"log", (char *)0, MAXARGS, go_pass_through_func, ged_log}, {"lookat", "vname x y z", 5, go_view_func, ged_lookat}, {"ls", (char *)0, MAXARGS, go_pass_through_func, ged_ls}, @@ -2046,6 +2053,24 @@ } static int +go_local2base(struct ged *gedp, + int argc, + const char *argv[], + ged_func_ptr func, + const char *usage, + int maxargs) +{ + struct ged_dm_view *gdvp; + + /* initialize result */ + bu_vls_trunc(&gedp->ged_result_str, 0); + + bu_vls_printf(&gedp->ged_result_str, "%lf", go_current_gop->go_gedp->ged_wdbp->dbip->dbi_local2base); + + return BRLCAD_OK; +} + +static int go_make(struct ged *gedp, int argc, const char *argv[], Modified: brlcad/trunk/src/tclscripts/lib/Ged.tcl =================================================================== --- brlcad/trunk/src/tclscripts/lib/Ged.tcl 2008-12-02 08:15:31 UTC (rev 33267) +++ brlcad/trunk/src/tclscripts/lib/Ged.tcl 2008-12-02 16:19:49 UTC (rev 33268) @@ -112,6 +112,7 @@ method attr {args} method autoview {args} method autoview_all {args} + method base2local {} method bev {args} method bg {args} method bg_all {args} @@ -201,6 +202,7 @@ method listen {args} method listeval {args} method loadview {args} + method local2base {} method log {args} method lookat {args} method ls {args} @@ -747,6 +749,10 @@ eval $mGed autoview $itk_component(lr) $args } +::itcl::body cadwidgets::Ged::base2local {} { + eval $mGed base2local +} + ::itcl::body cadwidgets::Ged::bev {args} { eval $mGed bev $args } @@ -1115,6 +1121,10 @@ eval $mGed loadview $itk_component($itk_option(-pane)) $args } +::itcl::body cadwidgets::Ged::local2base {} { + eval $mGed local2base +} + ::itcl::body cadwidgets::Ged::log {args} { eval $mGed log $args } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2008-12-02 16:38:24
|
Revision: 33269 http://brlcad.svn.sourceforge.net/brlcad/?rev=33269&view=rev Author: bob1961 Date: 2008-12-02 16:38:21 +0000 (Tue, 02 Dec 2008) Log Message: ----------- Activate wizard plugins and the primitive creation buttons in Archer. Modified Paths: -------------- brlcad/trunk/src/archer/plugins/Wizards/tankwizardIA/TankWizardIA.tcl brlcad/trunk/src/tclscripts/archer/Archer.tcl brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl Modified: brlcad/trunk/src/archer/plugins/Wizards/tankwizardIA/TankWizardIA.tcl =================================================================== --- brlcad/trunk/src/archer/plugins/Wizards/tankwizardIA/TankWizardIA.tcl 2008-12-02 16:19:49 UTC (rev 33268) +++ brlcad/trunk/src/archer/plugins/Wizards/tankwizardIA/TankWizardIA.tcl 2008-12-02 16:38:21 UTC (rev 33269) @@ -490,7 +490,7 @@ set wizardXmlAction buildTankXML set wizardUnits in - set savedUnits [$archersMged units] + set savedUnits [$archersMged units -s] $archersMged units $_originUnits set sf1 [$archersMged local2base] $archersMged units $wizardUnits @@ -1274,7 +1274,7 @@ $archersMged attachObservers } - $archersMged refreshAll + $archersMged refresh_all $archersMged configure -autoViewEnable 1 } @@ -1283,7 +1283,7 @@ initRegionIds $archer pluginUpdateStatusBar "Building Tank..." - set savedUnits [$archersMged units] + set savedUnits [$archersMged units -s] $archersMged units $wizardUnits set local2base [$archersMged local2base] Modified: brlcad/trunk/src/tclscripts/archer/Archer.tcl =================================================================== --- brlcad/trunk/src/tclscripts/archer/Archer.tcl 2008-12-02 16:19:49 UTC (rev 33268) +++ brlcad/trunk/src/tclscripts/archer/Archer.tcl 2008-12-02 16:38:21 UTC (rev 33269) @@ -962,7 +962,7 @@ if {[info exists itk_component(mged)]} { SetWaitCursor - set savedUnits [$itk_component(mged) units] + set savedUnits [$itk_component(mged) units -s] $itk_component(mged) units in $itk_component(mged) configure -autoViewEnable 0 $itk_component(mged) detachObservers @@ -1198,11 +1198,11 @@ applyPreferences doLighting updateModesMenu -# updateWizardMenu + updateWizardMenu updateUtilityMenu deleteTargetOldCopy -# updateCreationButtons 1 + updateCreationButtons 1 buildGroundPlane showGroundPlane @@ -5688,7 +5688,7 @@ } else { if {[catch {$itk_component(mged) attr get $mWizardTop WizardOrigin} wizOrigin]} { set wizOrigin [dbCmd center] - set wizUnits [dbCmd units] + set wizUnits [dbCmd units -s] } elseif {[catch {$itk_component(mged) attr get $mWizardTop WizardUnits} wizUnits]} { set wizUnits mm } @@ -6027,7 +6027,7 @@ set name [dbCmd make_name $name] set oname $name set origin [dbCmd center] - set units [dbCmd units] + set units [dbCmd units -s] set dialog $itk_interior.wizardDialog ::iwidgets::dialog $dialog \ Modified: brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl =================================================================== --- brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl 2008-12-02 16:19:49 UTC (rev 33268) +++ brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl 2008-12-02 16:38:21 UTC (rev 33269) @@ -1870,7 +1870,7 @@ set delta [expr {[magnitude $diff] * [dbCmd base2local]}] tk_messageBox -title "Measured Distance" \ -icon info \ - -message "Measured distance: $delta [dbCmd units]" + -message "Measured distance: $delta [dbCmd units -s]" } @@ -2408,7 +2408,7 @@ set mCenterY [lindex $center 1] set mCenterZ [lindex $center 2] - set mDbUnits [dbCmd units] + set mDbUnits [dbCmd units -s] $itk_component(centerDialog) center [namespace tail $this] if {[$itk_component(centerDialog) activate]} { $dm center $mCenterX $mCenterY $mCenterZ @@ -2887,7 +2887,7 @@ } set mDbTitle [$itk_component(mged) title] - set mDbUnits [$itk_component(mged) units] + set mDbUnits [$itk_component(mged) units -s] set mPrevObjViewMode $OBJ_ATTR_VIEW_MODE set mPrevSelectedObjPath "" set mPrevSelectedObj "" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2008-12-04 18:32:40
|
Revision: 33288 http://brlcad.svn.sourceforge.net/brlcad/?rev=33288&view=rev Author: bob1961 Date: 2008-12-04 18:32:36 +0000 (Thu, 04 Dec 2008) Log Message: ----------- Add code to support "more args" commands in Tcl land. Activate the "in" and "inside" commands in Archer. Modified Paths: -------------- brlcad/trunk/src/libtclcad/ged_obj.c brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl brlcad/trunk/src/tclscripts/lib/Command.tcl brlcad/trunk/src/tclscripts/lib/Ged.tcl Modified: brlcad/trunk/src/libtclcad/ged_obj.c =================================================================== --- brlcad/trunk/src/libtclcad/ged_obj.c 2008-12-04 17:07:33 UTC (rev 33287) +++ brlcad/trunk/src/libtclcad/ged_obj.c 2008-12-04 18:32:36 UTC (rev 33288) @@ -5009,6 +5009,7 @@ const char **av_more = NULL; if (0 < bu_vls_strlen(&go_current_gop->go_more_args_callback)) { + bu_vls_trunc(&callback_cmd, 0); bu_vls_printf(&callback_cmd, "%s \"%s\"", bu_vls_addr(&go_current_gop->go_more_args_callback), bu_vls_addr(&gedp->ged_result_str)); @@ -5019,6 +5020,7 @@ return BRLCAD_ERROR; } + bu_vls_trunc(&temp, 0); bu_vls_printf(&temp, Tcl_GetStringResult(go_current_gop->go_interp)); Tcl_ResetResult(go_current_gop->go_interp); } else { Modified: brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl =================================================================== --- brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl 2008-12-04 17:07:33 UTC (rev 33287) +++ brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl 2008-12-04 18:32:36 UTC (rev 33288) @@ -395,6 +395,8 @@ variable mMouseRayCallbacks "" + method handleMoreArgs {args} + method cadWrapper {_cmd _eflag _hflag _sflag _tflag args} method mgedWrapper {_cmd _eflag _hflag _sflag _tflag args} @@ -1000,6 +1002,11 @@ } } +::itcl::body ArcherCore::handleMoreArgs {args} { + eval $itk_component(cmd) print_more_args_prompt $args + return [$itk_component(cmd) get_more_args] +} + ::itcl::body ArcherCore::cadWrapper {cmd eflag hflag sflag tflag args} { SetWaitCursor @@ -1337,7 +1344,7 @@ } $itk_component(mged) transparency_all 1 $itk_component(mged) bounds_all "-4096 4095 -4096 4095 -4096 4095" - $itk_component(mged) more_args_callback "$itk_component(cmd) putstring" + $itk_component(mged) more_args_callback [::itcl::code $this handleMoreArgs] $itk_component(mged) history_callback [::itcl::code $this addHistory] Modified: brlcad/trunk/src/tclscripts/lib/Command.tcl =================================================================== --- brlcad/trunk/src/tclscripts/lib/Command.tcl 2008-12-04 17:07:33 UTC (rev 33287) +++ brlcad/trunk/src/tclscripts/lib/Command.tcl 2008-12-04 18:32:36 UTC (rev 33288) @@ -42,6 +42,8 @@ public method history {} public method edit_style {args} + private method do_get_more_args {} + public method get_more_args {} public method putstring {str} public method reinitialize {} @@ -82,6 +84,7 @@ private method select_line {x y} private method selection_modify {x y} private method print {str} + public method print_more_args_prompt {_prompt} private method print_prompt {} private method print_prompt2 {} private method print_tag {str tag} @@ -112,6 +115,10 @@ private variable search_flag 0 private variable search_char "" private variable search_dir "" + + private variable more_args_var "" + private variable more_args_begin_index "" + private variable more_args_end_index "" } ::itcl::configbody Command::edit_style { @@ -199,6 +206,8 @@ $itk_component(text) tag configure cmd -foreground $itk_option(-cmd_color) $itk_component(text) tag configure oldcmd -foreground $itk_option(-oldcmd_color) $itk_component(text) tag configure result -foreground $itk_option(-result_color) + + rename ::gets ::tcl_gets } ::itcl::body Command::destructor {} { @@ -231,6 +240,31 @@ } } +::itcl::body Command::do_get_more_args {} { + set w $itk_component(text) + set more_args_end_index [$itk_component(text) index insert] + $w mark set insert {end - 2c} + $w insert insert \n + + $w see insert + update + + set more_args_var [$w get $more_args_begin_index $more_args_end_index] +} + +::itcl::body Command::get_more_args {} { + set more_args_var "" + set more_args_begin_index [$itk_component(text) index insert] + set w $itk_component(text) + bind $w <Return> "[::itcl::code $this do_get_more_args]; break" + bind $w <KP_Enter> "[::itcl::code $this do_get_more_args]; break" + vwait [::itcl::scope more_args_var] + bind $w <Return> "[::itcl::code $this doReturn]; break" + bind $w <KP_Enter> "[::itcl::code $this doReturn]; break" + + return $more_args_var +} + ::itcl::body Command::putstring {str} { set w $itk_component(text) set promptBegin [$w index {end - 1 l}] @@ -1058,6 +1092,10 @@ $w insert insert $str } +::itcl::body Command::print_more_args_prompt {_prompt} { + $itk_component(text) insert insert $_prompt +} + ::itcl::body Command::print_prompt {} { set w $itk_component(text) print_tag $itk_option(-prompt) prompt Modified: brlcad/trunk/src/tclscripts/lib/Ged.tcl =================================================================== --- brlcad/trunk/src/tclscripts/lib/Ged.tcl 2008-12-04 17:07:33 UTC (rev 33287) +++ brlcad/trunk/src/tclscripts/lib/Ged.tcl 2008-12-04 18:32:36 UTC (rev 33288) @@ -2772,9 +2772,9 @@ $help add idents {{file object(s)} {dump the idents for the specified objects to file}} $help add illum {{name} {illuminate object}} $help add importFg4Section {{obj section} {create an object by importing the specified section}} -#XXX Temporarily disabled (i.e. don't work properly) -# $help add in {{args} {creates a primitive by prompting the user for input}} -# $help add inside {{out_prim in_prim th(s)} {Creates in_prim as the inside of out_prim}} +#XXX Temporarily disabled (i.e. doesn't work properly) + $help add in {{args} {creates a primitive by prompting the user for input}} + $help add inside {{out_prim in_prim th(s)} {Creates in_prim as the inside of out_prim}} $help add isize {{} {returns the inverse of view size}} $help add item {{region ident [air [material [los]]]} {set region ident codes}} $help add keep {{keep_file object(s)} {save named objects in specified file}} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |