Thread: [brlcad-commits] SF.net SVN: brlcad:[33243] brlcad/trunk/src/libged/typein.c
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <br...@us...> - 2008-11-21 08:05:49
|
Revision: 33243 http://brlcad.svn.sourceforge.net/brlcad/?rev=33243&view=rev Author: brlcad Date: 2008-11-21 08:05:45 +0000 (Fri, 21 Nov 2008) Log Message: ----------- merge in all of the latest pnts changes that were made to old/previous implementation but not to the libged migrated/new version. this duality shouldn't survive for much longer hopefully. this hooks in all of the new point functionality for normals, point-specific sizes, and more. only compile-time checked. Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2008-11-21 00:42:34 UTC (rev 33242) +++ brlcad/trunk/src/libged/typein.c 2008-11-21 08:05:45 UTC (rev 33243) @@ -512,14 +512,73 @@ }; static 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; +} + + +static int binunif_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern, const char *name) { unsigned int minor_type; @@ -2325,77 +2384,304 @@ /* P N T S _ I N */ static int pnts_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, char **prompt) { - int i; - double scale; + int i, j; unsigned long numPoints; struct rt_pnts_internal *pnts; - struct pnt *point; - struct pnt *headPoint; + void *headPoint; + rt_pnt_type type; + + int oriented = 0; + int hasColor = 0; + int hasScale = 0; + double defaultSize = 0.0; + + int valuesPerPoint; + int nextPrompt; + + double local2base = gedp->ged_wdbp->dbip->dbi_local2base; + /* prompt for numPoints if not entered */ if (argc < 4) { bu_vls_printf(&gedp->ged_result_str, "%s", prompt[0]); return BRLCAD_MORE_ARGS; } - - /* validate numPoints */ - if (atol(argv[3]) <= 0) { - bu_vls_printf(&gedp->ged_result_str, "Number of points must be positive!\n"); - return BRLCAD_ERROR; + 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) { bu_vls_printf(&gedp->ged_result_str, "%s", prompt[1]); return BRLCAD_MORE_ARGS; } + oriented = booleanize(argv[4]); - /* validate scale */ - if (atof(argv[4]) < 0) { - bu_vls_printf(&gedp->ged_result_str, "Scale must be nonnegative!\n"); - return BRLCAD_ERROR; + /* prompt for color */ + if (argc < 6) { + bu_vls_printf(&gedp->ged_result_str, "%s", prompt[2]); + return BRLCAD_MORE_ARGS; } + hasColor = booleanize(argv[5]); - scale = atof(argv[4]); + /* prompt for uniform scale */ + if (argc < 7) { + bu_vls_printf(&gedp->ged_result_str, "%s", prompt[3]); + return BRLCAD_MORE_ARGS; + } + hasScale = booleanize(argv[6]); /* has scale if not uniform */ - /* set database structure */ + /* prompt for size of points if not entered */ + if (argc < 8) { + bu_vls_printf(&gedp->ged_result_str, "%s", prompt[4]); + return BRLCAD_MORE_ARGS; + } + 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); + + bu_vls_printf(&gedp->ged_result_str, "%s", bu_vls_addr(&vls)); + + bu_vls_free(&vls); + return BRLCAD_MORE_ARGS; + } + + /* 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_printf(&gedp->ged_result_str, "%s for point %d : ", - - prompt[(argc - 2) % ELEMENTS_PER_PT + 2], - 1 + (argc - 5) / ELEMENTS_PER_PT); - return BRLCAD_MORE_ARGS; - } + /* 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; /* 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) * gedp->ged_wdbp->dbip->dbi_local2base; - point->v[Y] = strtod(argv[i + 1], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; - point->v[Z] = strtod(argv[i + 2], NULL) * gedp->ged_wdbp->dbip->dbi_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[0 /* RED */] = strtod(argv[i + 3], NULL); + ((struct pnt_color *)point)->c.buc_rgb[1 /* GRN */] = strtod(argv[i + 4], NULL); + ((struct pnt_color *)point)->c.buc_rgb[2 /* 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[0 /* RED */] = strtod(argv[i + 3], NULL); + ((struct pnt_color_scale *)point)->c.buc_rgb[1 /* GRN */] = strtod(argv[i + 4], NULL); + ((struct pnt_color_scale *)point)->c.buc_rgb[2 /* 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[0 /* RED */] = strtod(argv[i + 6], NULL); + ((struct pnt_color_normal *)point)->c.buc_rgb[1 /* GRN */] = strtod(argv[i + 7], NULL); + ((struct pnt_color_normal *)point)->c.buc_rgb[2 /* 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[0 /* RED */] = strtod(argv[i + 6], NULL); + ((struct pnt_color_scale_normal *)point)->c.buc_rgb[1 /* GRN */] = strtod(argv[i + 7], NULL); + ((struct pnt_color_scale_normal *)point)->c.buc_rgb[2 /* 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 BRLCAD_OK; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_r...@us...> - 2008-11-24 11:58:49
|
Revision: 33248 http://brlcad.svn.sourceforge.net/brlcad/?rev=33248&view=rev Author: d_rossberg Date: 2008-11-24 11:58:45 +0000 (Mon, 24 Nov 2008) Log Message: ----------- put variable declaration on the begin of the section so my old compiler understands it Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2008-11-23 21:45:36 UTC (rev 33247) +++ brlcad/trunk/src/libged/typein.c 2008-11-24 11:58:45 UTC (rev 33248) @@ -2485,9 +2485,9 @@ /* prompt for X, Y, Z of points */ if (argc < numPoints * valuesPerPoint) { + int nextAsk = nextPrompt + 5; struct bu_vls vls; bu_vls_init(&vls); - int nextAsk = nextPrompt + 5; switch (type) { case RT_PNT_TYPE_PNT: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <r_...@us...> - 2009-04-28 21:59:22
|
Revision: 34357 http://brlcad.svn.sourceforge.net/brlcad/?rev=34357&view=rev Author: r_weiss Date: 2009-04-28 21:59:11 +0000 (Tue, 28 Apr 2009) Log Message: ----------- updated pnts primitive 'in' command, added skeleton logic to allow file input Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2009-04-28 19:48:36 UTC (rev 34356) +++ brlcad/trunk/src/libged/typein.c 2009-04-28 21:59:11 UTC (rev 34357) @@ -513,6 +513,7 @@ }; static char *p_pnts[] = { + "Are points in a file (yes/no)? ", "Enter number of points (-1 for auto): ", "Are the points orientated (yes/no)? ", "Do the points have color values (yes/no)? ", @@ -527,7 +528,10 @@ "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)" + "Enter point size (>= 0.0, -1 for default)", + "Enter point file path and name: ", + "Enter file data format (px,py,pz,cr,cg,cb,s,nx,ny,nz): ", + "Enter file data units ([mm|cm|m|in|ft]): " }; @@ -2401,45 +2405,96 @@ int nextPrompt; double local2base = gedp->ged_wdbp->dbip->dbi_local2base; - + + /* prompt if points file */ + if (argc < 4) { + bu_vls_printf(&gedp->ged_result_str, "%s", prompt[0]); + return BRLCAD_MORE_ARGS; + } + + /* if points are in a file */ + if ((strcmp( argv[3], "yes" ) == 0) || (strcmp( argv[3], "y" ) == 0)) { + + /* prompt for point file path and name */ + if (argc < 5) { + bu_vls_printf(&gedp->ged_result_str, "%s", prompt[16]); + return BRLCAD_MORE_ARGS; + } + + /* prompt for file data format */ + if (argc < 6) { + bu_vls_printf(&gedp->ged_result_str, "%s", prompt[17]); + return BRLCAD_MORE_ARGS; + } + + /* prompt for file data units */ + if (argc < 7) { + bu_vls_printf(&gedp->ged_result_str, "%s", prompt[18]); + return BRLCAD_MORE_ARGS; + } + + /* prompt for default point size */ + if (argc < 8) { + bu_vls_printf(&gedp->ged_result_str, "%s", prompt[5]); + return BRLCAD_MORE_ARGS; + } + + /* call function(s) to validate 'point file data format string' and return the + * point-cloud type. + */ + + /* call function(s) to validate the units string and return the converion factor to + * milimeters. + */ + + /* call function(s) to read point cloud data and save into database. + */ + + bu_log("The ability to create a pnts primitive from a data file is not yet implemented.\n"); + + return BRLCAD_ERROR; + + } /* endif to process point data file */ + + /* prompt for numPoints if not entered */ - if (argc < 4) { - bu_vls_printf(&gedp->ged_result_str, "%s", prompt[0]); + if (argc < 5) { + bu_vls_printf(&gedp->ged_result_str, "%s", prompt[1]); return BRLCAD_MORE_ARGS; } - numPoints = atol(argv[3]); + numPoints = atol(argv[4]); if (numPoints < 0) { /* negative means automatically figure out how many points */ numPoints = -1; } /* prompt for orientation */ - if (argc < 5) { - bu_vls_printf(&gedp->ged_result_str, "%s", prompt[1]); - return BRLCAD_MORE_ARGS; - } - oriented = booleanize(argv[4]); - - /* prompt for color */ if (argc < 6) { bu_vls_printf(&gedp->ged_result_str, "%s", prompt[2]); return BRLCAD_MORE_ARGS; } - hasColor = booleanize(argv[5]); + oriented = booleanize(argv[5]); - /* prompt for uniform scale */ + /* prompt for color */ if (argc < 7) { bu_vls_printf(&gedp->ged_result_str, "%s", prompt[3]); return BRLCAD_MORE_ARGS; } - hasScale = booleanize(argv[6]); /* has scale if not uniform */ + hasColor = booleanize(argv[6]); - /* prompt for size of points if not entered */ + /* prompt for uniform scale */ if (argc < 8) { bu_vls_printf(&gedp->ged_result_str, "%s", prompt[4]); return BRLCAD_MORE_ARGS; } - defaultSize = atof(argv[7]); + hasScale = booleanize(argv[7]); /* has scale if not uniform */ + + /* prompt for size of points if not entered */ + if (argc < 9) { + bu_vls_printf(&gedp->ged_result_str, "%s", prompt[5]); + return BRLCAD_MORE_ARGS; + } + defaultSize = atof(argv[8]); if (defaultSize < 0.0) { defaultSize = 0.0; bu_log("WARNING: default point size must be non-negative, using zero\n"); @@ -2465,8 +2520,8 @@ } /* reset argc/argv to be just point data */ - argc -= 8; - argv += 8; + argc -= 9; + argv += 9; nextPrompt = argc % valuesPerPoint; if (numPoints < 0) { @@ -2486,7 +2541,7 @@ /* prompt for X, Y, Z of points */ if (argc < numPoints * valuesPerPoint) { - int nextAsk = nextPrompt + 5; + int nextAsk = nextPrompt + 6; struct bu_vls vls; bu_vls_init(&vls); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-06-24 16:34:37
|
Revision: 34871 http://brlcad.svn.sourceforge.net/brlcad/?rev=34871&view=rev Author: bob1961 Date: 2009-06-24 16:34:29 +0000 (Wed, 24 Jun 2009) Log Message: ----------- Fixed a few cases where the return value should be GED_MORE instead of GED_ERROR. Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2009-06-24 16:27:48 UTC (rev 34870) +++ brlcad/trunk/src/libged/typein.c 2009-06-24 16:34:29 UTC (rev 34871) @@ -2853,7 +2853,7 @@ rt_db_free_internal( &internal, &rt_uniresource ); return GED_ERROR; case GED_MORE: - return GED_ERROR; + return GED_MORE; } goto do_new_update; } else if ( strcmp( argv[2], "metaball" ) == 0 ) { @@ -2863,7 +2863,7 @@ rt_db_free_internal( &internal, &rt_uniresource ); return GED_ERROR; case GED_MORE: - return GED_ERROR; + return GED_MORE; } goto do_new_update; } else if ( strcmp( argv[2], "ars" ) == 0 ) { @@ -2873,7 +2873,7 @@ rt_db_free_internal( &internal, &rt_uniresource ); return GED_ERROR; case GED_MORE: - return GED_ERROR; + return GED_MORE; } goto do_new_update; } else if ( strcmp( argv[2], "half" ) == 0 ) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-05-18 13:45:05
|
Revision: 39303 http://brlcad.svn.sourceforge.net/brlcad/?rev=39303&view=rev Author: brlcad Date: 2010-05-18 13:44:59 +0000 (Tue, 18 May 2010) Log Message: ----------- user input is signed, but count is unsigned. Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2010-05-18 13:39:58 UTC (rev 39302) +++ brlcad/trunk/src/libged/typein.c 2010-05-18 13:44:59 UTC (rev 39303) @@ -2391,6 +2391,7 @@ pnts_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, char **prompt) { int i; unsigned long numPoints; + long readPoints; struct rt_pnts_internal *pnts; void *headPoint; @@ -2457,15 +2458,15 @@ } /* endif to process point data file */ - /* prompt for numPoints if not entered */ + /* prompt for readPoints if not entered */ if (argc < 5) { bu_vls_printf(&gedp->ged_result_str, "%s", prompt[1]); return GED_MORE; } - numPoints = atol(argv[4]); - if (numPoints < 0) { + readPoints = atol(argv[4]); + if (readPoints < 0) { /* negative means automatically figure out how many points */ - numPoints = -1; + readPoints = -1; } /* prompt for orientation */ @@ -2524,7 +2525,8 @@ argv += 9; nextPrompt = argc % valuesPerPoint; - if (numPoints < 0) { + /* determine the number of points */ + if (readPoints < 0) { /* determine count from argc */ if (nextPrompt != 0) { bu_log("WARNING: Data mismatch.\n" @@ -2537,6 +2539,8 @@ argc / valuesPerPoint); } numPoints = argc / valuesPerPoint; + } else { + numPoints = (unsigned long)readPoints; } /* prompt for X, Y, Z of points */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2010-05-18 13:47:58
|
Revision: 39304 http://brlcad.svn.sourceforge.net/brlcad/?rev=39304&view=rev Author: brlcad Date: 2010-05-18 13:47:51 +0000 (Tue, 18 May 2010) Log Message: ----------- ws consistency cleanup, comments, tabs. Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2010-05-18 13:44:59 UTC (rev 39303) +++ brlcad/trunk/src/libged/typein.c 2010-05-18 13:47:51 UTC (rev 39304) @@ -44,6 +44,7 @@ "Enter the distance from the origin: " }; + static char *p_dsp_v4[] = { "Enter name of displacement-map file: ", "Enter width of displacement-map (number of values): ", @@ -53,6 +54,7 @@ "Unit elevation: " }; + static char *p_dsp_v5[] = { "Take data from file or database binary object [f|o]:", "Enter name of file/object: ", @@ -64,6 +66,7 @@ "Unit elevation: " }; + static char *p_hf[] = { "Enter name of control file (or \"\" for none): ", "Enter name of data file (containing heights): ", @@ -86,6 +89,7 @@ "Enter scale factor for height (after conversion to mm): " }; + static char *p_ebm[] = { "Enter name of bit-map file: ", "Enter width of bit-map (number of cells): ", @@ -93,12 +97,14 @@ "Enter extrusion distance: " }; + static char *p_submodel[] = { "Enter name of treetop: ", "Enter space partitioning method: ", "Enter name of .g file (or \"\" for none): " }; + static char *p_vol[] = { "Enter name of file containing voxel data: ", "Enter X, Y, Z dimensions of file (number of cells): ", @@ -111,6 +117,7 @@ "Enter Z dimension of a cell: ", }; + static char *p_bot[] = { "Enter number of vertices: ", "Enter number of triangles: ", @@ -126,6 +133,7 @@ "Enter thickness" }; + static char *p_arbn[] = { "Enter number of planes: ", "Enter coefficients", @@ -134,6 +142,7 @@ "Enter distance of plane along normal from origin" }; + static char *p_pipe[] = { "Enter number of points: ", "Enter X, Y, Z, inner diameter, outer diameter, and bend radius for first point: ", @@ -150,6 +159,7 @@ "Enter bend radius" }; + static char *p_ars[] = { "Enter number of points per waterline, and number of waterlines: ", "Enter number of waterlines: ", @@ -161,6 +171,7 @@ "Enter Z", }; + static char *p_arb[] = { "Enter X, Y, Z for point 1: ", "Enter Y: ", @@ -188,6 +199,7 @@ "Enter Z: " }; + static char *p_sph[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -195,6 +207,7 @@ "Enter radius: " }; + static char *p_ellg[] = { "Enter X, Y, Z of focus point 1: ", "Enter Y: ", @@ -205,6 +218,7 @@ "Enter axis length L: " }; + static char *p_ell1[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -215,6 +229,7 @@ "Enter radius of revolution: " }; + static char *p_ell[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -230,6 +245,7 @@ "Enter Z: " }; + static char *p_tor[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -241,6 +257,7 @@ "Enter radius 2: " }; + static char *p_rcc[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -251,6 +268,7 @@ "Enter radius: " }; + static char *p_tec[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -267,6 +285,7 @@ "Enter ratio: " }; + static char *p_rec[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -282,6 +301,7 @@ "Enter Z: " }; + static char *p_trc[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -293,6 +313,7 @@ "Enter radius of top: " }; + static char *p_tgc[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -310,6 +331,7 @@ "Enter scalar d: " }; + static char *p_box[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -325,6 +347,7 @@ "Enter Z: " }; + static char *p_rpp[] = { "Enter XMIN, XMAX, YMIN, YMAX, ZMIN, ZMAX: ", "Enter XMAX: ", @@ -334,12 +357,14 @@ "Enter ZMAX: " }; + static char *p_orpp[] = { "Enter XMAX, YMAX, ZMAX: ", "Enter YMAX, ZMAX: ", "Enter ZMAX: " }; + static char *p_rpc[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -353,6 +378,7 @@ "Enter rectangular half-width, r: " }; + static char *p_part[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -364,6 +390,7 @@ "Enter h end radius: " }; + static char *p_rhc[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -378,6 +405,7 @@ "Enter apex-to-asymptotes distance, c: " }; + static char *p_epa[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -391,6 +419,7 @@ "Enter magnitude of vector B: " }; + static char *p_ehy[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -405,6 +434,7 @@ "Enter apex-to-asymptotes distance, c: " }; + static char *p_hyp[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -416,9 +446,10 @@ "Enter Y: ", "Enter Z: ", "Enter magnitude of vector B: ", - "Enter neck to base ratio, c (0,1): " + "Enter neck to base ratio, c (0, 1): " }; + static char *p_eto[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -433,12 +464,14 @@ "Enter magnitude of elliptical semi-minor axis, d: " }; + static char *p_binunif[] = { "Enter minor type (f, d, c, s, i, L, C, S, I, or L): ", "Enter name of file containing the data: ", "Enter number of values to read (-1 for entire file): " }; + static char *p_extrude[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -456,6 +489,7 @@ NULL }; + static char *p_grip[] = { "Enter X, Y, Z of center: ", "Enter Y: ", @@ -467,6 +501,7 @@ NULL }; + static char *p_superell[] = { "Enter X, Y, Z of superellipse vertex: ", "Enter Y: ", @@ -484,6 +519,7 @@ "Enter e: " }; + static char *p_metaball[] = { "Enter render method: ", "Enter threshold: ", @@ -498,6 +534,7 @@ "Enter field strength" }; + static char *p_revolve[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", @@ -512,6 +549,7 @@ "Enter name of sketch: " }; + static char *p_pnts[] = { "Are points in a file (yes/no)? ", "Enter number of points (-1 for auto): ", @@ -530,7 +568,7 @@ "Enter B component color value", "Enter point size (>= 0.0, -1 for default)", "Enter point file path and name: ", - "Enter file data format (px,py,pz,cr,cg,cb,s,nx,ny,nz): ", + "Enter file data format (px, py, pz, cr, cg, cb, s, nx, ny, nz): ", "Enter file data units ([mm|cm|m|in|ft]): " }; @@ -590,12 +628,12 @@ intern->idb_ptr = NULL; - if ( strlen( cmd_argvs[3] ) != 1 ) { + if (strlen(cmd_argvs[3]) != 1) { bu_vls_printf(&gedp->ged_result_str, "Unrecognized minor type (%s)\n", cmd_argvs[3]); return GED_ERROR; } - switch ( *cmd_argvs[3] ) { + switch (*cmd_argvs[3]) { case 'f': minor_type = DB5_MINORTYPE_BINU_FLOAT; break; @@ -627,10 +665,10 @@ minor_type = DB5_MINORTYPE_BINU_64BITINT_U; break; default: - bu_log( "Unrecognized minor type (%c)\n", *cmd_argvs[3] ); + bu_log("Unrecognized minor type (%c)\n", *cmd_argvs[3]); return GED_ERROR; } - if ( rt_mk_binunif( gedp->ged_wdbp, name, cmd_argvs[4], minor_type, atol(cmd_argvs[5]) ) ) { + if (rt_mk_binunif (gedp->ged_wdbp, name, cmd_argvs[4], minor_type, atol(cmd_argvs[5]))) { bu_vls_printf(&gedp->ged_result_str, "Failed to create binary object %s from file %s\n", name, cmd_argvs[4]); @@ -640,104 +678,108 @@ return GED_OK; } -/* E B M _ I N + +/* E B M _ I N * - * Read EBM solid from keyboard + * Read EBM solid from keyboard * */ static int ebm_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - struct rt_ebm_internal *ebm; + struct rt_ebm_internal *ebm; - BU_GETSTRUCT( ebm, rt_ebm_internal ); + BU_GETSTRUCT(ebm, rt_ebm_internal); intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_EBM; intern->idb_meth = &rt_functab[ID_EBM]; intern->idb_ptr = (genptr_t)ebm; ebm->magic = RT_EBM_INTERNAL_MAGIC; - bu_strlcpy( ebm->file, cmd_argvs[3], RT_EBM_NAME_LEN ); - ebm->xdim = atoi( cmd_argvs[4] ); - ebm->ydim = atoi( cmd_argvs[5] ); - ebm->tallness = atof( cmd_argvs[6] ) * gedp->ged_wdbp->dbip->dbi_local2base; - MAT_IDN( ebm->mat ); + bu_strlcpy(ebm->file, cmd_argvs[3], RT_EBM_NAME_LEN); + ebm->xdim = atoi(cmd_argvs[4]); + ebm->ydim = atoi(cmd_argvs[5]); + ebm->tallness = atof(cmd_argvs[6]) * gedp->ged_wdbp->dbip->dbi_local2base; + MAT_IDN(ebm->mat); return GED_OK; } -/* S U B M O D E L _ I N + +/* S U B M O D E L _ I N * - * Read submodel from keyboard + * Read submodel from keyboard * */ static int submodel_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - struct rt_submodel_internal *sip; + struct rt_submodel_internal *sip; - BU_GETSTRUCT( sip, rt_submodel_internal ); + BU_GETSTRUCT(sip, rt_submodel_internal); intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_SUBMODEL; intern->idb_meth = &rt_functab[ID_SUBMODEL]; intern->idb_ptr = (genptr_t)sip; sip->magic = RT_SUBMODEL_INTERNAL_MAGIC; - bu_vls_init( &sip->treetop ); - bu_vls_strcpy( &sip->treetop, cmd_argvs[3] ); - sip->meth = atoi( cmd_argvs[4] ); - bu_vls_init( &sip->file ); - bu_vls_strcpy( &sip->file, cmd_argvs[5] ); + bu_vls_init(&sip->treetop); + bu_vls_strcpy(&sip->treetop, cmd_argvs[3]); + sip->meth = atoi(cmd_argvs[4]); + bu_vls_init(&sip->file); + bu_vls_strcpy(&sip->file, cmd_argvs[5]); return GED_OK; } -/* D S P _ I N + +/* D S P _ I N * - * Read DSP solid from keyboard + * Read DSP solid from keyboard */ static int dsp_in_v4(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - struct rt_dsp_internal *dsp; + struct rt_dsp_internal *dsp; - BU_GETSTRUCT( dsp, rt_dsp_internal ); + BU_GETSTRUCT(dsp, rt_dsp_internal); intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_DSP; intern->idb_meth = &rt_functab[ID_DSP]; intern->idb_ptr = (genptr_t)dsp; dsp->magic = RT_DSP_INTERNAL_MAGIC; - bu_vls_init( &dsp->dsp_name ); - bu_vls_strcpy( &dsp->dsp_name, cmd_argvs[3] ); + bu_vls_init(&dsp->dsp_name); + bu_vls_strcpy(&dsp->dsp_name, cmd_argvs[3]); - dsp->dsp_xcnt = atoi( cmd_argvs[4] ); - dsp->dsp_ycnt = atoi( cmd_argvs[5] ); - dsp->dsp_smooth = atoi( cmd_argvs[6] ); - MAT_IDN( dsp->dsp_stom ); + dsp->dsp_xcnt = atoi(cmd_argvs[4]); + dsp->dsp_ycnt = atoi(cmd_argvs[5]); + dsp->dsp_smooth = atoi(cmd_argvs[6]); + MAT_IDN(dsp->dsp_stom); dsp->dsp_stom[0] = dsp->dsp_stom[5] = - atof( cmd_argvs[7] ) * gedp->ged_wdbp->dbip->dbi_local2base; + atof(cmd_argvs[7]) * gedp->ged_wdbp->dbip->dbi_local2base; - dsp->dsp_stom[10] = atof( cmd_argvs[8] ) * gedp->ged_wdbp->dbip->dbi_local2base; + dsp->dsp_stom[10] = atof(cmd_argvs[8]) * gedp->ged_wdbp->dbip->dbi_local2base; - bn_mat_inv( dsp->dsp_mtos, dsp->dsp_stom ); + bn_mat_inv(dsp->dsp_mtos, dsp->dsp_stom); return GED_OK; } + extern void dsp_dump(struct rt_dsp_internal *dsp); -/* D S P _ I N +/* D S P _ I N * - * Read DSP solid from keyboard + * Read DSP solid from keyboard */ static int dsp_in_v5(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - struct rt_dsp_internal *dsp; + struct rt_dsp_internal *dsp; - BU_GETSTRUCT( dsp, rt_dsp_internal ); + BU_GETSTRUCT(dsp, rt_dsp_internal); intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_DSP; intern->idb_meth = &rt_functab[ID_DSP]; @@ -751,13 +793,13 @@ else return GED_ERROR; - bu_vls_init( &dsp->dsp_name ); - bu_vls_strcpy( &dsp->dsp_name, cmd_argvs[4] ); + bu_vls_init(&dsp->dsp_name); + bu_vls_strcpy(&dsp->dsp_name, cmd_argvs[4]); - dsp->dsp_xcnt = atoi( cmd_argvs[5] ); - dsp->dsp_ycnt = atoi( cmd_argvs[6] ); - dsp->dsp_smooth = atoi( cmd_argvs[7] ); - switch ( *cmd_argvs[8] ) { + dsp->dsp_xcnt = atoi(cmd_argvs[5]); + dsp->dsp_ycnt = atoi(cmd_argvs[6]); + dsp->dsp_smooth = atoi(cmd_argvs[7]); + switch (*cmd_argvs[8]) { case 'a': /* adaptive */ case 'A': dsp->dsp_cuttype = DSP_CUT_DIR_ADAPT; @@ -774,64 +816,64 @@ break; } - MAT_IDN( dsp->dsp_stom ); + MAT_IDN(dsp->dsp_stom); dsp->dsp_stom[0] = dsp->dsp_stom[5] = - atof( cmd_argvs[9] ) * gedp->ged_wdbp->dbip->dbi_local2base; + atof(cmd_argvs[9]) * gedp->ged_wdbp->dbip->dbi_local2base; - dsp->dsp_stom[10] = atof( cmd_argvs[10] ) * gedp->ged_wdbp->dbip->dbi_local2base; + dsp->dsp_stom[10] = atof(cmd_argvs[10]) * gedp->ged_wdbp->dbip->dbi_local2base; - bn_mat_inv( dsp->dsp_mtos, dsp->dsp_stom ); + bn_mat_inv(dsp->dsp_mtos, dsp->dsp_stom); return GED_OK; } -/* H F _ I N +/* H F _ I N * - * Read HF solid from keyboard + * Read HF solid from keyboard * */ static int hf_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - struct rt_hf_internal *hf; + struct rt_hf_internal *hf; - BU_GETSTRUCT( hf, rt_hf_internal ); + BU_GETSTRUCT(hf, rt_hf_internal); intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_HF; intern->idb_meth = &rt_functab[ID_HF]; intern->idb_ptr = (genptr_t)hf; hf->magic = RT_HF_INTERNAL_MAGIC; - bu_strlcpy( hf->cfile, cmd_argvs[3], sizeof(hf->cfile) ); - bu_strlcpy( hf->dfile, cmd_argvs[4], sizeof(hf->dfile) ); - bu_strlcpy( hf->fmt, cmd_argvs[5], sizeof(hf->fmt) ); + bu_strlcpy(hf->cfile, cmd_argvs[3], sizeof(hf->cfile)); + bu_strlcpy(hf->dfile, cmd_argvs[4], sizeof(hf->dfile)); + bu_strlcpy(hf->fmt, cmd_argvs[5], sizeof(hf->fmt)); - hf->w = atoi( cmd_argvs[6] ); - hf->n = atoi( cmd_argvs[7] ); - hf->shorts = atoi( cmd_argvs[8] ); - hf->file2mm = atof( cmd_argvs[9] ); - hf->v[0] = atof( cmd_argvs[10] ) * gedp->ged_wdbp->dbip->dbi_local2base; - hf->v[1] = atof( cmd_argvs[11] ) * gedp->ged_wdbp->dbip->dbi_local2base; - hf->v[2] = atof( cmd_argvs[12] ) * gedp->ged_wdbp->dbip->dbi_local2base; - hf->x[0] = atof( cmd_argvs[13] ); - hf->x[1] = atof( cmd_argvs[14] ); - hf->x[2] = atof( cmd_argvs[15] ); - hf->y[0] = atof( cmd_argvs[16] ); - hf->y[1] = atof( cmd_argvs[17] ); - hf->y[2] = atof( cmd_argvs[18] ); - hf->xlen = atof( cmd_argvs[19] ) * gedp->ged_wdbp->dbip->dbi_local2base; - hf->ylen = atof( cmd_argvs[20] ) * gedp->ged_wdbp->dbip->dbi_local2base; - hf->zscale = atof( cmd_argvs[21] ); + hf->w = atoi(cmd_argvs[6]); + hf->n = atoi(cmd_argvs[7]); + hf->shorts = atoi(cmd_argvs[8]); + hf->file2mm = atof(cmd_argvs[9]); + hf->v[0] = atof(cmd_argvs[10]) * gedp->ged_wdbp->dbip->dbi_local2base; + hf->v[1] = atof(cmd_argvs[11]) * gedp->ged_wdbp->dbip->dbi_local2base; + hf->v[2] = atof(cmd_argvs[12]) * gedp->ged_wdbp->dbip->dbi_local2base; + hf->x[0] = atof(cmd_argvs[13]); + hf->x[1] = atof(cmd_argvs[14]); + hf->x[2] = atof(cmd_argvs[15]); + hf->y[0] = atof(cmd_argvs[16]); + hf->y[1] = atof(cmd_argvs[17]); + hf->y[2] = atof(cmd_argvs[18]); + hf->xlen = atof(cmd_argvs[19]) * gedp->ged_wdbp->dbip->dbi_local2base; + hf->ylen = atof(cmd_argvs[20]) * gedp->ged_wdbp->dbip->dbi_local2base; + hf->zscale = atof(cmd_argvs[21]); - if ( hf->w < 2 || hf->n < 2 ) + if (hf->w < 2 || hf->n < 2) { bu_vls_printf(&gedp->ged_result_str, "ERROR: length or width of fta file is too small\n"); return GED_ERROR; } - if ( hf->xlen <= 0 || hf->ylen <= 0 ) + if (hf->xlen <= 0 || hf->ylen <= 0) { bu_vls_printf(&gedp->ged_result_str, "ERROR: length and width of HF solid must be greater than 0\n"); return GED_ERROR; @@ -839,7 +881,7 @@ /* XXXX should check for orthogonality of 'x' and 'y' vectors */ - if ( !(hf->mp = bu_open_mapped_file( hf->dfile, "hf" )) ) + if (!(hf->mp = bu_open_mapped_file(hf->dfile, "hf"))) { bu_vls_printf(&gedp->ged_result_str, "ERROR: cannot open data file\n"); hf->mp = (struct bu_mapped_file *)NULL; @@ -849,39 +891,41 @@ return GED_OK; } -/* V O L _ I N + +/* V O L _ I N * - * Read VOL solid from keyboard + * Read VOL solid from keyboard * */ static int vol_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - struct rt_vol_internal *vol; + struct rt_vol_internal *vol; - BU_GETSTRUCT( vol, rt_vol_internal ); + BU_GETSTRUCT(vol, rt_vol_internal); intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_VOL; intern->idb_meth = &rt_functab[ID_VOL]; intern->idb_ptr = (genptr_t)vol; vol->magic = RT_VOL_INTERNAL_MAGIC; - bu_strlcpy( vol->file, cmd_argvs[3], sizeof(vol->file) ); - vol->xdim = atoi( cmd_argvs[4] ); - vol->ydim = atoi( cmd_argvs[5] ); - vol->zdim = atoi( cmd_argvs[6] ); - vol->lo = atoi( cmd_argvs[7] ); - vol->hi = atoi( cmd_argvs[8] ); - vol->cellsize[0] = atof( cmd_argvs[9] ) * gedp->ged_wdbp->dbip->dbi_local2base; - vol->cellsize[1] = atof( cmd_argvs[10] ) * gedp->ged_wdbp->dbip->dbi_local2base; - vol->cellsize[2] = atof( cmd_argvs[11] ) * gedp->ged_wdbp->dbip->dbi_local2base; - MAT_IDN( vol->mat ); + bu_strlcpy(vol->file, cmd_argvs[3], sizeof(vol->file)); + vol->xdim = atoi(cmd_argvs[4]); + vol->ydim = atoi(cmd_argvs[5]); + vol->zdim = atoi(cmd_argvs[6]); + vol->lo = atoi(cmd_argvs[7]); + vol->hi = atoi(cmd_argvs[8]); + vol->cellsize[0] = atof(cmd_argvs[9]) * gedp->ged_wdbp->dbip->dbi_local2base; + vol->cellsize[1] = atof(cmd_argvs[10]) * gedp->ged_wdbp->dbip->dbi_local2base; + vol->cellsize[2] = atof(cmd_argvs[11]) * gedp->ged_wdbp->dbip->dbi_local2base; + MAT_IDN(vol->mat); return GED_OK; } + /* - * B O T _ I N + * B O T _ I N */ static int bot_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, char **prompt) @@ -892,59 +936,59 @@ int arg_count; struct rt_bot_internal *bot; - if ( argc < 7 ) { + if (argc < 7) { bu_vls_printf(&gedp->ged_result_str, "%s", prompt[argc-3]); return GED_MORE; } - num_verts = atoi( argv[3] ); - if ( num_verts < 3 ) + num_verts = atoi(argv[3]); + if (num_verts < 3) { bu_vls_printf(&gedp->ged_result_str, "Invalid number of vertices (must be at least 3)\n"); return GED_ERROR; } - num_faces = atoi( argv[4] ); - if ( num_faces < 1 ) + num_faces = atoi(argv[4]); + if (num_faces < 1) { bu_vls_printf(&gedp->ged_result_str, "Invalid number of triangles (must be at least 1)\n"); return GED_ERROR; } - mode = atoi( argv[5] ); - if ( mode < 1 || mode > 3 ) + mode = atoi(argv[5]); + if (mode < 1 || mode > 3) { bu_vls_printf(&gedp->ged_result_str, "Invalid mode (must be 1, 2, or 3)\n"); return GED_ERROR; } - orientation = atoi( argv[6] ); - if ( orientation < 1 || orientation > 3 ) + orientation = atoi(argv[6]); + if (orientation < 1 || orientation > 3) { bu_vls_printf(&gedp->ged_result_str, "Invalid orientation (must be 1, 2, or 3)\n"); return GED_ERROR; } arg_count = argc - 7; - if ( arg_count < num_verts*3 ) + if (arg_count < num_verts*3) { - bu_vls_printf(&gedp->ged_result_str, "%s for vertex %d : ", prompt[4+arg_count%3], arg_count/3 ); + bu_vls_printf(&gedp->ged_result_str, "%s for vertex %d : ", prompt[4+arg_count%3], arg_count/3); return GED_MORE; } arg_count = argc - 7 - num_verts*3; - if ( arg_count < num_faces*3 ) + if (arg_count < num_faces*3) { - bu_vls_printf(&gedp->ged_result_str, "%s for triangle %d : ", prompt[7+arg_count%3], arg_count/3 ); + bu_vls_printf(&gedp->ged_result_str, "%s for triangle %d : ", prompt[7+arg_count%3], arg_count/3); return GED_MORE; } - if ( mode == RT_BOT_PLATE ) + if (mode == RT_BOT_PLATE) { arg_count = argc - 7 - num_verts*3 - num_faces*3; - if ( arg_count < num_faces*2 ) + if (arg_count < num_faces*2) { - bu_vls_printf(&gedp->ged_result_str, "%s for face %d : ", prompt[10+arg_count%2], arg_count/2 ); + bu_vls_printf(&gedp->ged_result_str, "%s for face %d : ", prompt[10+arg_count%2], arg_count/2); return GED_MORE; } } @@ -952,60 +996,61 @@ intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_BOT; intern->idb_meth = &rt_functab[ID_BOT]; - bot = (struct rt_bot_internal *)bu_calloc( 1, sizeof( struct rt_bot_internal ), "rt_bot_internal" ); + bot = (struct rt_bot_internal *)bu_calloc(1, sizeof(struct rt_bot_internal), "rt_bot_internal"); intern->idb_ptr = (genptr_t)bot; bot->magic = RT_BOT_INTERNAL_MAGIC; bot->num_vertices = num_verts; bot->num_faces = num_faces; bot->mode = mode; bot->orientation = orientation; - bot->faces = (int *)bu_calloc( bot->num_faces * 3, sizeof( int ), "bot faces" ); - bot->vertices = (fastf_t *)bu_calloc( bot->num_vertices * 3, sizeof( fastf_t ), "bot vertices" ); + bot->faces = (int *)bu_calloc(bot->num_faces * 3, sizeof(int), "bot faces"); + bot->vertices = (fastf_t *)bu_calloc(bot->num_vertices * 3, sizeof(fastf_t), "bot vertices"); bot->thickness = (fastf_t *)NULL; bot->face_mode = (struct bu_bitv *)NULL; - for ( i=0; i<num_verts; i++ ) + for (i=0; i<num_verts; i++) { - bot->vertices[i*3] = atof( argv[7+i*3] ) * gedp->ged_wdbp->dbip->dbi_local2base; - bot->vertices[i*3+1] = atof( argv[8+i*3] ) * gedp->ged_wdbp->dbip->dbi_local2base; - bot->vertices[i*3+2] = atof( argv[9+i*3] ) * gedp->ged_wdbp->dbip->dbi_local2base; + bot->vertices[i*3] = atof(argv[7+i*3]) * gedp->ged_wdbp->dbip->dbi_local2base; + bot->vertices[i*3+1] = atof(argv[8+i*3]) * gedp->ged_wdbp->dbip->dbi_local2base; + bot->vertices[i*3+2] = atof(argv[9+i*3]) * gedp->ged_wdbp->dbip->dbi_local2base; } arg_count = 7 + num_verts*3; - for ( i=0; i<num_faces; i++ ) + for (i=0; i<num_faces; i++) { - bot->faces[i*3] = atoi( argv[arg_count + i*3] ); - bot->faces[i*3+1] = atoi( argv[arg_count + i*3 + 1] ); - bot->faces[i*3+2] = atoi( argv[arg_count + i*3 + 2] ); + bot->faces[i*3] = atoi(argv[arg_count + i*3]); + bot->faces[i*3+1] = atoi(argv[arg_count + i*3 + 1]); + bot->faces[i*3+2] = atoi(argv[arg_count + i*3 + 2]); } - if ( mode == RT_BOT_PLATE ) + if (mode == RT_BOT_PLATE) { arg_count = 7 + num_verts*3 + num_faces*3; - bot->thickness = (fastf_t *)bu_calloc( num_faces, sizeof( fastf_t ), "bot thickness" ); - bot->face_mode = bu_bitv_new( num_faces ); - bu_bitv_clear( bot->face_mode ); - for ( i=0; i<num_faces; i++ ) + bot->thickness = (fastf_t *)bu_calloc(num_faces, sizeof(fastf_t), "bot thickness"); + bot->face_mode = bu_bitv_new(num_faces); + bu_bitv_clear(bot->face_mode); + for (i=0; i<num_faces; i++) { int j; - j = atoi( argv[arg_count + i*2] ); - if ( j == 1 ) - BU_BITSET( bot->face_mode, i ); - else if ( j != 0 ) + j = atoi(argv[arg_count + i*2]); + if (j == 1) + BU_BITSET(bot->face_mode, i); + else if (j != 0) { bu_vls_printf(&gedp->ged_result_str, "Invalid face mode (must be 0 or 1)\n"); return GED_ERROR; } - bot->thickness[i] = atof( argv[arg_count + i*2 + 1] ) * gedp->ged_wdbp->dbip->dbi_local2base; + bot->thickness[i] = atof(argv[arg_count + i*2 + 1]) * gedp->ged_wdbp->dbip->dbi_local2base; } } return GED_OK; } + /* - * A R B N _ I N + * A R B N _ I N */ static int arbn_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, char **prompt) @@ -1014,41 +1059,42 @@ int num_planes=0; int i; - if ( argc < 4 ) { + if (argc < 4) { bu_vls_printf(&gedp->ged_result_str, "%s", prompt[argc-3]); return GED_MORE; } - num_planes = atoi( argv[3] ); + num_planes = atoi(argv[3]); - if ( argc < num_planes * 4 + 4 ) { - bu_vls_printf(&gedp->ged_result_str, "%s for plane %d : ", prompt[(argc-4)%4 + 1], 1+(argc-4)/4 ); + if (argc < num_planes * 4 + 4) { + bu_vls_printf(&gedp->ged_result_str, "%s for plane %d : ", prompt[(argc-4)%4 + 1], 1+(argc-4)/4); return GED_MORE; } intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_ARBN; intern->idb_meth = &rt_functab[ID_ARBN]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof( struct rt_arbn_internal ), - "rt_arbn_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_arbn_internal), + "rt_arbn_internal"); arbn = (struct rt_arbn_internal *)intern->idb_ptr; arbn->magic = RT_ARBN_INTERNAL_MAGIC; arbn->neqn = num_planes; - arbn->eqn = (plane_t *)bu_calloc( arbn->neqn, sizeof( plane_t ), "arbn planes" ); + arbn->eqn = (plane_t *)bu_calloc(arbn->neqn, sizeof(plane_t), "arbn planes"); /* Normal is unscaled, should have unit length; d is scaled */ - for ( i=0; i<arbn->neqn; i++ ) { - arbn->eqn[i][X] = atof( argv[4+i*4] ); - arbn->eqn[i][Y] = atof( argv[4+i*4+1] ); - arbn->eqn[i][Z] = atof( argv[4+i*4+2] ); - arbn->eqn[i][W] = atof( argv[4+i*4+3] ) * gedp->ged_wdbp->dbip->dbi_local2base; + for (i=0; i<arbn->neqn; i++) { + arbn->eqn[i][X] = atof(argv[4+i*4]); + arbn->eqn[i][Y] = atof(argv[4+i*4+1]); + arbn->eqn[i][Z] = atof(argv[4+i*4+2]); + arbn->eqn[i][W] = atof(argv[4+i*4+3]) * gedp->ged_wdbp->dbip->dbi_local2base; } return GED_OK; } + /* - * P I P E _ I N + * P I P E _ I N */ static int pipe_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, char **prompt) @@ -1056,53 +1102,53 @@ struct rt_pipe_internal *pipe; int i, num_points; - if ( argc < 4 ) { + if (argc < 4) { bu_vls_printf(&gedp->ged_result_str, "%s", prompt[argc-3]); return GED_MORE; } - num_points = atoi( argv[3] ); - if ( num_points < 2 ) + num_points = atoi(argv[3]); + if (num_points < 2) { bu_vls_printf(&gedp->ged_result_str, "Invalid number of points (must be at least 2)\n"); return GED_ERROR; } - if ( argc < 10 ) + if (argc < 10) { bu_vls_printf(&gedp->ged_result_str, "%s", prompt[argc-3]); return GED_MORE; } - if ( argc < 4 + num_points*6 ) + if (argc < 4 + num_points*6) { - bu_vls_printf(&gedp->ged_result_str, "%s for point %d : ", prompt[7+(argc-10)%6], 1+(argc-4)/6 ); + bu_vls_printf(&gedp->ged_result_str, "%s for point %d : ", prompt[7+(argc-10)%6], 1+(argc-4)/6); return GED_MORE; } intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_PIPE; intern->idb_meth = &rt_functab[ID_PIPE]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof( struct rt_pipe_internal ), "rt_pipe_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_pipe_internal), "rt_pipe_internal"); pipe = (struct rt_pipe_internal *)intern->idb_ptr; pipe->pipe_magic = RT_PIPE_INTERNAL_MAGIC; - BU_LIST_INIT( &pipe->pipe_segs_head ); - for ( i=4; i<argc; i+= 6 ) + BU_LIST_INIT(&pipe->pipe_segs_head); + for (i=4; i<argc; i+= 6) { struct wdb_pipept *pipept; - pipept = (struct wdb_pipept *)bu_malloc( sizeof( struct wdb_pipept ), "wdb_pipept" ); - pipept->pp_coord[0] = atof( argv[i] ) * gedp->ged_wdbp->dbip->dbi_local2base; - pipept->pp_coord[1] = atof( argv[i+1] ) * gedp->ged_wdbp->dbip->dbi_local2base; - pipept->pp_coord[2] = atof( argv[i+2] ) * gedp->ged_wdbp->dbip->dbi_local2base; - pipept->pp_id = atof( argv[i+3] ) * gedp->ged_wdbp->dbip->dbi_local2base; - pipept->pp_od = atof( argv[i+4] ) * gedp->ged_wdbp->dbip->dbi_local2base; - pipept->pp_bendradius = atof( argv[i+5] ) * gedp->ged_wdbp->dbip->dbi_local2base; + pipept = (struct wdb_pipept *)bu_malloc(sizeof(struct wdb_pipept), "wdb_pipept"); + pipept->pp_coord[0] = atof(argv[i]) * gedp->ged_wdbp->dbip->dbi_local2base; + pipept->pp_coord[1] = atof(argv[i+1]) * gedp->ged_wdbp->dbip->dbi_local2base; + pipept->pp_coord[2] = atof(argv[i+2]) * gedp->ged_wdbp->dbip->dbi_local2base; + pipept->pp_id = atof(argv[i+3]) * gedp->ged_wdbp->dbip->dbi_local2base; + pipept->pp_od = atof(argv[i+4]) * gedp->ged_wdbp->dbip->dbi_local2base; + pipept->pp_bendradius = atof(argv[i+5]) * gedp->ged_wdbp->dbip->dbi_local2base; - BU_LIST_INSERT( &pipe->pipe_segs_head, &pipept->l ); + BU_LIST_INSERT(&pipe->pipe_segs_head, &pipept->l); } - if ( rt_pipe_ck( &pipe->pipe_segs_head ) ) + if (rt_pipe_ck(&pipe->pipe_segs_head)) { bu_vls_printf(&gedp->ged_result_str, "Illegal pipe, solid not made!!\n"); return GED_ERROR; @@ -1111,18 +1157,19 @@ return GED_OK; } + /* - * A R S _ I N + * A R S _ I N */ static int ars_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, char **prompt) { - struct rt_ars_internal *arip; - int i; - int total_points; - int cv; /* current curve (waterline) # */ - int axis; /* current fastf_t in waterline */ - int ncurves_minus_one; + struct rt_ars_internal *arip; + int i; + int total_points; + int cv; /* current curve (waterline) # */ + int axis; /* current fastf_t in waterline */ + int ncurves_minus_one; int num_pts = 0; int num_curves = 0; int vals_present, total_vals_needed; @@ -1131,7 +1178,7 @@ if (vals_present > 0) { num_pts = atoi(argv[3]); - if (num_pts < 3 ) { + if (num_pts < 3) { bu_vls_printf(&gedp->ged_result_str, "points per waterline must be >= 3\n"); intern->idb_meth = &rt_functab[ID_ARS]; return GED_ERROR; @@ -1170,19 +1217,19 @@ bu_vls_printf(&gedp->ged_result_str, "%s for Waterline %d, Point %d : ", prompt[5], 1+(argc-8)/3/num_pts, - ((argc-8)/3)%num_pts ); + ((argc-8)/3)%num_pts); break; case 1: bu_vls_printf(&gedp->ged_result_str, "%s for Waterline %d, Point %d : ", prompt[6], 1+(argc-8)/3/num_pts, - ((argc-8)/3)%num_pts ); + ((argc-8)/3)%num_pts); break; case 2: bu_vls_printf(&gedp->ged_result_str, "%s for Waterline %d, Point %d : ", prompt[7], 1+(argc-8)/3/num_pts, - ((argc-8)/3)%num_pts ); + ((argc-8)/3)%num_pts); break; } @@ -1197,19 +1244,19 @@ bu_vls_printf(&gedp->ged_result_str, "%s for pt of last Waterline : %d, %d", prompt[5], 1+(argc-8)/3/num_pts, - ((argc-8)/3)%num_pts ); + ((argc-8)/3)%num_pts); break; case 1: bu_vls_printf(&gedp->ged_result_str, "%s for pt of last Waterline : %d, %d", prompt[6], 1+(argc-8)/3/num_pts, - ((argc-8)/3)%num_pts ); + ((argc-8)/3)%num_pts); break; case 2: bu_vls_printf(&gedp->ged_result_str, "%s for pt of last Waterline : %d, %d", prompt[7], 1+(argc-8)/3/num_pts, - ((argc-8)/3)%num_pts ); + ((argc-8)/3)%num_pts); break; } @@ -1219,7 +1266,7 @@ intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_ARS; intern->idb_meth = &rt_functab[ID_ARS]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_ars_internal), "rt_ars_internal"); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_ars_internal), "rt_ars_internal"); arip = (struct rt_ars_internal *)intern->idb_ptr; arip->magic = RT_ARS_INTERNAL_MAGIC; arip->pts_per_curve = num_pts; @@ -1228,12 +1275,12 @@ total_points = arip->ncurves * arip->pts_per_curve; arip->curves = (fastf_t **)bu_malloc( - (arip->ncurves+1) * sizeof(fastf_t **), "ars curve ptrs" ); - for ( i=0; i < arip->ncurves+1; i++ ) { + (arip->ncurves+1) * sizeof(fastf_t **), "ars curve ptrs"); + for (i=0; i < arip->ncurves+1; i++) { /* Leave room for first point to be repeated */ arip->curves[i] = (fastf_t *)bu_malloc( (arip->pts_per_curve+1) * sizeof(point_t), - "ars curve" ); + "ars curve"); } /* fill in the point of the first row */ @@ -1243,7 +1290,7 @@ /* The first point is duplicated across the first curve */ for (i=1; i < arip->pts_per_curve; ++i) { - VMOVE( arip->curves[0]+3*i, arip->curves[0] ); + VMOVE(arip->curves[0]+3*i, arip->curves[0]); } cv = 1; @@ -1259,16 +1306,17 @@ /* The first point is duplicated across the last curve */ for (i=1; i < arip->pts_per_curve; ++i) { - VMOVE( arip->curves[ncurves_minus_one]+3*i, - arip->curves[ncurves_minus_one] ); + VMOVE(arip->curves[ncurves_minus_one]+3*i, + arip->curves[ncurves_minus_one]); } return GED_OK; } -/* H A L F _ I N ( ) : reads halfspace parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* H A L F _ I N () : reads halfspace parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int half_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern, const char *name) @@ -1288,28 +1336,29 @@ return GED_ERROR; } - VUNITIZE( norm ); - if ( mk_half( gedp->ged_wdbp, name, norm, d ) < 0 ) + VUNITIZE(norm); + if (mk_half(gedp->ged_wdbp, name, norm, d) < 0) return GED_ERROR; return GED_OK; } -/* A R B _ I N ( ) : reads arb parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* A R B _ I N () : reads arb parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int arb_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - int i, j, n; - struct rt_arb_internal *aip; + int i, j, n; + struct rt_arb_internal *aip; intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_ARB8; intern->idb_meth = &rt_functab[ID_ARB8]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_arb_internal), - "rt_arb_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_arb_internal), + "rt_arb_internal"); aip = (struct rt_arb_internal *)intern->idb_ptr; aip->magic = RT_ARB_INTERNAL_MAGIC; @@ -1319,36 +1368,37 @@ aip->pt[j][i] = atof(cmd_argvs[3+i+3*j]) * gedp->ged_wdbp->dbip->dbi_local2base; if (!strcmp("arb4", cmd_argvs[2])) { - VMOVE( aip->pt[7], aip->pt[3] ); - VMOVE( aip->pt[6], aip->pt[3] ); - VMOVE( aip->pt[5], aip->pt[3] ); - VMOVE( aip->pt[4], aip->pt[3] ); - VMOVE( aip->pt[3], aip->pt[0] ); + VMOVE(aip->pt[7], aip->pt[3]); + VMOVE(aip->pt[6], aip->pt[3]); + VMOVE(aip->pt[5], aip->pt[3]); + VMOVE(aip->pt[4], aip->pt[3]); + VMOVE(aip->pt[3], aip->pt[0]); } else if (!strcmp("arb5", cmd_argvs[2])) { - VMOVE( aip->pt[7], aip->pt[4] ); - VMOVE( aip->pt[6], aip->pt[4] ); - VMOVE( aip->pt[5], aip->pt[4] ); + VMOVE(aip->pt[7], aip->pt[4]); + VMOVE(aip->pt[6], aip->pt[4]); + VMOVE(aip->pt[5], aip->pt[4]); } else if (!strcmp("arb6", cmd_argvs[2])) { - VMOVE( aip->pt[7], aip->pt[5] ); - VMOVE( aip->pt[6], aip->pt[5] ); - VMOVE( aip->pt[5], aip->pt[4] ); + VMOVE(aip->pt[7], aip->pt[5]); + VMOVE(aip->pt[6], aip->pt[5]); + VMOVE(aip->pt[5], aip->pt[4]); } else if (!strcmp("arb7", cmd_argvs[2])) { - VMOVE( aip->pt[7], aip->pt[4] ); + VMOVE(aip->pt[7], aip->pt[4]); } return GED_OK; /* success */ } -/* S P H _ I N ( ) : reads sph parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* S P H _ I N () : reads sph parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int sph_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern, const char *name) { - point_t center; - fastf_t r; - int i; + point_t center; + fastf_t r; + int i; intern->idb_ptr = NULL; @@ -1362,21 +1412,22 @@ return GED_ERROR; } - if ( mk_sph( gedp->ged_wdbp, name, center, r ) < 0 ) + if (mk_sph(gedp->ged_wdbp, name, center, r) < 0) return GED_ERROR; return GED_OK; } -/* E L L _ I N ( ) : reads ell parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* E L L _ I N () : reads ell parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int ell_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - fastf_t len, mag_b, r_rev, vals[12]; - int i, n; - struct rt_ell_internal *eip; + fastf_t len, mag_b, r_rev, vals[12]; + int i, n; + struct rt_ell_internal *eip; n = 12; /* ELL has twelve params */ if (cmd_argvs[2][3] != '\0') /* ELLG and ELL1 have seven */ @@ -1385,8 +1436,8 @@ intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_ELL; intern->idb_meth = &rt_functab[ID_ELL]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_ell_internal), - "rt_ell_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_ell_internal), + "rt_ell_internal"); eip = (struct rt_ell_internal *)intern->idb_ptr; eip->magic = RT_ELL_INTERNAL_MAGIC; @@ -1398,10 +1449,10 @@ if (!strcmp("ell", cmd_argvs[2])) { /* everything's ok */ /* V, A, B, C */ - VMOVE( eip->v, &vals[0] ); - VMOVE( eip->a, &vals[3] ); - VMOVE( eip->b, &vals[6] ); - VMOVE( eip->c, &vals[9] ); + VMOVE(eip->v, &vals[0]); + VMOVE(eip->a, &vals[3]); + VMOVE(eip->b, &vals[6]); + VMOVE(eip->c, &vals[9]); return GED_OK; } @@ -1410,22 +1461,22 @@ /* convert ELLG format into ELL1 format */ len = vals[6]; /* V is halfway between the foci */ - VADD2( eip->v, &vals[0], &vals[3] ); - VSCALE( eip->v, eip->v, 0.5); - VSUB2( eip->b, &vals[3], &vals[0] ); - mag_b = MAGNITUDE( eip->b ); - if ( NEAR_ZERO( mag_b, RT_LEN_TOL )) { + VADD2(eip->v, &vals[0], &vals[3]); + VSCALE(eip->v, eip->v, 0.5); + VSUB2(eip->b, &vals[3], &vals[0]); + mag_b = MAGNITUDE(eip->b); + if (NEAR_ZERO(mag_b, RT_LEN_TOL)) { bu_vls_printf(&gedp->ged_result_str, "ERROR, foci are coincident!\n"); return GED_ERROR; } /* calculate A vector */ - VSCALE( eip->a, eip->b, .5*len/mag_b ); + VSCALE(eip->a, eip->b, .5*len/mag_b); /* calculate radius of revolution (for ELL1 format) */ - r_rev = sqrt( MAGSQ( eip->a ) - (mag_b*.5)*(mag_b*.5) ); + r_rev = sqrt(MAGSQ(eip->a) - (mag_b*.5)*(mag_b*.5)); } else if (!strcmp("ell1", cmd_argvs[2])) { /* V, A, r */ - VMOVE( eip->v, &vals[0] ); - VMOVE( eip->a, &vals[3] ); + VMOVE(eip->v, &vals[0]); + VMOVE(eip->a, &vals[3]); r_rev = vals[6]; } else { r_rev = 0; @@ -1433,32 +1484,33 @@ /* convert ELL1 format into ELLG format */ /* calculate B vector */ - bn_vec_ortho( eip->b, eip->a ); - VUNITIZE( eip->b ); - VSCALE( eip->b, eip->b, r_rev); + bn_vec_ortho(eip->b, eip->a); + VUNITIZE(eip->b); + VSCALE(eip->b, eip->b, r_rev); /* calculate C vector */ - VCROSS( eip->c, eip->a, eip->b ); - VUNITIZE( eip->c ); - VSCALE( eip->c, eip->c, r_rev ); + VCROSS(eip->c, eip->a, eip->b); + VUNITIZE(eip->c); + VSCALE(eip->c, eip->c, r_rev); return GED_OK; } -/* T O R _ I N ( ) : reads tor parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* T O R _ I N () : reads tor parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int tor_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - int i; - struct rt_tor_internal *tip; + int i; + struct rt_tor_internal *tip; intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_TOR; intern->idb_meth = &rt_functab[ID_TOR]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_tor_internal), - "rt_tor_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_tor_internal), + "rt_tor_internal"); tip = (struct rt_tor_internal *)intern->idb_ptr; tip->magic = RT_TOR_INTERNAL_MAGIC; @@ -1469,12 +1521,12 @@ tip->r_a = atof(cmd_argvs[9]) * gedp->ged_wdbp->dbip->dbi_local2base; tip->r_h = atof(cmd_argvs[10]) * gedp->ged_wdbp->dbip->dbi_local2base; /* Check for radius 2 >= radius 1 */ - if ( tip->r_a <= tip->r_h ) { + if (tip->r_a <= tip->r_h) { bu_vls_printf(&gedp->ged_result_str, "ERROR, radius 2 >= radius 1 ....\n"); return GED_ERROR; } - if (MAGNITUDE( tip->h ) < RT_LEN_TOL) { + if (MAGNITUDE(tip->h) < RT_LEN_TOL) { bu_vls_printf(&gedp->ged_result_str, "ERROR, normal must be greater than zero!\n"); return GED_ERROR; } @@ -1482,22 +1534,23 @@ return GED_OK; } -/* T G C _ I N ( ) : reads tgc parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* T G C _ I N () : reads tgc parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int tgc_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - fastf_t r1, r2; - int i; - struct rt_tgc_internal *tip; + fastf_t r1, r2; + int i; + struct rt_tgc_internal *tip; intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_TGC; intern->idb_meth = &rt_functab[ID_TGC]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_tgc_internal), - "rt_tgc_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_tgc_internal), + "rt_tgc_internal"); tip = (struct rt_tgc_internal *)intern->idb_ptr; tip->magic = RT_TGC_INTERNAL_MAGIC; @@ -1519,34 +1572,35 @@ } /* calculate C */ - VMOVE( tip->c, tip->a ); - VUNITIZE( tip->c ); - VSCALE( tip->c, tip->c, r1); + VMOVE(tip->c, tip->a); + VUNITIZE(tip->c); + VSCALE(tip->c, tip->c, r1); /* calculate D */ - VMOVE( tip->d, tip->b ); - VUNITIZE( tip->d ); - VSCALE( tip->d, tip->d, r2); + VMOVE(tip->d, tip->b); + VUNITIZE(tip->d); + VSCALE(tip->d, tip->d, r2); return GED_OK; } -/* R C C _ I N ( ) : reads rcc parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* R C C _ I N () : reads rcc parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int rcc_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - fastf_t r; - int i; - struct rt_tgc_internal *tip; + fastf_t r; + int i; + struct rt_tgc_internal *tip; intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_TGC; intern->idb_meth = &rt_functab[ID_TGC]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_tgc_internal), - "rt_tgc_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_tgc_internal), + "rt_tgc_internal"); tip = (struct rt_tgc_internal *)intern->idb_ptr; tip->magic = RT_TGC_INTERNAL_MAGIC; @@ -1561,35 +1615,36 @@ return GED_ERROR; } - bn_vec_ortho( tip->a, tip->h ); - VUNITIZE( tip->a ); - VCROSS( tip->b, tip->h, tip->a ); - VUNITIZE( tip->b ); + bn_vec_ortho(tip->a, tip->h); + VUNITIZE(tip->a); + VCROSS(tip->b, tip->h, tip->a); + VUNITIZE(tip->b); - VSCALE( tip->a, tip->a, r ); - VSCALE( tip->b, tip->b, r ); - VMOVE( tip->c, tip->a ); - VMOVE( tip->d, tip->b ); + VSCALE(tip->a, tip->a, r); + VSCALE(tip->b, tip->b, r); + VMOVE(tip->c, tip->a); + VMOVE(tip->d, tip->b); return GED_OK; } -/* T E C _ I N ( ) : reads tec parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* T E C _ I N () : reads tec parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int tec_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - fastf_t ratio; - int i; - struct rt_tgc_internal *tip; + fastf_t ratio; + int i; + struct rt_tgc_internal *tip; intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_TGC; intern->idb_meth = &rt_functab[ID_TGC]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_tgc_internal), - "rt_tgc_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_tgc_internal), + "rt_tgc_internal"); tip = (struct rt_tgc_internal *)intern->idb_ptr; tip->magic = RT_TGC_INTERNAL_MAGIC; @@ -1608,27 +1663,28 @@ return GED_ERROR; } - VSCALE( tip->c, tip->a, 1./ratio ); /* C vector */ - VSCALE( tip->d, tip->b, 1./ratio ); /* D vector */ + VSCALE(tip->c, tip->a, 1./ratio); /* C vector */ + VSCALE(tip->d, tip->b, 1./ratio); /* D vector */ return GED_OK; } -/* R E C _ I N ( ) : reads rec parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* R E C _ I N () : reads rec parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int rec_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - int i; - struct rt_tgc_internal *tip; + int i; + struct rt_tgc_internal *tip; intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_TGC; intern->idb_meth = &rt_functab[ID_TGC]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_tgc_internal), - "rt_tgc_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_tgc_internal), + "rt_tgc_internal"); tip = (struct rt_tgc_internal *)intern->idb_ptr; tip->magic = RT_TGC_INTERNAL_MAGIC; @@ -1641,33 +1697,34 @@ if (MAGNITUDE(tip->h) < RT_LEN_TOL || MAGNITUDE(tip->a) < RT_LEN_TOL - || MAGNITUDE(tip->b) < RT_LEN_TOL ) { + || MAGNITUDE(tip->b) < RT_LEN_TOL) { bu_vls_printf(&gedp->ged_result_str, "ERROR, all dimensions must be greater than zero!\n"); return GED_ERROR; } - VMOVE( tip->c, tip->a ); /* C vector */ - VMOVE( tip->d, tip->b ); /* D vector */ + VMOVE(tip->c, tip->a); /* C vector */ + VMOVE(tip->d, tip->b); /* D vector */ return GED_OK; } -/* T R C _ I N ( ) : reads trc parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* T R C _ I N () : reads trc parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int trc_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - fastf_t r1, r2; - int i; - struct rt_tgc_internal *tip; + fastf_t r1, r2; + int i; + struct rt_tgc_internal *tip; intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_TGC; intern->idb_meth = &rt_functab[ID_TGC]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_tgc_internal), - "rt_tgc_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_tgc_internal), + "rt_tgc_internal"); tip = (struct rt_tgc_internal *)intern->idb_ptr; tip->magic = RT_TGC_INTERNAL_MAGIC; @@ -1684,37 +1741,38 @@ return GED_ERROR; } - bn_vec_ortho( tip->a, tip->h ); - VUNITIZE( tip->a ); - VCROSS( tip->b, tip->h, tip->a ); - VUNITIZE( tip->b ); - VMOVE( tip->c, tip->a ); - VMOVE( tip->d, tip->b ); + bn_vec_ortho(tip->a, tip->h); + VUNITIZE(tip->a); + VCROSS(tip->b, tip->h, tip->a); + VUNITIZE(tip->b); + VMOVE(tip->c, tip->a); + VMOVE(tip->d, tip->b); - VSCALE( tip->a, tip->a, r1 ); - VSCALE( tip->b, tip->b, r1 ); - VSCALE( tip->c, tip->c, r2 ); - VSCALE( tip->d, tip->d, r2 ); + VSCALE(tip->a, tip->a, r1); + VSCALE(tip->b, tip->b, r1); + VSCALE(tip->c, tip->c, r2); + VSCALE(tip->d, tip->d, r2); return GED_OK; } -/* B O X _ I N ( ) : reads box parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* B O X _ I N () : reads box parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int box_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - int i; - struct rt_arb_internal *aip; - vect_t Dpth, Hgt, Vrtx, Wdth; + int i; + struct rt_arb_internal *aip; + vect_t Dpth, Hgt, Vrtx, Wdth; intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_ARB8; intern->idb_meth = &rt_functab[ID_ARB8]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_arb_internal), - "rt_arb_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_arb_internal), + "rt_arb_internal"); aip = (struct rt_arb_internal *)intern->idb_ptr; aip->magic = RT_ARB_INTERNAL_MAGIC; @@ -1732,37 +1790,38 @@ } if (!strcmp("box", cmd_argvs[2])) { - VMOVE( aip->pt[0], Vrtx ); - VADD2( aip->pt[1], Vrtx, Wdth ); - VADD3( aip->pt[2], Vrtx, Wdth, Hgt ); - VADD2( aip->pt[3], Vrtx, Hgt ); - VADD2( aip->pt[4], Vrtx, Dpth ); - VADD3( aip->pt[5], Vrtx, Dpth, Wdth ); - VADD4( aip->pt[6], Vrtx, Dpth, Wdth, Hgt ); - VADD3( aip->pt[7], Vrtx, Dpth, Hgt ); + VMOVE(aip->pt[0], Vrtx); + VADD2(aip->pt[1], Vrtx, Wdth); + VADD3(aip->pt[2], Vrtx, Wdth, Hgt); + VADD2(aip->pt[3], Vrtx, Hgt); + VADD2(aip->pt[4], Vrtx, Dpth); + VADD3(aip->pt[5], Vrtx, Dpth, Wdth); + VADD4(aip->pt[6], Vrtx, Dpth, Wdth, Hgt); + VADD3(aip->pt[7], Vrtx, Dpth, Hgt); } else { /* "raw" */ - VADD2( aip->pt[0], Vrtx, Wdth ); - VADD2( aip->pt[1], Vrtx, Hgt ); - VADD2( aip->pt[2], aip->pt[1], Dpth ); - VADD2( aip->pt[3], aip->pt[0], Dpth ); - VMOVE( aip->pt[4], Vrtx ); - VMOVE( aip->pt[5], Vrtx ); - VADD2( aip->pt[6], Vrtx, Dpth ); - VMOVE( aip->pt[7], aip->pt[6] ); + VADD2(aip->pt[0], Vrtx, Wdth); + VADD2(aip->pt[1], Vrtx, Hgt); + VADD2(aip->pt[2], aip->pt[1], Dpth); + VADD2(aip->pt[3], aip->pt[0], Dpth); + VMOVE(aip->pt[4], Vrtx); + VMOVE(aip->pt[5], Vrtx); + VADD2(aip->pt[6], Vrtx, Dpth); + VMOVE(aip->pt[7], aip->pt[6]); } return GED_OK; } -/* R P P _ I N ( ) : reads rpp parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* R P P _ I N () : reads rpp parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int rpp_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern, const char *name) { - point_t min, max; + point_t min, max; intern->idb_ptr = NULL; @@ -1786,27 +1845,28 @@ return GED_ERROR; } - if ( mk_rpp( gedp->ged_wdbp, name, min, max ) < 0 ) + if (mk_rpp(gedp->ged_wdbp, name, min, max) < 0) return 1; return GED_OK; } + /* - * O R P P _ I N ( ) + * O R P P _ I N () * * Reads origin-min rpp (box) parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + * returns 0 if successful read + * 1 if unsuccessful read */ static int orpp_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern, const char *name) { - point_t min, max; + point_t min, max; intern->idb_ptr = NULL; - VSETALL( min, 0 ); + VSETALL(min, 0); max[X] = atof(cmd_argvs[3+0]) * gedp->ged_wdbp->dbip->dbi_local2base; max[Y] = atof(cmd_argvs[3+1]) * gedp->ged_wdbp->dbip->dbi_local2base; max[Z] = atof(cmd_argvs[3+2]) * gedp->ged_wdbp->dbip->dbi_local2base; @@ -1824,28 +1884,29 @@ return GED_ERROR; } - if ( mk_rpp( gedp->ged_wdbp, name, min, max ) < 0 ) + if (mk_rpp(gedp->ged_wdbp, name, min, max) < 0) return GED_ERROR; - return 1; + return 1; return GED_OK; } -/* P A R T _ I N ( ) : reads particle parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* P A R T _ I N () : reads particle parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int part_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - int i; + int i; struct rt_part_internal *part_ip; intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_PARTICLE; intern->idb_meth = &rt_functab[ID_PARTICLE]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_part_internal), - "rt_part_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_part_internal), + "rt_part_internal"); part_ip = (struct rt_part_internal *)intern->idb_ptr; part_ip->part_magic = RT_PART_INTERNAL_MAGIC; @@ -1866,21 +1927,22 @@ return GED_OK; } -/* R P C _ I N ( ) : reads rpc parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* R P C _ I N () : reads rpc parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int rpc_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - int i; - struct rt_rpc_internal *rip; + int i; + struct rt_rpc_internal *rip; intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_RPC; intern->idb_meth = &rt_functab[ID_RPC]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_rpc_internal), - "rt_rpc_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_rpc_internal), + "rt_rpc_internal"); rip = (struct rt_rpc_internal *)intern->idb_ptr; rip->rpc_magic = RT_RPC_INTERNAL_MAGIC; @@ -1901,21 +1963,22 @@ return GED_OK; } -/* R H C _ I N ( ) : reads rhc parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* R H C _ I N () : reads rhc parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int rhc_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - int i; - struct rt_rhc_internal *rip; + int i; + struct rt_rhc_internal *rip; intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_RHC; intern->idb_meth = &rt_functab[ID_RHC]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_rhc_internal), - "rt_rhc_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_rhc_internal), + "rt_rhc_internal"); rip = (struct rt_rhc_internal *)intern->idb_ptr; rip->rhc_magic = RT_RHC_INTERNAL_MAGIC; @@ -1937,21 +2000,22 @@ return GED_OK; } -/* E P A _ I N ( ) : reads epa parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* E P A _ I N () : reads epa parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int epa_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - int i; - struct rt_epa_internal *rip; + int i; + struct rt_epa_internal *rip; intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_EPA; intern->idb_meth = &rt_functab[ID_EPA]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_epa_internal), - "rt_epa_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_epa_internal), + "rt_epa_internal"); rip = (struct rt_epa_internal *)intern->idb_ptr; rip->epa_magic = RT_EPA_INTERNAL_MAGIC; @@ -1978,21 +2042,22 @@ return GED_OK; } -/* E H Y _ I N ( ) : reads ehy parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* E H Y _ I N () : reads ehy parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int ehy_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - int i; - struct rt_ehy_internal *rip; + int i; + struct rt_ehy_internal *rip; intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_EHY; intern->idb_meth = &rt_functab[ID_EHY]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_ehy_internal), - "rt_ehy_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_ehy_internal), + "rt_ehy_internal"); rip = (struct rt_ehy_internal *)intern->idb_ptr; rip->ehy_magic = RT_EHY_INTERNAL_MAGIC; @@ -2013,7 +2078,7 @@ return GED_ERROR; } - if ( !NEAR_ZERO( VDOT( rip->ehy_H, rip->ehy_Au ), RT_DOT_TOL ) ) { + if (!NEAR_ZERO(VDOT(rip->ehy_H, rip->ehy_Au), RT_DOT_TOL)) { bu_vls_printf(&gedp->ged_result_str, "ERROR, major axis must be perpendicular to height vector!\n"); return GED_ERROR; } @@ -2027,24 +2092,24 @@ } -/* H Y P _ I N ( ) : reads hyp parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read +/* H Y P _ I N () : reads hyp parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int hyp_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - int i; - struct rt_hyp_internal *rip; - vect_t inH, inAu; - point_t inV; - fastf_t inB, inC; + int i; + struct rt_hyp_internal *rip; + vect_t inH, inAu; + point_t inV; + fastf_t inB, inC; intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_HYP; intern->idb_meth = &rt_functab[ID_HYP]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_hyp_internal), - "rt_hyp_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_hyp_internal), + "rt_hyp_internal"); rip = (struct rt_hyp_internal *)intern->idb_ptr; rip->hyp_magic = RT_HYP_INTERNAL_MAGIC; @@ -2058,34 +2123,34 @@ rip->hyp_b = inB; rip->hyp_bnr = inC; - VMOVE( rip->hyp_Hi, inH ); - VMOVE( rip->hyp_Vi, inV ); - VMOVE( rip->hyp_A, inAu ); + VMOVE(rip->hyp_Hi, inH); + VMOVE(rip->hyp_Vi, inV); + VMOVE(rip->hyp_A, inAu); - if (rip->hyp_b > MAGNITUDE( rip->hyp_A )) { - vect_t majorAxis; - fastf_t minorLen; + if (rip->hyp_b > MAGNITUDE(rip->hyp_A)) { + vect_t majorAxis; + fastf_t minorLen; minorLen = MAGNITUDE(rip->hyp_A); - VCROSS( majorAxis, rip->hyp_Hi, rip->hyp_A ); - VSCALE( rip->hyp_A, majorAxis, rip->hyp_b ); + VCROSS(majorAxis, rip->hyp_Hi, rip->hyp_A); + VSCALE(rip->hyp_A, majorAxis, rip->hyp_b); rip->hyp_b = minorLen; } if (MAGNITUDE(rip->hyp_Hi)*0.5 < RT_LEN_TOL - || MAGNITUDE( rip->hyp_A ) * rip->hyp_bnr <= RT_LEN_TOL + || MAGNITUDE(rip->hyp_A) * rip->hyp_bnr <= RT_LEN_TOL || rip->hyp_b <= RT_LEN_TOL) { bu_vls_printf(&gedp->ged_result_str, "ERROR, height, axes, and distance to asymptotes must be greater than zero!\n"); return GED_ERROR; } - if ( !NEAR_ZERO( VDOT( rip->hyp_Hi, rip->hyp_A ), RT_DOT_TOL ) ) { + if (!NEAR_ZERO(VDOT(rip->hyp_Hi, rip->hyp_A), RT_DOT_TOL)) { bu_vls_printf(&gedp->ged_result_str, "ERROR, major axis must be perpendicular to height vector!\n"); return GED_ERROR; } - if ( inC >= 1 || inC <=0 ) { + if (inC >= 1 || inC <=0) { bu_vls_printf(&gedp->ged_result_str, "ERROR, neck to base ratio must be between 0 and 1!\n"); return GED_ERROR; @@ -2094,21 +2159,22 @@ return GED_OK; } -/* E T O _ I N ( ) : reads eto parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* E T O _ I N () : reads eto parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int eto_in(struct ged *gedp, const char **cmd_argvs, struct rt_db_internal *intern) { - int i; - struct rt_eto_internal *eip; + int i; + struct rt_eto_internal *eip; intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_ETO; intern->idb_meth = &rt_functab[ID_ETO]; - intern->idb_ptr = (genptr_t)bu_malloc( sizeof(struct rt_eto_internal), - "rt_eto_internal" ); + intern->idb_ptr = (genptr_t)bu_malloc(sizeof(struct rt_eto_internal), + "rt_eto_internal"); eip = (struct rt_eto_internal *)intern->idb_ptr; eip->eto_magic = RT_ETO_INTERNAL_MAGIC; @@ -2135,17 +2201,18 @@ return GED_OK; } -/* E X T R U D E _ I N ( ) : reads extrude parameters from keyboard - * returns 0 if successful read - * 1 if unsuccessful read + +/* E X T R U D E _ I N () : reads extrude parameters from keyboard + * returns 0 if successful read + * 1 if unsuccessful read */ static int extrude_in(struct ged *gedp, cons... [truncated message content] |
From: <eri...@us...> - 2011-08-10 20:27:34
|
Revision: 45909 http://brlcad.svn.sourceforge.net/brlcad/?rev=45909&view=rev Author: erikgreenwald Date: 2011-08-10 20:27:26 +0000 (Wed, 10 Aug 2011) Log Message: ----------- rt_revolve_internals sk is now skt. Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2011-08-10 20:20:33 UTC (rev 45908) +++ brlcad/trunk/src/libged/typein.c 2011-08-10 20:27:26 UTC (rev 45909) @@ -2264,17 +2264,17 @@ if ((dp=db_lookup(gedp->ged_wdbp->dbip, bu_vls_addr(&rip->sketch_name), LOOKUP_NOISY)) == RT_DIR_NULL) { bu_vls_printf(gedp->ged_result_str, "Cannot find sketch (%s) for revolve (%s)\n", bu_vls_addr(&rip->sketch_name), cmd_argvs[1]); - rip->sk = (struct rt_sketch_internal *)NULL; + rip->skt = (struct rt_sketch_internal *)NULL; return GED_ERROR; } if (rt_db_get_internal(&tmp_ip, dp, gedp->ged_wdbp->dbip, bn_mat_identity, &rt_uniresource) != ID_SKETCH) { bu_vls_printf(gedp->ged_result_str, "Cannot import sketch (%s) for revolve (%s)\n", bu_vls_addr(&rip->sketch_name), cmd_argvs[1]); - rip->sk = (struct rt_sketch_internal *)NULL; + rip->skt = (struct rt_sketch_internal *)NULL; return GED_ERROR; } else - rip->sk = (struct rt_sketch_internal *)tmp_ip.idb_ptr; + rip->skt = (struct rt_sketch_internal *)tmp_ip.idb_ptr; return GED_OK; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2012-10-23 21:40:15
|
Revision: 53288 http://brlcad.svn.sourceforge.net/brlcad/?rev=53288&view=rev Author: carlmoore Date: 2012-10-23 21:40:09 +0000 (Tue, 23 Oct 2012) Log Message: ----------- fix spllings Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2012-10-23 21:38:42 UTC (rev 53287) +++ brlcad/trunk/src/libged/typein.c 2012-10-23 21:40:09 UTC (rev 53288) @@ -2490,8 +2490,8 @@ * point-cloud type. */ - /* call function(s) to validate the units string and return the converion factor to - * milimeters. + /* call function(s) to validate the units string and return the conversion factor to + * millimeters. */ /* call function(s) to read point cloud data and save into database. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <eri...@us...> - 2013-07-30 15:06:00
|
Revision: 56331 http://sourceforge.net/p/brlcad/code/56331 Author: erikgreenwald Date: 2013-07-30 15:05:58 +0000 (Tue, 30 Jul 2013) Log Message: ----------- rt_hrt_internal should be stashed in intern->idb_ptr, not intern->idb_type. Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2013-07-30 15:05:32 UTC (rev 56330) +++ brlcad/trunk/src/libged/typein.c 2013-07-30 15:05:58 UTC (rev 56331) @@ -2804,7 +2804,7 @@ intern->idb_type = ID_HRT; intern->idb_meth = &rt_functab[ID_HRT]; - intern->idb_type = (int)bu_malloc(sizeof(struct rt_hrt_internal), "rt_hrt_internal"); + intern->idb_ptr = bu_malloc(sizeof(struct rt_hrt_internal), "rt_hrt_internal"); hip = (struct rt_hrt_internal *)intern->idb_ptr; hip->hrt_magic = RT_HRT_INTERNAL_MAGIC; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2014-06-25 17:01:12
|
Revision: 61397 http://sourceforge.net/p/brlcad/code/61397 Author: brlcad Date: 2014-06-25 17:01:05 +0000 (Wed, 25 Jun 2014) Log Message: ----------- rework dsp initialization to clearly initialize all struct fields (for v5 and v4) instead of relying on zero-init from BU_ALLOC. Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2014-06-25 16:55:50 UTC (rev 61396) +++ brlcad/trunk/src/libged/typein.c 2014-06-25 17:01:05 UTC (rev 61397) @@ -761,6 +761,7 @@ intern->idb_type = ID_DSP; intern->idb_meth = &OBJ[ID_DSP]; intern->idb_ptr = (void *)dsp; + dsp->magic = RT_DSP_INTERNAL_MAGIC; bu_vls_init(&dsp->dsp_name); @@ -769,15 +770,21 @@ dsp->dsp_xcnt = atoi(cmd_argvs[4]); dsp->dsp_ycnt = atoi(cmd_argvs[5]); dsp->dsp_smooth = atoi(cmd_argvs[6]); + dsp->dsp_cuttype = DSP_CUT_DIR_ULlr; + MAT_IDN(dsp->dsp_stom); - dsp->dsp_stom[0] = dsp->dsp_stom[5] = - atof(cmd_argvs[7]) * gedp->ged_wdbp->dbip->dbi_local2base; - + dsp->dsp_stom[0] = dsp->dsp_stom[5] = atof(cmd_argvs[7]) * gedp->ged_wdbp->dbip->dbi_local2base; dsp->dsp_stom[10] = atof(cmd_argvs[8]) * gedp->ged_wdbp->dbip->dbi_local2base; bn_mat_inv(dsp->dsp_mtos, dsp->dsp_stom); + dsp->dsp_buf = NULL; + dsp->dsp_mp = NULL; + dsp->dsp_bip = NULL; + + dsp->dsp_datasrc = RT_DSP_SRC_FILE; + return GED_OK; } @@ -797,21 +804,16 @@ intern->idb_type = ID_DSP; intern->idb_meth = &OBJ[ID_DSP]; intern->idb_ptr = (void *)dsp; + dsp->magic = RT_DSP_INTERNAL_MAGIC; - if (*cmd_argvs[3] == 'f' || *cmd_argvs[3] == 'F') - dsp->dsp_datasrc = RT_DSP_SRC_FILE; - else if (*cmd_argvs[3] == 'O' || *cmd_argvs[3] == 'o') - dsp->dsp_datasrc = RT_DSP_SRC_OBJ; - else - return GED_ERROR; - bu_vls_init(&dsp->dsp_name); bu_vls_strcpy(&dsp->dsp_name, cmd_argvs[4]); dsp->dsp_xcnt = atoi(cmd_argvs[5]); dsp->dsp_ycnt = atoi(cmd_argvs[6]); dsp->dsp_smooth = atoi(cmd_argvs[7]); + switch (*cmd_argvs[8]) { case 'a': /* adaptive */ case 'A': @@ -830,14 +832,22 @@ } MAT_IDN(dsp->dsp_stom); - - dsp->dsp_stom[0] = dsp->dsp_stom[5] = - atof(cmd_argvs[9]) * gedp->ged_wdbp->dbip->dbi_local2base; - + dsp->dsp_stom[0] = dsp->dsp_stom[5] = atof(cmd_argvs[9]) * gedp->ged_wdbp->dbip->dbi_local2base; dsp->dsp_stom[10] = atof(cmd_argvs[10]) * gedp->ged_wdbp->dbip->dbi_local2base; bn_mat_inv(dsp->dsp_mtos, dsp->dsp_stom); + dsp->dsp_buf = NULL; + dsp->dsp_mp = NULL; + dsp->dsp_bip = NULL; + + if (*cmd_argvs[3] == 'f' || *cmd_argvs[3] == 'F') + dsp->dsp_datasrc = RT_DSP_SRC_FILE; + else if (*cmd_argvs[3] == 'O' || *cmd_argvs[3] == 'o') + dsp->dsp_datasrc = RT_DSP_SRC_OBJ; + else + return GED_ERROR; + return GED_OK; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2014-11-20 04:40:02
|
Revision: 63513 http://sourceforge.net/p/brlcad/code/63513 Author: brlcad Date: 2014-11-20 04:39:58 +0000 (Thu, 20 Nov 2014) Log Message: ----------- apply sf patch 276 (ARS Message Error) from Raj Reddy, verfied by Harmanpreet. this corrects a minor wording mistake in an ARS error message during typein. Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2014-11-20 01:56:48 UTC (rev 63512) +++ brlcad/trunk/src/libged/typein.c 2014-11-20 04:39:58 UTC (rev 63513) @@ -1191,7 +1191,7 @@ if (vals_present > 1) { num_curves = atoi(argv[4]); if (num_curves < 3) { - bu_vls_printf(gedp->ged_result_str, "points per waterline must be >= 3\n"); + bu_vls_printf(gedp->ged_result_str, "number of waterlines must be >= 3\n"); intern->idb_meth = &OBJ[ID_ARS]; return GED_ERROR; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2015-07-13 23:30:29
|
Revision: 65614 http://sourceforge.net/p/brlcad/code/65614 Author: brlcad Date: 2015-07-13 23:30:26 +0000 (Mon, 13 Jul 2015) Log Message: ----------- index var names shadows on some platforms Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2015-07-13 23:27:41 UTC (rev 65613) +++ brlcad/trunk/src/libged/typein.c 2015-07-13 23:30:26 UTC (rev 65614) @@ -2945,7 +2945,7 @@ size_t num_lines = 0; size_t num_planes = 0; size_t count; - size_t index; + size_t idx; #define ARGS_START_AT 3 #define ARGS_PER_POINT 3 @@ -2966,61 +2966,61 @@ */ #endif - for (index = ARGS_START_AT; (size_t)argc > index; index = ARGS_START_AT + num_points*(ARGS_PER_POINT+1) + num_lines*(ARGS_PER_LINE+1) + num_planes*(ARGS_PER_PLANE+1)) { - index++; - if (BU_STR_EQUIV(argv[index-1], "point")) { - if ((size_t)argc-index < ARGS_PER_POINT) { - /* index into the next query prompt (== 1) for datum points */ - bu_vls_printf(gedp->ged_result_str, "%s", prompt[1+argc-index]); + for (idx = ARGS_START_AT; (size_t)argc > idx; idx = ARGS_START_AT + num_points*(ARGS_PER_POINT+1) + num_lines*(ARGS_PER_LINE+1) + num_planes*(ARGS_PER_PLANE+1)) { + idx++; + if (BU_STR_EQUIV(argv[idx-1], "point")) { + if ((size_t)argc-idx < ARGS_PER_POINT) { + /* idx into the next query prompt (== 1) for datum points */ + bu_vls_printf(gedp->ged_result_str, "%s", prompt[1+argc-idx]); return GED_MORE; } for (count = 0; count > ARGS_PER_POINT; count++) { double val; char *endptr = NULL; - val = strtod(argv[index+count], &endptr); - if (ZERO(val) && endptr == argv[index+count]) { - bu_vls_printf(gedp->ged_result_str, "ERROR: Unknown datum point value (%s) encountered, expecting a number\n", argv[index+count]); + val = strtod(argv[idx+count], &endptr); + if (ZERO(val) && endptr == argv[idx+count]) { + bu_vls_printf(gedp->ged_result_str, "ERROR: Unknown datum point value (%s) encountered, expecting a number\n", argv[idx+count]); return GED_ERROR; } } num_points++; - } else if (BU_STR_EQUIV(argv[index-1], "line")) { - if ((size_t)argc-index < ARGS_PER_LINE) { - /* index into the next query prompt (== 4) for datum lines */ - bu_vls_printf(gedp->ged_result_str, "%s", prompt[4+argc-index]); + } else if (BU_STR_EQUIV(argv[idx-1], "line")) { + if ((size_t)argc-idx < ARGS_PER_LINE) { + /* idx into the next query prompt (== 4) for datum lines */ + bu_vls_printf(gedp->ged_result_str, "%s", prompt[4+argc-idx]); return GED_MORE; } for (count = 0; count > ARGS_PER_LINE; count++) { double val; char *endptr = NULL; - val = strtod(argv[index+count], &endptr); - if (ZERO(val) && endptr == argv[index+count]) { - bu_vls_printf(gedp->ged_result_str, "ERROR: Unknown datum line value (%s) encountered, expecting a number\n", argv[index+count]); + val = strtod(argv[idx+count], &endptr); + if (ZERO(val) && endptr == argv[idx+count]) { + bu_vls_printf(gedp->ged_result_str, "ERROR: Unknown datum line value (%s) encountered, expecting a number\n", argv[idx+count]); return GED_ERROR; } } num_lines++; - } else if (BU_STR_EQUIV(argv[index-1], "plane")) { - if ((size_t)argc-index < ARGS_PER_PLANE) { - /* index into the next query prompt (== 10) for datum planes */ - bu_vls_printf(gedp->ged_result_str, "%s", prompt[10+argc-index]); + } else if (BU_STR_EQUIV(argv[idx-1], "plane")) { + if ((size_t)argc-idx < ARGS_PER_PLANE) { + /* idx into the next query prompt (== 10) for datum planes */ + bu_vls_printf(gedp->ged_result_str, "%s", prompt[10+argc-idx]); return GED_MORE; } for (count = 0; count > ARGS_PER_PLANE; count++) { double val; char *endptr = NULL; - val = strtod(argv[index+count], &endptr); - if (ZERO(val) && endptr == argv[index+count]) { - bu_vls_printf(gedp->ged_result_str, "ERROR: Unknown datum plane value (%s) encountered, expecting a number\n", argv[index+count]); + val = strtod(argv[idx+count], &endptr); + if (ZERO(val) && endptr == argv[idx+count]) { + bu_vls_printf(gedp->ged_result_str, "ERROR: Unknown datum plane value (%s) encountered, expecting a number\n", argv[idx+count]); return GED_ERROR; } } num_planes++; } else { - bu_vls_printf(gedp->ged_result_str, "ERROR: Unknown datum type (%s) encountered, expecting 'point', 'line', or 'plane'\n", argv[index-1]); + bu_vls_printf(gedp->ged_result_str, "ERROR: Unknown datum type (%s) encountered, expecting 'point', 'line', or 'plane'\n", argv[idx-1]); return GED_ERROR; } } @@ -3029,40 +3029,40 @@ datums = (struct rt_datum_internal *)bu_calloc(num_points + num_lines + num_planes, sizeof(struct rt_datum_internal), "alloc datums"); - for (count = 0, index = ARGS_START_AT, prev = NULL; count < num_points + num_lines + num_planes; count++) { + for (count = 0, idx = ARGS_START_AT, prev = NULL; count < num_points + num_lines + num_planes; count++) { /* more than necessary but sufficiently robust to changes */ double vals[ARGS_PER_POINT + ARGS_PER_LINE + ARGS_PER_POINT] = {0.0}; - if (BU_STR_EQUIV(argv[index], "point")) { - vals[X] = strtod(argv[index+1], NULL); - vals[Y] = strtod(argv[index+2], NULL); - vals[Z] = strtod(argv[index+3], NULL); + if (BU_STR_EQUIV(argv[idx], "point")) { + vals[X] = strtod(argv[idx+1], NULL); + vals[Y] = strtod(argv[idx+2], NULL); + vals[Z] = strtod(argv[idx+3], NULL); VMOVE(datums[count].pnt, vals); VSETALL(datums[count].dir, 0.0); datums[count].w = 0.0; - index += ARGS_PER_POINT; - } else if (BU_STR_EQUIV(argv[index], "line")) { - vals[X] = strtod(argv[index+1], NULL); - vals[Y] = strtod(argv[index+2], NULL); - vals[Z] = strtod(argv[index+3], NULL); - (vals+3)[X] = strtod(argv[index+4], NULL); - (vals+3)[Y] = strtod(argv[index+5], NULL); - (vals+3)[Z] = strtod(argv[index+6], NULL); + idx += ARGS_PER_POINT; + } else if (BU_STR_EQUIV(argv[idx], "line")) { + vals[X] = strtod(argv[idx+1], NULL); + vals[Y] = strtod(argv[idx+2], NULL); + vals[Z] = strtod(argv[idx+3], NULL); + (vals+3)[X] = strtod(argv[idx+4], NULL); + (vals+3)[Y] = strtod(argv[idx+5], NULL); + (vals+3)[Z] = strtod(argv[idx+6], NULL); VMOVE(datums[count].pnt, vals); VMOVE(datums[count].dir, vals+3); datums[count].w = 0.0; - index += ARGS_PER_LINE; - } else if (BU_STR_EQUIV(argv[index], "plane")) { - vals[X] = strtod(argv[index+1], NULL); - vals[Y] = strtod(argv[index+2], NULL); - vals[Z] = strtod(argv[index+3], NULL); - (vals+3)[X] = strtod(argv[index+4], NULL); - (vals+3)[Y] = strtod(argv[index+5], NULL); - (vals+3)[Z] = strtod(argv[index+6], NULL); + idx += ARGS_PER_LINE; + } else if (BU_STR_EQUIV(argv[idx], "plane")) { + vals[X] = strtod(argv[idx+1], NULL); + vals[Y] = strtod(argv[idx+2], NULL); + vals[Z] = strtod(argv[idx+3], NULL); + (vals+3)[X] = strtod(argv[idx+4], NULL); + (vals+3)[Y] = strtod(argv[idx+5], NULL); + (vals+3)[Z] = strtod(argv[idx+6], NULL); VMOVE(datums[count].pnt, vals); VMOVE(datums[count].dir, vals+3); datums[count].w = 1.0; - index += ARGS_PER_PLANE; + idx += ARGS_PER_PLANE; } datums[count].magic = RT_DATUM_INTERNAL_MAGIC; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2015-07-29 23:45:28
|
Revision: 65763 http://sourceforge.net/p/brlcad/code/65763 Author: brlcad Date: 2015-07-29 23:45:25 +0000 (Wed, 29 Jul 2015) Log Message: ----------- fix a couple bugs including not validating that we got proper numeric args where expected and needing to allocate datums individually instead of as an array (as they must be released individually). Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2015-07-29 22:03:11 UTC (rev 65762) +++ brlcad/trunk/src/libged/typein.c 2015-07-29 23:45:25 UTC (rev 65763) @@ -2975,7 +2975,7 @@ return GED_MORE; } - for (count = 0; count > ARGS_PER_POINT; count++) { + for (count = 0; count < ARGS_PER_POINT; count++) { double val; char *endptr = NULL; val = strtod(argv[idx+count], &endptr); @@ -2992,7 +2992,7 @@ return GED_MORE; } - for (count = 0; count > ARGS_PER_LINE; count++) { + for (count = 0; count < ARGS_PER_LINE; count++) { double val; char *endptr = NULL; val = strtod(argv[idx+count], &endptr); @@ -3009,7 +3009,7 @@ return GED_MORE; } - for (count = 0; count > ARGS_PER_PLANE; count++) { + for (count = 0; count < ARGS_PER_PLANE; count++) { double val; char *endptr = NULL; val = strtod(argv[idx+count], &endptr); @@ -3025,21 +3025,24 @@ } } - /* second pass, allocate and create with confidence */ + /* second pass, allocate and process with confidence */ - datums = (struct rt_datum_internal *)bu_calloc(num_points + num_lines + num_planes, sizeof(struct rt_datum_internal), "alloc datums"); - + datums = NULL; /* must allocate individually as we free individually */ for (count = 0, idx = ARGS_START_AT, prev = NULL; count < num_points + num_lines + num_planes; count++) { /* more than necessary but sufficiently robust to changes */ - double vals[ARGS_PER_POINT + ARGS_PER_LINE + ARGS_PER_POINT] = {0.0}; + double vals[ARGS_PER_POINT + ARGS_PER_LINE + ARGS_PER_PLANE] = {0.0}; + struct rt_datum_internal *datum = (struct rt_datum_internal *)bu_calloc(1, sizeof(struct rt_datum_internal), "alloc datum"); + if (!datums) + datums = datum; /* and so it begins */ + if (BU_STR_EQUIV(argv[idx], "point")) { vals[X] = strtod(argv[idx+1], NULL); vals[Y] = strtod(argv[idx+2], NULL); vals[Z] = strtod(argv[idx+3], NULL); - VMOVE(datums[count].pnt, vals); - VSETALL(datums[count].dir, 0.0); - datums[count].w = 0.0; + VMOVE(datum->pnt, vals); + VSETALL(datum->dir, 0.0); + datum->w = 0.0; idx += ARGS_PER_POINT; } else if (BU_STR_EQUIV(argv[idx], "line")) { vals[X] = strtod(argv[idx+1], NULL); @@ -3048,9 +3051,9 @@ (vals+3)[X] = strtod(argv[idx+4], NULL); (vals+3)[Y] = strtod(argv[idx+5], NULL); (vals+3)[Z] = strtod(argv[idx+6], NULL); - VMOVE(datums[count].pnt, vals); - VMOVE(datums[count].dir, vals+3); - datums[count].w = 0.0; + VMOVE(datum->pnt, vals); + VMOVE(datum->dir, vals+3); + datum->w = 0.0; idx += ARGS_PER_LINE; } else if (BU_STR_EQUIV(argv[idx], "plane")) { vals[X] = strtod(argv[idx+1], NULL); @@ -3059,20 +3062,21 @@ (vals+3)[X] = strtod(argv[idx+4], NULL); (vals+3)[Y] = strtod(argv[idx+5], NULL); (vals+3)[Z] = strtod(argv[idx+6], NULL); - VMOVE(datums[count].pnt, vals); - VMOVE(datums[count].dir, vals+3); - datums[count].w = 1.0; + VMOVE(datum->pnt, vals); + VMOVE(datum->dir, vals+3); + datum->w = 1.0; idx += ARGS_PER_PLANE; } + idx++; /* next datum label */ - datums[count].magic = RT_DATUM_INTERNAL_MAGIC; + datum->magic = RT_DATUM_INTERNAL_MAGIC; if (prev) { - prev->next = &datums[count]; + prev->next = datum; } - prev = &datums[count]; + prev = datum; } - intern->idb_ptr = &datums[0]; + intern->idb_ptr = datums; intern->idb_meth = &OBJ[ID_DATUM]; intern->idb_type = ID_DATUM; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sta...@us...> - 2015-11-23 20:15:55
|
Revision: 66663 http://sourceforge.net/p/brlcad/code/66663 Author: starseeker Date: 2015-11-23 20:15:53 +0000 (Mon, 23 Nov 2015) Log Message: ----------- Respect dbi_local2base for units when inputing datums Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2015-11-23 20:15:02 UTC (rev 66662) +++ brlcad/trunk/src/libged/typein.c 2015-11-23 20:15:53 UTC (rev 66663) @@ -3037,31 +3037,31 @@ datums = datum; /* and so it begins */ if (BU_STR_EQUIV(argv[idx], "point")) { - vals[X] = strtod(argv[idx+1], NULL); - vals[Y] = strtod(argv[idx+2], NULL); - vals[Z] = strtod(argv[idx+3], NULL); + vals[X] = strtod(argv[idx+1], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; + vals[Y] = strtod(argv[idx+2], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; + vals[Z] = strtod(argv[idx+3], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; VMOVE(datum->pnt, vals); VSETALL(datum->dir, 0.0); datum->w = 0.0; idx += ARGS_PER_POINT; } else if (BU_STR_EQUIV(argv[idx], "line")) { - vals[X] = strtod(argv[idx+1], NULL); - vals[Y] = strtod(argv[idx+2], NULL); - vals[Z] = strtod(argv[idx+3], NULL); - (vals+3)[X] = strtod(argv[idx+4], NULL); - (vals+3)[Y] = strtod(argv[idx+5], NULL); - (vals+3)[Z] = strtod(argv[idx+6], NULL); + vals[X] = strtod(argv[idx+1], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; + vals[Y] = strtod(argv[idx+2], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; + vals[Z] = strtod(argv[idx+3], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; + (vals+3)[X] = strtod(argv[idx+4], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; + (vals+3)[Y] = strtod(argv[idx+5], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; + (vals+3)[Z] = strtod(argv[idx+6], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; VMOVE(datum->pnt, vals); VMOVE(datum->dir, vals+3); datum->w = 0.0; idx += ARGS_PER_LINE; } else if (BU_STR_EQUIV(argv[idx], "plane")) { - vals[X] = strtod(argv[idx+1], NULL); - vals[Y] = strtod(argv[idx+2], NULL); - vals[Z] = strtod(argv[idx+3], NULL); - (vals+3)[X] = strtod(argv[idx+4], NULL); - (vals+3)[Y] = strtod(argv[idx+5], NULL); - (vals+3)[Z] = strtod(argv[idx+6], NULL); + vals[X] = strtod(argv[idx+1], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; + vals[Y] = strtod(argv[idx+2], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; + vals[Z] = strtod(argv[idx+3], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; + (vals+3)[X] = strtod(argv[idx+4], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; + (vals+3)[Y] = strtod(argv[idx+5], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; + (vals+3)[Z] = strtod(argv[idx+6], NULL) * gedp->ged_wdbp->dbip->dbi_local2base; VMOVE(datum->pnt, vals); VMOVE(datum->dir, vals+3); datum->w = 1.0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2016-09-02 05:34:14
|
Revision: 68790 http://sourceforge.net/p/brlcad/code/68790 Author: brlcad Date: 2016-09-02 05:34:11 +0000 (Fri, 02 Sep 2016) Log Message: ----------- last straggler directly testing for yes/y converted to bu_str_true() Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2016-09-02 04:58:08 UTC (rev 68789) +++ brlcad/trunk/src/libged/typein.c 2016-09-02 05:34:11 UTC (rev 68790) @@ -2525,7 +2525,7 @@ } /* if points are in a file */ - if ((BU_STR_EQUAL(argv[3], "yes")) || (BU_STR_EQUAL(argv[3], "y"))) { + if (bu_str_true(argv[3])) { /* prompt for point file path and name */ if (argc < 5) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2017-01-11 06:16:36
|
Revision: 69318 http://sourceforge.net/p/brlcad/code/69318 Author: brlcad Date: 2017-01-11 06:16:34 +0000 (Wed, 11 Jan 2017) Log Message: ----------- nix extra space Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2017-01-11 06:16:03 UTC (rev 69317) +++ brlcad/trunk/src/libged/typein.c 2017-01-11 06:16:34 UTC (rev 69318) @@ -718,7 +718,7 @@ bu_log("Unrecognized minor type (%c)\n", *cmd_argvs[3]); return GED_ERROR; } - if (rt_mk_binunif (gedp->ged_wdbp, name, cmd_argvs[4], minor_type, atol(cmd_argvs[5]))) { + if (rt_mk_binunif(gedp->ged_wdbp, name, cmd_argvs[4], minor_type, atol(cmd_argvs[5]))) { bu_vls_printf(gedp->ged_result_str, "Failed to create binary object %s from file %s\n", name, cmd_argvs[4]); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_r...@us...> - 2017-08-30 10:37:43
|
Revision: 70164 http://sourceforge.net/p/brlcad/code/70164 Author: d_rossberg Date: 2017-08-30 10:37:40 +0000 (Wed, 30 Aug 2017) Log Message: ----------- the reference point in the annotation 2D "paper system" is (0, 0) Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2017-08-30 09:20:11 UTC (rev 70163) +++ brlcad/trunk/src/libged/typein.c 2017-08-30 10:37:40 UTC (rev 70164) @@ -3145,9 +3145,6 @@ lsg->start = 0; lsg->end = 1; - anip->verts[1][0] = (anip->V[0]); - anip->verts[1][1] = (anip->V[1]); - for (i = 0; i<ELEMENTS_PER_POINT2D; i++) anip->verts[0][i] = atof(cmd_argvs[7+i]) * gedp->ged_wdbp->dbip->dbi_local2base; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2018-07-24 21:29:43
|
Revision: 71249 http://sourceforge.net/p/brlcad/code/71249 Author: brlcad Date: 2018-07-24 21:29:40 +0000 (Tue, 24 Jul 2018) Log Message: ----------- checkpoint, not done or correct for pnts Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2018-07-24 21:29:00 UTC (rev 71248) +++ brlcad/trunk/src/libged/typein.c 2018-07-24 21:29:40 UTC (rev 71249) @@ -550,25 +550,27 @@ static char *p_pnts[] = { - "Are points in a file (yes/no)? ", - "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)", - "Enter point file path and name: ", - "Enter file data format (px, py, pz, cr, cg, cb, s, nx, ny, nz): ", - "Enter file data units ([mm|cm|m|in|ft]): " + /*00*/ "Are points in a file (yes/no)? ", + /*01*/ "Enter number of points (-1 for auto): ", + /*02*/ "Are the points orientated (yes/no)? ", + /*03*/ "Do the points have color values (yes/no)? ", + /*04*/ "Do the points have transparency values (yes/no)? ", + /*05*/ "Do the points differ in size (yes/no)? ", + /*06*/ "Enter default point size (>= 0.0): ", + /*07*/ "Enter X, Y, Z position", + /*08*/ "Enter Y position component", + /*09*/ "Enter Z position component", + /*10*/ "Enter X, Y, Z orientation vector", + /*11*/ "Enter Y orientation vector component", + /*12*/ "Enter Z orientation vector component", + /*13*/ "Enter R, G, B color values (0 to 255)", + /*14*/ "Enter G component color value", + /*15*/ "Enter B component color value", + /*16*/ "Enter RGB alpha transparency (1.0==opaque)", + /*17*/ "Enter point size (>= 0.0, -1 for default)", + /*18*/ "Enter point file path and name: ", + /*19*/ "Enter file data format (px, py, pz, cr, cg, cb, s, nx, ny, nz): ", + /*20*/ "Enter file data units ([mm|cm|m|in|ft]): " }; @@ -2551,27 +2553,33 @@ /* if points are in a file */ if (bu_str_true(argv[3])) { + /* file? path fmt? units? size? + * in obj pnts yes mydata cr in 123 + * argv [0] [1] [2] [3] [4] [5] [6] [7] + * argc 1 2 3 4 5 6 7 8 + */ + /* prompt for point file path and name */ if (argc < 5) { - bu_vls_printf(gedp->ged_result_str, "%s", prompt[16]); + bu_vls_printf(gedp->ged_result_str, "%s", prompt[18]); return GED_MORE; } /* prompt for file data format */ if (argc < 6) { - bu_vls_printf(gedp->ged_result_str, "%s", prompt[17]); + bu_vls_printf(gedp->ged_result_str, "%s", prompt[19]); return GED_MORE; } /* prompt for file data units */ if (argc < 7) { - bu_vls_printf(gedp->ged_result_str, "%s", prompt[18]); + bu_vls_printf(gedp->ged_result_str, "%s", prompt[20]); return GED_MORE; } /* prompt for default point size */ if (argc < 8) { - bu_vls_printf(gedp->ged_result_str, "%s", prompt[5]); + bu_vls_printf(gedp->ged_result_str, "%s", prompt[6]); return GED_MORE; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2018-07-26 05:13:21
|
Revision: 71267 http://sourceforge.net/p/brlcad/code/71267 Author: brlcad Date: 2018-07-26 05:13:15 +0000 (Thu, 26 Jul 2018) Log Message: ----------- fix a couple bugs in the new script command. first, only have 1 prompt, so nvals should be 1. second, the call to fn_in() is passing a struct ged * as the first argument, which is the source of harsh stack corruption then when you try to do anything in script_in with cmd_argvs. Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2018-07-26 03:08:33 UTC (rev 71266) +++ brlcad/trunk/src/libged/typein.c 2018-07-26 05:13:15 UTC (rev 71267) @@ -646,7 +646,7 @@ * add support */ static char *p_script[] = { - "Enter the script type: " + "Enter the script type: ", }; /** @@ -3179,10 +3179,17 @@ static int -script_in(const char **cmd_argvs, struct rt_db_internal *intern) +script_in(struct ged *UNUSED(gedp), const char **cmd_argvs, struct rt_db_internal *intern, char *UNUSED(name)) { struct rt_script_internal *script_ip; + int i=0; + /* !!! temporary debugging, print out our args */ + while (cmd_argvs && cmd_argvs[i] != NULL) { + bu_log("cmd_argvs[%d] = [%s]\n", i, cmd_argvs[i]); + i++; + } + intern->idb_type = ID_SCRIPT; intern->idb_meth = &OBJ[ID_SCRIPT]; BU_ALLOC(intern->idb_ptr, struct rt_script_internal); @@ -3190,7 +3197,11 @@ script_ip->magic = RT_SCRIPT_INTERNAL_MAGIC; bu_vls_init(&script_ip->s_type); - bu_vls_strcpy(&script_ip->s_type, cmd_argvs[6]); + bu_vls_strcpy(&script_ip->s_type, cmd_argvs[0]); + + /* !!! */ + bu_log("done creating script object, next it gets exported\n"); + return GED_OK; } @@ -3465,9 +3476,9 @@ menu = p_annot; fn_in = annot_in; } else if (BU_STR_EQUAL(argv[2], "script")) { - nvals = 1 + 1; - menu = p_script; - fn_in = script_in; + nvals = 1; + menu = p_script; + fn_in = script_in; } else if (BU_STR_EQUAL(argv[2], "pnts")) { switch (pnts_in(gedp, argc, argv, &internal, p_pnts)) { case GED_ERROR: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sta...@us...> - 2018-08-01 13:55:49
|
Revision: 71336 http://sourceforge.net/p/brlcad/code/71336 Author: starseeker Date: 2018-08-01 13:55:46 +0000 (Wed, 01 Aug 2018) Log Message: ----------- collapse down the typein code for pnts with the utility functions Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2018-08-01 13:49:16 UTC (rev 71335) +++ brlcad/trunk/src/libged/typein.c 2018-08-01 13:55:46 UTC (rev 71336) @@ -34,6 +34,7 @@ #include "wdb.h" #include "./ged_private.h" +#include "./pnts_util.h" static char *p_half[] = { @@ -2528,7 +2529,6 @@ unsigned long numPoints; long readPoints; struct rt_pnts_internal *pnts; - void *headPoint = NULL; rt_pnt_type type; @@ -2720,140 +2720,69 @@ pnts->scale = defaultSize; pnts->type = type; pnts->count = numPoints; - pnts->point = NULL; + pnts->point = _ged_pnts_new_pnt(pnts->type); + _ged_pnts_init_head_pnt(pnts); - /* empty list head */ - switch (type) { - case RT_PNT_TYPE_PNT: - BU_ALLOC(headPoint, struct pnt); - BU_LIST_INIT(&(((struct pnt *)headPoint)->l)); - break; - case RT_PNT_TYPE_COL: - BU_ALLOC(headPoint, struct pnt_color); - BU_LIST_INIT(&(((struct pnt_color *)headPoint)->l)); - break; - case RT_PNT_TYPE_SCA: - BU_ALLOC(headPoint, struct pnt_scale); - BU_LIST_INIT(&(((struct pnt_scale *)headPoint)->l)); - break; - case RT_PNT_TYPE_NRM: - BU_ALLOC(headPoint, struct pnt_normal); - BU_LIST_INIT(&(((struct pnt_normal *)headPoint)->l)); - break; - case RT_PNT_TYPE_COL_SCA: - BU_ALLOC(headPoint, struct pnt_color_scale); - BU_LIST_INIT(&(((struct pnt_color_scale *)headPoint)->l)); - break; - case RT_PNT_TYPE_COL_NRM: - BU_ALLOC(headPoint, struct pnt_color_normal); - BU_LIST_INIT(&(((struct pnt_color_normal *)headPoint)->l)); - break; - case RT_PNT_TYPE_SCA_NRM: - BU_ALLOC(headPoint, struct pnt_scale_normal); - BU_LIST_INIT(&(((struct pnt_scale_normal *)headPoint)->l)); - break; - case RT_PNT_TYPE_COL_SCA_NRM: - BU_ALLOC(headPoint, struct pnt_color_scale_normal); - BU_LIST_INIT(&(((struct pnt_color_scale_normal *)headPoint)->l)); - break; - default: - break; - } - pnts->point = headPoint; - /* store points in list */ for (i = 0; i < numPoints * valuesPerPoint; i += valuesPerPoint) { - void *point; + void *point = _ged_pnts_new_pnt(pnts->type); + /* We always have X, Y and Z as the first 3 */ + _ged_pnt_v_set(point, pnts->type, 'x', strtod(argv[i + 0], NULL) * local2base); + _ged_pnt_v_set(point, pnts->type, 'y', strtod(argv[i + 1], NULL) * local2base); + _ged_pnt_v_set(point, pnts->type, 'z', strtod(argv[i + 2], NULL) * local2base); + /* bu_log("%d: [%s, %s, %s]\n", ((i-5)/3)+1, argv[i], argv[i+1], argv[i+2]); */ switch (type) { case RT_PNT_TYPE_PNT: - BU_ALLOC(point, struct 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_ALLOC(point, struct 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_rgb[0 /* RED */] = strtod(argv[i + 3], NULL); - ((struct pnt_color *)point)->c.buc_rgb[1 /* GRN */] = strtod(argv[i + 4], NULL); - ((struct pnt_color *)point)->c.buc_rgb[2 /* BLU */] = strtod(argv[i + 5], NULL); - BU_LIST_PUSH(&(((struct pnt_color *)headPoint)->l), &((struct pnt_color *)point)->l); + _ged_pnt_c_set(point, pnts->type, 'r', strtod(argv[i + 3], NULL)); + _ged_pnt_c_set(point, pnts->type, 'g', strtod(argv[i + 4], NULL)); + _ged_pnt_c_set(point, pnts->type, 'b', strtod(argv[i + 5], NULL)); break; case RT_PNT_TYPE_SCA: - BU_ALLOC(point, struct 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); + _ged_pnt_s_set(point, pnts->type, 's', strtod(argv[i + 3], NULL) * local2base); break; case RT_PNT_TYPE_NRM: - BU_ALLOC(point, struct 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); + _ged_pnt_n_set(point, pnts->type, 'i', strtod(argv[i + 3], NULL) * local2base); + _ged_pnt_n_set(point, pnts->type, 'j', strtod(argv[i + 4], NULL) * local2base); + _ged_pnt_n_set(point, pnts->type, 'k', strtod(argv[i + 5], NULL) * local2base); break; case RT_PNT_TYPE_COL_SCA: - BU_ALLOC(point, struct 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_rgb[0 /* RED */] = strtod(argv[i + 3], NULL); - ((struct pnt_color_scale *)point)->c.buc_rgb[1 /* GRN */] = strtod(argv[i + 4], NULL); - ((struct pnt_color_scale *)point)->c.buc_rgb[2 /* 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); + _ged_pnt_c_set(point, pnts->type, 'r', strtod(argv[i + 3], NULL)); + _ged_pnt_c_set(point, pnts->type, 'g', strtod(argv[i + 4], NULL)); + _ged_pnt_c_set(point, pnts->type, 'b', strtod(argv[i + 5], NULL)); + _ged_pnt_s_set(point, pnts->type, 's', strtod(argv[i + 6], NULL) * local2base); break; case RT_PNT_TYPE_COL_NRM: - BU_ALLOC(point, struct 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_rgb[0 /* RED */] = strtod(argv[i + 6], NULL); - ((struct pnt_color_normal *)point)->c.buc_rgb[1 /* GRN */] = strtod(argv[i + 7], NULL); - ((struct pnt_color_normal *)point)->c.buc_rgb[2 /* BLU */] = strtod(argv[i + 8], NULL); - BU_LIST_PUSH(&(((struct pnt_color_normal *)headPoint)->l), &((struct pnt_color_normal *)point)->l); + _ged_pnt_n_set(point, pnts->type, 'i', strtod(argv[i + 3], NULL) * local2base); + _ged_pnt_n_set(point, pnts->type, 'j', strtod(argv[i + 4], NULL) * local2base); + _ged_pnt_n_set(point, pnts->type, 'k', strtod(argv[i + 5], NULL) * local2base); + _ged_pnt_c_set(point, pnts->type, 'r', strtod(argv[i + 6], NULL)); + _ged_pnt_c_set(point, pnts->type, 'g', strtod(argv[i + 7], NULL)); + _ged_pnt_c_set(point, pnts->type, 'b', strtod(argv[i + 8], NULL)); break; case RT_PNT_TYPE_SCA_NRM: - BU_ALLOC(point, struct 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); + _ged_pnt_n_set(point, pnts->type, 'i', strtod(argv[i + 3], NULL) * local2base); + _ged_pnt_n_set(point, pnts->type, 'j', strtod(argv[i + 4], NULL) * local2base); + _ged_pnt_n_set(point, pnts->type, 'k', strtod(argv[i + 5], NULL) * local2base); + _ged_pnt_s_set(point, pnts->type, 's', strtod(argv[i + 6], NULL) * local2base); break; case RT_PNT_TYPE_COL_SCA_NRM: - BU_ALLOC(point, struct 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_rgb[0 /* RED */] = strtod(argv[i + 6], NULL); - ((struct pnt_color_scale_normal *)point)->c.buc_rgb[1 /* GRN */] = strtod(argv[i + 7], NULL); - ((struct pnt_color_scale_normal *)point)->c.buc_rgb[2 /* 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); + _ged_pnt_n_set(point, pnts->type, 'i', strtod(argv[i + 3], NULL) * local2base); + _ged_pnt_n_set(point, pnts->type, 'j', strtod(argv[i + 4], NULL) * local2base); + _ged_pnt_n_set(point, pnts->type, 'k', strtod(argv[i + 5], NULL) * local2base); + _ged_pnt_c_set(point, pnts->type, 'r', strtod(argv[i + 6], NULL)); + _ged_pnt_c_set(point, pnts->type, 'g', strtod(argv[i + 7], NULL)); + _ged_pnt_c_set(point, pnts->type, 'b', strtod(argv[i + 8], NULL)); + _ged_pnt_s_set(point, pnts->type, 's', strtod(argv[i + 9], NULL) * local2base); break; default: break; } + + _ged_pnts_add(pnts, point); } return GED_OK; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gab...@us...> - 2019-03-30 11:58:33
|
Revision: 72807 http://sourceforge.net/p/brlcad/code/72807 Author: gabbar1947 Date: 2019-03-30 11:58:30 +0000 (Sat, 30 Mar 2019) Log Message: ----------- major_type initialized in hrt_in() Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2019-03-30 01:40:41 UTC (rev 72806) +++ brlcad/trunk/src/libged/typein.c 2019-03-30 11:58:30 UTC (rev 72807) @@ -2803,6 +2803,7 @@ struct rt_hrt_internal *hip; n = 13; + intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_HRT; intern->idb_meth = &OBJ[ID_HRT]; intern->idb_ptr = bu_malloc(sizeof(struct rt_hrt_internal), "rt_hrt_internal"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gab...@us...> - 2019-04-04 01:51:26
|
Revision: 72853 http://sourceforge.net/p/brlcad/code/72853 Author: gabbar1947 Date: 2019-04-04 01:51:22 +0000 (Thu, 04 Apr 2019) Log Message: ----------- MAJOR_TYPE value initialized in annot_in Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2019-04-03 20:33:13 UTC (rev 72852) +++ brlcad/trunk/src/libged/typein.c 2019-04-04 01:51:22 UTC (rev 72853) @@ -3033,6 +3033,7 @@ struct txt_seg *tsg; struct line_seg *lsg; + intern->idb_major_type = DB5_MAJORTYPE_BRLCAD; intern->idb_type = ID_ANNOT; intern->idb_meth = &OBJ[ID_ANNOT]; BU_ALLOC(intern->idb_ptr, struct rt_annot_internal); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2020-02-05 16:57:50
|
Revision: 74812 http://sourceforge.net/p/brlcad/code/74812 Author: brlcad Date: 2020-02-05 16:57:48 +0000 (Wed, 05 Feb 2020) Log Message: ----------- patch update from jeff corrects copy-paste error. fortunately, the values are identical, but this corrects the symbol name being used Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2020-02-05 16:42:48 UTC (rev 74811) +++ brlcad/trunk/src/libged/typein.c 2020-02-05 16:57:48 UTC (rev 74812) @@ -782,9 +782,9 @@ ebm->bip = NULL; if (*cmd_argvs[3] == 'f' || *cmd_argvs[3] == 'F') - ebm->datasrc = RT_DSP_SRC_FILE; + ebm->datasrc = RT_EBM_SRC_FILE; else if (*cmd_argvs[3] == 'o' || *cmd_argvs[3] == 'O') - ebm->datasrc = RT_DSP_SRC_OBJ; + ebm->datasrc = RT_EBM_SRC_OBJ; else return GED_ERROR; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sta...@us...> - 2020-03-13 13:49:12
|
Revision: 75024 http://sourceforge.net/p/brlcad/code/75024 Author: starseeker Date: 2020-03-13 13:49:09 +0000 (Fri, 13 Mar 2020) Log Message: ----------- experiment with using bu_opt_fastf_t instead of atof for numerical conversion. Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2020-03-13 13:27:56 UTC (rev 75023) +++ brlcad/trunk/src/libged/typein.c 2020-03-13 13:49:09 UTC (rev 75024) @@ -30,6 +30,7 @@ #include <ctype.h> #include <string.h> +#include "bu/opt.h" #include "rt/geom.h" #include "wdb.h" @@ -1465,11 +1466,26 @@ intern->idb_ptr = NULL; + struct bu_vls opt_msg = BU_VLS_INIT_ZERO; for (i = 0; i < ELEMENTS_PER_POINT; i++) { - center[i] = atof(cmd_argvs[3+i]) * gedp->ged_wdbp->dbip->dbi_local2base; + fastf_t optf; + bu_vls_trunc(&opt_msg, 0); + if (bu_opt_fastf_t(&opt_msg, 1, (const char **)&(cmd_argvs[3+i]), (void *)&optf) < 0) { + bu_vls_printf(gedp->ged_result_str, "Value read error: %s\n", bu_vls_cstr(&opt_msg)); + bu_vls_free(&opt_msg); + return GED_ERROR; + } + center[i] = optf * gedp->ged_wdbp->dbip->dbi_local2base; } - r = atof(cmd_argvs[6]) * gedp->ged_wdbp->dbip->dbi_local2base; + if (bu_opt_fastf_t(&opt_msg, 1, (const char **)&(cmd_argvs[6]), (void *)&r) < 0) { + bu_vls_printf(gedp->ged_result_str, "Value read error: %s\n", bu_vls_cstr(&opt_msg)); + bu_vls_free(&opt_msg); + return GED_ERROR; + } + r = r * gedp->ged_wdbp->dbip->dbi_local2base; + bu_vls_free(&opt_msg); + if (r < RT_LEN_TOL) { bu_vls_printf(gedp->ged_result_str, "ERROR, radius must be greater than zero!\n"); return GED_ERROR; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sta...@us...> - 2020-03-13 15:51:43
|
Revision: 75026 http://sourceforge.net/p/brlcad/code/75026 Author: starseeker Date: 2020-03-13 15:51:41 +0000 (Fri, 13 Mar 2020) Log Message: ----------- Did some experiments with typein.c as a C++ file - leaving it as C, but to ahead and add in the const specifiers - this gets it fairly close to building as a C++ file. Modified Paths: -------------- brlcad/trunk/src/libged/typein.c Modified: brlcad/trunk/src/libged/typein.c =================================================================== --- brlcad/trunk/src/libged/typein.c 2020-03-13 15:41:08 UTC (rev 75025) +++ brlcad/trunk/src/libged/typein.c 2020-03-13 15:51:41 UTC (rev 75026) @@ -37,8 +37,7 @@ #include "./ged_private.h" #include "./pnts_util.h" - -static char *p_half[] = { +static const char *p_half[] = { "Enter X, Y, Z of outward pointing normal vector: ", "Enter Y: ", "Enter Z: ", @@ -46,7 +45,7 @@ }; -static char *p_dsp_v4[] = { +static const char *p_dsp_v4[] = { "Enter name of displacement-map file: ", "Enter width of displacement-map (number of values): ", "Enter length of displacement-map (number of values): ", @@ -56,7 +55,7 @@ }; -static char *p_dsp_v5[] = { +static const char *p_dsp_v5[] = { "Take data from file or database binary object [f|o]:", "Enter name of file/object: ", "Enter width of displacement-map (number of values): ", @@ -68,7 +67,7 @@ }; -static char *p_hf[] = { +static const char *p_hf[] = { "Enter name of control file (or \"\" for none): ", "Enter name of data file (containing heights): ", "Enter 'cv' style format of data [h|n][s|u]c|s|i|l|d|8|16|32|64: ", @@ -91,7 +90,7 @@ }; -static char *p_ebm[] = { +static const char *p_ebm[] = { "Take data from file or database binary object [f|o]: ", "Enter name of file/object: ", "Enter width of bit-map (number of cells): ", @@ -100,7 +99,7 @@ }; -static char *p_submodel[] = { +static const char *p_submodel[] = { "Enter name of treetop: ", "Enter space partitioning method: ", "Enter name of .g file (or \"\" for none): " @@ -107,7 +106,7 @@ }; -static char *p_vol[] = { +static const char *p_vol[] = { "Enter name of file containing voxel data: ", "Enter X, Y, Z dimensions of file (number of cells): ", "Enter Y dimension of file (number of cells): ", @@ -120,7 +119,7 @@ }; -static char *p_bot[] = { +static const char *p_bot[] = { "Enter number of vertices: ", "Enter number of triangles: ", "Enter mode (1->surface, 2->solid, 3->plate): ", @@ -136,7 +135,7 @@ }; -static char *p_arbn[] = { +static const char *p_arbn[] = { "Enter number of planes: ", "Enter coefficients", "Enter Y-coordinate of normal", @@ -145,7 +144,7 @@ }; -static char *p_pipe[] = { +static const char *p_pipe[] = { "Enter number of points: ", "Enter X, Y, Z, inner diameter, outer diameter, and bend radius for first point: ", "Enter Y: ", @@ -162,7 +161,7 @@ }; -static char *p_ars[] = { +static const char *p_ars[] = { "Enter number of points per waterline, and number of waterlines: ", "Enter number of waterlines: ", "Enter X, Y, Z for First row point: ", @@ -174,7 +173,7 @@ }; -static char *p_arb[] = { +static const char *p_arb[] = { "Enter X, Y, Z for point 1: ", "Enter Y: ", "Enter Z: ", @@ -202,7 +201,7 @@ }; -static char *p_sph[] = { +static const char *p_sph[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -210,7 +209,7 @@ }; -static char *p_ellg[] = { +static const char *p_ellg[] = { "Enter X, Y, Z of focus point 1: ", "Enter Y: ", "Enter Z: ", @@ -221,7 +220,7 @@ }; -static char *p_ell1[] = { +static const char *p_ell1[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -232,7 +231,7 @@ }; -static char *p_ell[] = { +static const char *p_ell[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -248,7 +247,7 @@ }; -static char *p_tor[] = { +static const char *p_tor[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -260,7 +259,7 @@ }; -static char *p_rcc[] = { +static const char *p_rcc[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -271,7 +270,7 @@ }; -static char *p_tec[] = { +static const char *p_tec[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -288,7 +287,7 @@ }; -static char *p_rec[] = { +static const char *p_rec[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -304,7 +303,7 @@ }; -static char *p_trc[] = { +static const char *p_trc[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -316,7 +315,7 @@ }; -static char *p_tgc[] = { +static const char *p_tgc[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -334,7 +333,7 @@ }; -static char *p_box[] = { +static const char *p_box[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -350,7 +349,7 @@ }; -static char *p_rpp[] = { +static const char *p_rpp[] = { "Enter XMIN, XMAX, YMIN, YMAX, ZMIN, ZMAX: ", "Enter XMAX: ", "Enter YMIN, YMAX, ZMIN, ZMAX: ", @@ -360,7 +359,7 @@ }; -static char *p_orpp[] = { +static const char *p_orpp[] = { "Enter XMAX, YMAX, ZMAX: ", "Enter YMAX, ZMAX: ", "Enter ZMAX: " @@ -367,7 +366,7 @@ }; -static char *p_rpc[] = { +static const char *p_rpc[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -381,7 +380,7 @@ }; -static char *p_part[] = { +static const char *p_part[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -393,7 +392,7 @@ }; -static char *p_rhc[] = { +static const char *p_rhc[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -408,7 +407,7 @@ }; -static char *p_epa[] = { +static const char *p_epa[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -422,7 +421,7 @@ }; -static char *p_ehy[] = { +static const char *p_ehy[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -437,7 +436,7 @@ }; -static char *p_hyp[] = { +static const char *p_hyp[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -452,7 +451,7 @@ }; -static char *p_eto[] = { +static const char *p_eto[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -467,7 +466,7 @@ }; -static char *p_binunif[] = { +static const char *p_binunif[] = { "Enter minor type (f, d, c, s, i, L, C, S, I, or L): ", "Enter name of file containing the data: ", "Enter number of values to read (-1 for entire file): " @@ -474,7 +473,7 @@ }; -static char *p_extrude[] = { +static const char *p_extrude[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -492,7 +491,7 @@ }; -static char *p_grip[] = { +static const char *p_grip[] = { "Enter X, Y, Z of center: ", "Enter Y: ", "Enter Z: ", @@ -504,7 +503,7 @@ }; -static char *p_superell[] = { +static const char *p_superell[] = { "Enter X, Y, Z of superellipse vertex: ", "Enter Y: ", "Enter Z: ", @@ -522,7 +521,7 @@ }; -static char *p_metaball[] = { +static const char *p_metaball[] = { "Enter render method: ", "Enter threshold: ", "Enter number of points: ", @@ -537,7 +536,7 @@ }; -static char *p_revolve[] = { +static const char *p_revolve[] = { "Enter X, Y, Z of vertex: ", "Enter Y: ", "Enter Z: ", @@ -552,7 +551,7 @@ }; -static char *p_pnts[] = { +static const char *p_pnts[] = { /*00*/ "Are points in a file (yes/no)? ", /*01*/ "Enter number of points (-1 for auto): ", /*02*/ "Are the points orientated (yes/no)? ", @@ -575,7 +574,7 @@ }; -static char *p_hrt[] = { +static const char *p_hrt[] = { "Enter X, Y, Z of the heart vertex: ", "Enter Y: ", "Enter Z: ", @@ -591,7 +590,7 @@ "Enter distance to cusps: " }; -static char *p_joint[] = { +static const char *p_joint[] = { "Enter X, Y, Z of the joint location: ", "Enter Y: ", "Enter Z: ", @@ -606,7 +605,7 @@ "Reference Path 2: " }; -static char *p_datum[] = { +static const char *p_datum[] = { "Enter a datum type ([point|line|plane]): ", "Enter X, Y, Z for the datum point: ", /* 1 == point prompts */ "Enter Y: ", @@ -630,7 +629,7 @@ * TODO: * Add support for the line,curve,beizer,nurb */ -static char *p_annot[] = { +static const char *p_annot[] = { "Enter the point to be annotated: ", "Enter Y: ", "Enter Z: ", @@ -646,7 +645,7 @@ * TODO: * add support */ -static char *p_script[] = { +static const char *p_script[] = { "Enter the script type: " }; @@ -1015,7 +1014,7 @@ static int -bot_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, char **prompt) +bot_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, const char **prompt) { int i; int num_verts, num_faces; @@ -1124,7 +1123,7 @@ static int -arbn_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, char **prompt) +arbn_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, const char **prompt) { struct rt_arbn_internal *arbn; int num_planes=0; @@ -1165,7 +1164,7 @@ static int -pipe_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, char **prompt) +pipe_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, const char **prompt) { struct rt_pipe_internal *pipeip; int i, num_points; @@ -1223,7 +1222,7 @@ static int -ars_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, char **prompt) +ars_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, const char **prompt) { struct rt_ars_internal *arip; size_t i; @@ -2434,7 +2433,7 @@ * 1 if unsuccessful read */ static int -superell_in(struct ged *gedp, char *cmd_argvs[], struct rt_db_internal *intern) +superell_in(struct ged *gedp, const char *cmd_argvs[], struct rt_db_internal *intern) { fastf_t vals[14]; int i, n; @@ -2472,7 +2471,7 @@ * should be. */ static int -metaball_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, char **prompt) +metaball_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, const char **prompt) { struct rt_metaball_internal *metaball; static int i, num_points; @@ -2551,7 +2550,7 @@ static int -pnts_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, char **prompt) +pnts_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, const char **prompt) { unsigned long i; unsigned long numPoints; @@ -2824,7 +2823,7 @@ * returns 1 if unsuccessful read */ static int -hrt_in(struct ged *gedp, char *cmd_argv[], struct rt_db_internal *intern) +hrt_in(struct ged *gedp, const char *cmd_argv[], struct rt_db_internal *intern) { fastf_t vals[13]; int i, n; @@ -2859,7 +2858,7 @@ * returns 1 if unsuccessful read */ static int -joint_in(struct ged *gedp, char *cmd_argv[], struct rt_db_internal *intern) +joint_in(struct ged *gedp, const char *cmd_argv[], struct rt_db_internal *intern) { fastf_t vals[10]; int i, n; @@ -2897,7 +2896,7 @@ * 1 if unsuccessfully read */ static int -datum_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, char **prompt) +datum_in(struct ged *gedp, int argc, const char **argv, struct rt_db_internal *intern, const char **prompt) { struct rt_datum_internal *datums; struct rt_datum_internal *prev; @@ -3108,7 +3107,7 @@ static int -script_in(struct ged *UNUSED(gedp), const char **cmd_argvs, struct rt_db_internal *intern, char *UNUSED(name)) +script_in(struct ged *UNUSED(gedp), const char **cmd_argvs, struct rt_db_internal *intern) { struct rt_script_internal *script_ip; int i=0; @@ -3141,8 +3140,10 @@ struct directory *dp; char *name; struct rt_db_internal internal; - char **menu; - int nvals, (*fn_in)(); + const char **menu; + int nvals; + int (*fn_in)(struct ged *, const char **, struct rt_db_internal *) = NULL; + int (*fn_in_2)(struct ged *, const char **, struct rt_db_internal *, const char *) = NULL; GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR); GED_CHECK_READ_ONLY(gedp, GED_ERROR); @@ -3270,7 +3271,7 @@ } else if (BU_STR_EQUAL(argv[2], "half")) { nvals = 3*1 + 1; menu = p_half; - fn_in = half_in; + fn_in_2 = half_in; } else if (bu_strncmp(argv[2], "arb", 3) == 0) { int n = atoi(&argv[2][3]); @@ -3287,7 +3288,7 @@ } else if (BU_STR_EQUAL(argv[2], "sph")) { nvals = 3*1 + 1; menu = p_sph; - fn_in = sph_in; + fn_in_2 = sph_in; } else if (BU_STR_EQUAL(argv[2], "ellg")) { nvals = 3*2 + 1; menu = p_ellg; @@ -3332,11 +3333,11 @@ } else if (BU_STR_EQUAL(argv[2], "rpp")) { nvals = 3*2; menu = p_rpp; - fn_in = rpp_in; + fn_in_2 = rpp_in; } else if (BU_STR_EQUAL(argv[2], "orpp")) { nvals = 3*1; menu = p_orpp; - fn_in = orpp_in; + fn_in_2 = orpp_in; } else if (BU_STR_EQUAL(argv[2], "rpc")) { nvals = 3*3 + 1; menu = p_rpc; @@ -3374,7 +3375,7 @@ } else { nvals = 3; menu = p_binunif; - fn_in = binunif_in; + fn_in_2 = binunif_in; } } else if (BU_STR_EQUAL(argv[2], "extrude")) { nvals = 4*3 + 1; @@ -3448,14 +3449,30 @@ return GED_MORE; } - if (fn_in(gedp, argv, &internal, name) != 0) { + if (fn_in) { + if (fn_in(gedp, argv, &internal) != 0) { + bu_vls_printf(gedp->ged_result_str, "%s: ERROR %s not made!\n", argv[0], argv[2]); + if (internal.idb_ptr) { + /* a few input functions do not use the internal pointer + * only free it, if it has been used + */ + rt_db_free_internal(&internal); + } + return GED_ERROR; + } + } else if (fn_in_2) { + if (fn_in_2(gedp, argv, &internal, name) != 0) { + bu_vls_printf(gedp->ged_result_str, "%s: ERROR %s not made!\n", argv[0], argv[2]); + if (internal.idb_ptr) { + /* a few input functions do not use the internal pointer + * only free it, if it has been used + */ + rt_db_free_internal(&internal); + } + return GED_ERROR; + } + } else { bu_vls_printf(gedp->ged_result_str, "%s: ERROR %s not made!\n", argv[0], argv[2]); - if (internal.idb_ptr) { - /* a few input functions do not use the internal pointer - * only free it, if it has been used - */ - rt_db_free_internal(&internal); - } return GED_ERROR; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |