[brlcad-commits] SF.net SVN: brlcad:[61397] brlcad/trunk/src/libged/typein.c
Open Source Solid Modeling CAD
Brought to you by:
brlcad
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. |