From: Dave J. <dav...@go...> - 2010-09-30 14:18:23
|
On 30 September 2010 13:14, John A. Stewart <ale...@cr...> wrote: > Dave; > > On 2010-09-29, at 7:30 PM, Dave Joubert wrote: >> Keeping it in a file would probably also make parsing it (back into >> VRML 2.0) a lot easier. > > > I don't see a problem with sending back a file name rather than the whole of the data. It *does* make some sense, and your app can read the file just as well as anything else can. > > Also, I'd suggest feeling free to change the format of the dump; Yes, I am taking some baby steps along those lines. Does anyone know a sufficiency of Perl ? One of the drawbacks in the current Perl program that generates the code is that it outputs the fields in an node in 'whatever' order. What would help is that the MFnode flelds are pushed into a FIFO, and then the FIFO emptied at the end of the node. Unfortunately I do not have a single Perl book left. As an example, the Perl script writes the following C code: case NODE_Collision : { struct X3D_Collision *tmp; tmp = (struct X3D_Collision *) node; spacer fprintf (fp,"\tchildren (MFNode):\n"); for (i=0; i<tmp->children.n; i++) { dump_scene(fp,level+1,tmp->children.p[i]); } spacer fprintf (fp,"\t_sortedChildren (MFNode):\n"); for (i=0; i<tmp->_sortedChildren.n; i++) { dump_scene(fp,level+1,tmp->_sortedChildren.p[i]); } spacer fprintf (fp,"\t__hit (SFInt32) \t%d\n",tmp->__hit); spacer fprintf (fp,"\tmetadata (SFNode):\n"); dump_scene(fp,level+1,tmp->metadata); spacer fprintf (fp,"\t__oldmetadata (SFNode):\n"); dump_scene(fp,level+1,tmp->__oldmetadata); spacer fprintf (fp,"\tcollide (SFBool) \t%d\n",tmp->collide); spacer fprintf (fp,"\tenabled (SFBool) \t%d\n",tmp->enabled); break;} To me, by the time you come back from the descendant nodes, 'enabled' no longer has any context. a Small change I have made is to add the DEF name for those nodes that have one. Dave |