[brlcad-commits] SF.net SVN: brlcad:[33599] brlcad/trunk
Revision: 33599 http://brlcad.svn.sourceforge.net/brlcad/?rev=33599&view=rev Author: starseeker Date: 2009-01-23 21:00:13 + (Fri, 23 Jan 2009) Log Message: --- Add support for >, <, >=, <= to the -attr option in search Modified Paths: -- brlcad/trunk/NEWS brlcad/trunk/TODO brlcad/trunk/doc/docbook/system/man1/en/search.xml brlcad/trunk/src/libged/search.c Modified: brlcad/trunk/NEWS === --- brlcad/trunk/NEWS 2009-01-23 16:11:48 UTC (rev 33598) +++ brlcad/trunk/NEWS 2009-01-23 21:00:13 UTC (rev 33599) @@ -14,6 +14,7 @@ --- 2008-XX-XX Release 7.XX.X --- -- +* added >, <, >= and <= attr value comparisons in search - C. Yapp * fixed double-edged line segment sketch bug in dxf-g - John Anderson * mged 'inside' command no longer uses edit state objects - Bob Parker * reported and fixed mged documentation eto typein bug - Robert Penny Modified: brlcad/trunk/TODO === --- brlcad/trunk/TODO 2009-01-23 16:11:48 UTC (rev 33598) +++ brlcad/trunk/TODO 2009-01-23 21:00:13 UTC (rev 33599) @@ -45,10 +45,6 @@ * refactor mged's signal handling to make it possible to safely interrtupt long-running commands -* add support to 'search' to find objects with a given range of - numeric attributes (like finding objects with region_id within a - given range or that equal various values) - * add a -color option to all mged commands that draw geometry (B, eid, and E come to mind) Modified: brlcad/trunk/doc/docbook/system/man1/en/search.xml === --- brlcad/trunk/doc/docbook/system/man1/en/search.xml 2009-01-23 16:11:48 UTC (rev 33598) +++ brlcad/trunk/doc/docbook/system/man1/en/search.xml 2009-01-23 21:00:13 UTC (rev 33599) @@ -82,17 +82,19 @@ PRIMITIVES: - -attr attrib[=val] + -attr attrib[>/=val] Returns TRUE if the object has attribute attrib. If a specific value is - also supplied for the attribute, TRUE is returned if the object - both has the attribute and the attribute is set to value - val. - Both attrib and - val are treated as patterns under - shell pattern matching rules. + also supplied for the attribute with an equal condition, TRUE is returned if + the object both has the attribute and the attribute is set to value + val. In the case of >, <, >=, and <= + there are two possibilities - if val is numerical + a numerical comparison is performed, otherwise a string comparison is performed. + Both attrib and val + are treated as patterns under shell pattern matching rules when a string comparison + is performed, but in numerical mode only the attribute name is pattern matched. Modified: brlcad/trunk/src/libged/search.c === --- brlcad/trunk/src/libged/search.c2009-01-23 16:11:48 UTC (rev 33598) +++ brlcad/trunk/src/libged/search.c2009-01-23 21:00:13 UTC (rev 33599) @@ -725,49 +725,218 @@ struct bu_attribute_value_pair *avpp; int equalpos = 0; int checkval = 0; +int strcomparison = 0; int i; +long attr_val; bu_vls_init(&attribname); bu_vls_init(&value); -/* Check for unescaped equal sign - if present, the - * attribute must not only be present but have the - * value indicated. Escaping is done with the "/" - * character. +/* Check for unescaped >, < or = characters. If + * present, the attribute must not only be present + * but the value assigned to the attribute must + * satisfy the logical expression. In the case + * where a > or < is used with a string argument + * the behavior will follow that of the strcmp + * comparison command. In the case of equality + * between strings, fnmatch is used to support + * pattern matching */ -while ((equalpos < strlen(plan->attr_data)) && (plan->attr_data[equalpos] != '=')) { - if ((plan->attr_data[equalpos] == '/') && (plan->attr_data[equalpos + 1] == '=')) {equalpos++;} - equalpos++; +while ((equalpos < strlen(plan->attr_data)) && + (plan->attr_data[equalpos] != '=') && + (plan->attr_data[equalpos] != '>') && + (plan->attr_data[equalpos] != '<')) { + if ((plan->attr_data[equalpos] == '/') && (plan->attr_data[equalpos + 1] == '=')) {equalpos++;} + if ((plan->attr_data[equalpos] == '/') && (plan->attr_data[equalpos + 1] == '<')) {equalpos++;} + if ((plan->attr_data[equalpos] == '/') && (plan->attr_data[equalpos + 1] == '>')) {equalpos++;} + equalpos+
[brlcad-commits] SF.net SVN: brlcad:[33598] brlcad/trunk/misc
Revision: 33598 http://brlcad.svn.sourceforge.net/brlcad/?rev=33598&view=rev Author: brlcad Date: 2009-01-23 16:11:48 + (Fri, 23 Jan 2009) Log Message: --- add randmt.c Modified Paths: -- brlcad/trunk/misc/win32-msvc8/libbn/libbn.vcproj brlcad/trunk/misc/win32-msvc9/libbn/libbn.vcproj Modified: brlcad/trunk/misc/win32-msvc8/libbn/libbn.vcproj === --- brlcad/trunk/misc/win32-msvc8/libbn/libbn.vcproj2009-01-23 16:07:42 UTC (rev 33597) +++ brlcad/trunk/misc/win32-msvc8/libbn/libbn.vcproj2009-01-23 16:11:48 UTC (rev 33598) @@ -533,6 +533,26 @@ + + + + + + + + + + + + + + + + http://p.sf.net/sfu/sf-spreadtheword ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits
[brlcad-commits] SF.net SVN: brlcad:[33597] brlcad/trunk/src/mged
Revision: 33597 http://brlcad.svn.sourceforge.net/brlcad/?rev=33597&view=rev Author: bob1961 Date: 2009-01-23 16:07:42 + (Fri, 23 Jan 2009) Log Message: --- Modified MGED to use libged's ged_loadview, ged_preview and ged_solids_on_ray functions. Modified Paths: -- brlcad/trunk/src/mged/animedit.c brlcad/trunk/src/mged/cmd.c brlcad/trunk/src/mged/dodraw.c brlcad/trunk/src/mged/mged.c brlcad/trunk/src/mged/rtif.c brlcad/trunk/src/mged/setup.c Modified: brlcad/trunk/src/mged/animedit.c === --- brlcad/trunk/src/mged/animedit.c2009-01-23 16:05:18 UTC (rev 33596) +++ brlcad/trunk/src/mged/animedit.c2009-01-23 16:07:42 UTC (rev 33597) @@ -3501,6 +3501,50 @@ return curtree; } +/** + * B U I L D _ T O P S + * + * Build a command line vector of the tops of all objects in view. + */ +int +build_tops(char **start, char **end) +{ +register char **vp = start; +register struct solid *sp; + +/* + * Find all unique top-level entries. + * Mark ones already done with s_wflag == UP + */ +FOR_ALL_SOLIDS(sp, &gedp->ged_gdp->gd_headSolid) { + sp->s_wflag = DOWN; +} +FOR_ALL_SOLIDS(sp, &gedp->ged_gdp->gd_headSolid) { + register struct solid *forw; + struct directory *dp = FIRST_SOLID(sp); + + if ( sp->s_wflag == UP ) + continue; + if ( dp->d_addr == RT_DIR_PHONY_ADDR ) + continue; /* Ignore overlays, predictor, etc */ + if ( vp < end ) + *vp++ = dp->d_namep; + else { + Tcl_AppendResult(interp, "mged: ran out of comand vector space at ", +dp->d_namep, "\n", (char *)NULL); + break; + } + sp->s_wflag = UP; + for (BU_LIST_PFOR(forw, sp, solid, &gedp->ged_gdp->gd_headSolid)) { + if ( FIRST_SOLID(forw) == dp ) + forw->s_wflag = UP; + } +} +*vp = (char *) 0; +return vp-start; +} + + HIDDEN union tree * mesh_end_region (register struct db_tree_state *tsp, struct db_full_path *pathp, union tree *curtree, genptr_t client_data) { Modified: brlcad/trunk/src/mged/cmd.c === --- brlcad/trunk/src/mged/cmd.c 2009-01-23 16:05:18 UTC (rev 33596) +++ brlcad/trunk/src/mged/cmd.c 2009-01-23 16:07:42 UTC (rev 33597) @@ -383,6 +383,7 @@ if (ret != BRLCAD_OK) return TCL_ERROR; +(void)mged_svbase(); view_state->vs_flag = 1; return TCL_OK; Modified: brlcad/trunk/src/mged/dodraw.c === --- brlcad/trunk/src/mged/dodraw.c 2009-01-23 16:05:18 UTC (rev 33596) +++ brlcad/trunk/src/mged/dodraw.c 2009-01-23 16:07:42 UTC (rev 33597) @@ -1120,16 +1120,16 @@ /* Remove any residue colors from a previous overlay w/same name */ if ( dbip->dbi_read_only ) { - av[0] = "d"; + av[0] = "erase"; av[1] = shortname; av[2] = NULL; - (void)cmd_ged_erase_wrapper((ClientData)mged_cmdtab, interp, 2, av); + (void)ged_erase(gedp, 2, av); } else { av[0] = "kill"; av[1] = "-f"; av[2] = shortname; av[3] = NULL; - (void)cmd_ged_erase_wrapper((ClientData)mged_cmdtab, interp, 3, av); + (void)ged_kill(gedp, 3, av); } for ( i=0; i < vbp->nused; i++ ) { Modified: brlcad/trunk/src/mged/mged.c === --- brlcad/trunk/src/mged/mged.c2009-01-23 16:05:18 UTC (rev 33596) +++ brlcad/trunk/src/mged/mged.c2009-01-23 16:07:42 UTC (rev 33597) @@ -496,7 +496,6 @@ BU_LIST_INIT(&MGED_FreeSolid.l); BU_LIST_INIT(&rt_g.rtg_vlfree); BU_LIST_INIT(&rt_g.rtg_headwdb.l); -BU_LIST_INIT(&head_run_rt.l); memset((void *)&head_cmd_list, 0, sizeof(struct cmd_list)); BU_LIST_INIT(&head_cmd_list.l); @@ -2471,6 +2470,13 @@ bu_log(line); } +static void +ged_refresh_handler(void *clientdata) +{ +view_state->vs_flag = 1; +refresh(); +} + /* * F _ O P E N D B * @@ -2709,6 +2715,7 @@ GED_INIT(gedp, wdbp); gedp->ged_output_handler = ged_output_handler; +gedp->ged_refresh_handler = ged_refresh_handler; /*XXX shouldn't need any of this */ #if 1 Modified: brlcad/trunk/src/mged/rtif.c === --- brlcad/trunk/src/mged/rtif.c2009-01-23 16:05:18 UTC (rev 33596) +++ brlcad/trunk/src/mged/rtif.c2009-01-23 16:07:42 UTC (rev 33597) @@ -56,686 +56,7 @@ #include "./cmd.h" -/* defined in chgview.c */ -extern int edit_com(int argc, const char **argv, int kind, int catch_sigint); - -extern int mged_svbase(void); -extern void set_perspective(); /* from set.c */ - -/* used to open databases quietly */ -extern int interactive; - -
[brlcad-commits] SF.net SVN: brlcad:[33596] brlcad/trunk/src/libbn/CMakeLists.txt
Revision: 33596 http://brlcad.svn.sourceforge.net/brlcad/?rev=33596&view=rev Author: d_rossberg Date: 2009-01-23 16:05:18 + (Fri, 23 Jan 2009) Log Message: --- added randmt.c (mersenne twister random number generator) Modified Paths: -- brlcad/trunk/src/libbn/CMakeLists.txt Modified: brlcad/trunk/src/libbn/CMakeLists.txt === --- brlcad/trunk/src/libbn/CMakeLists.txt 2009-01-23 15:33:13 UTC (rev 33595) +++ brlcad/trunk/src/libbn/CMakeLists.txt 2009-01-23 16:05:18 UTC (rev 33596) @@ -15,6 +15,7 @@ poly.c qmath.c rand.c +randmt.c scale.c sphmap.c symbol.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits
[brlcad-commits] SF.net SVN: brlcad:[33595] brlcad/trunk/src/libged
Revision: 33595 http://brlcad.svn.sourceforge.net/brlcad/?rev=33595&view=rev Author: bob1961 Date: 2009-01-23 15:33:13 + (Fri, 23 Jan 2009) Log Message: --- Changed the signature of ged_build_tops(). Modified Paths: -- brlcad/trunk/src/libged/ged_private.h brlcad/trunk/src/libged/nirt.c brlcad/trunk/src/libged/preview.c brlcad/trunk/src/libged/rt.c brlcad/trunk/src/libged/rtcheck.c brlcad/trunk/src/libged/solids_on_ray.c Modified: brlcad/trunk/src/libged/ged_private.h === --- brlcad/trunk/src/libged/ged_private.h 2009-01-23 15:23:35 UTC (rev 33594) +++ brlcad/trunk/src/libged/ged_private.h 2009-01-23 15:33:13 UTC (rev 33595) @@ -330,7 +330,6 @@ int mask)); BU_EXTERN (int ged_build_tops, (struct ged *gedp, - struct solid*hsp, char**start, register char **end)); Modified: brlcad/trunk/src/libged/nirt.c === --- brlcad/trunk/src/libged/nirt.c 2009-01-23 15:23:35 UTC (rev 33594) +++ brlcad/trunk/src/libged/nirt.c 2009-01-23 15:33:13 UTC (rev 33595) @@ -264,7 +264,6 @@ /* Note - ged_build_tops sets the last vp to (char *)0 */ gedp->ged_gdp->gd_rt_cmd_len += ged_build_tops(gedp, - (struct solid *)&gedp->ged_gdp->gd_headSolid, vp, &gedp->ged_gdp->gd_rt_cmd[RT_MAXARGS]); Modified: brlcad/trunk/src/libged/preview.c === --- brlcad/trunk/src/libged/preview.c 2009-01-23 15:23:35 UTC (rev 33594) +++ brlcad/trunk/src/libged/preview.c 2009-01-23 15:33:13 UTC (rev 33595) @@ -136,8 +136,7 @@ ged_color_soltab((struct solid *)&ged_current_gedp->ged_gdp->gd_headSolid); } -if (ged_current_gedp->ged_refresh_handler != GED_REFRESH_CALLBACK_PTR_NULL && - ged_current_gedp->ged_refresh_clientdata != (void *)0) +if (ged_current_gedp->ged_refresh_handler != GED_REFRESH_CALLBACK_PTR_NULL) (*ged_current_gedp->ged_refresh_handler)(ged_current_gedp->ged_refresh_clientdata); if ( preview_delay > 0 ) { @@ -195,7 +194,6 @@ { ged_current_gedp->ged_gdp->gd_rt_cmd_len = vp - ged_current_gedp->ged_gdp->gd_rt_cmd; ged_current_gedp->ged_gdp->gd_rt_cmd_len += ged_build_tops(gedp, -(struct solid *)&gedp->ged_gdp->gd_headSolid, vp, &ged_current_gedp->ged_gdp->gd_rt_cmd[MAXARGS]); if (printcmd) { Modified: brlcad/trunk/src/libged/rt.c === --- brlcad/trunk/src/libged/rt.c2009-01-23 15:23:35 UTC (rev 33594) +++ brlcad/trunk/src/libged/rt.c2009-01-23 15:33:13 UTC (rev 33595) @@ -92,7 +92,6 @@ if (i == argc) { gedp->ged_gdp->gd_rt_cmd_len = vp - gedp->ged_gdp->gd_rt_cmd; gedp->ged_gdp->gd_rt_cmd_len += ged_build_tops(gedp, - (struct solid *)&gedp->ged_gdp->gd_headSolid, vp, &gedp->ged_gdp->gd_rt_cmd[MAXARGS]); } else { @@ -443,7 +442,6 @@ */ int ged_build_tops(struct ged *gedp, - struct solid *hsp, char **start, register char**end) { @@ -452,11 +450,11 @@ /* * Find all unique top-level entries. - * Mark ones already done with s_flag == UP + * Mark ones already done with s_flag == UP */ -FOR_ALL_SOLIDS(sp, &hsp->l) +FOR_ALL_SOLIDS(sp, &gedp->ged_gdp->gd_headSolid) sp->s_flag = DOWN; -FOR_ALL_SOLIDS(sp, &hsp->l) { +FOR_ALL_SOLIDS(sp, &gedp->ged_gdp->gd_headSolid) { register struct solid *forw; struct directory *dp = FIRST_SOLID(sp); @@ -467,11 +465,11 @@ if (vp < end) *vp++ = dp->d_namep; else { - bu_vls_printf(&gedp->ged_result_str, "mged: ran out of comand vector space at %s\n", dp->d_namep); + bu_vls_printf(&gedp->ged_result_str, "libged: ran out of command vector space at %s\n", dp->d_namep); break; } sp->s_flag = UP; - for (BU_LIST_PFOR(forw, sp, solid, &hsp->l)) { + for (BU_LIST_PFOR(forw, sp, solid, &gedp->ged_gdp->gd_headSolid)) { if (FIRST_SOLID(forw) == dp) forw->s_flag = UP; } Modified: brlcad/trunk/src/libged/rtcheck.c === --- brlcad/trunk/src/libged/rtcheck.c 2009-01-23 15:23:35 UTC (rev 33594) +++ brlcad/trunk/src/libged/rtcheck.c 2009-01-23 15:33:13 UTC (rev 33595)
[brlcad-commits] SF.net SVN: brlcad:[33594] brlcad/trunk/src/libbu/interrupt.c
Revision: 33594 http://brlcad.svn.sourceforge.net/brlcad/?rev=33594&view=rev Author: bob1961 Date: 2009-01-23 15:23:35 + (Fri, 23 Jan 2009) Log Message: --- Need to include bu.h for Windows. Modified Paths: -- brlcad/trunk/src/libbu/interrupt.c Modified: brlcad/trunk/src/libbu/interrupt.c === --- brlcad/trunk/src/libbu/interrupt.c 2009-01-23 05:38:45 UTC (rev 33593) +++ brlcad/trunk/src/libbu/interrupt.c 2009-01-23 15:23:35 UTC (rev 33594) @@ -30,7 +30,9 @@ #include #include +#include "bu.h" + /* hard-coded maximum signal number we can defer due to array we're * using for quick O(1) access in a single container for all signals. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits