Re: [Plib-users] Identifying objects after loading an AC3D- modell
Brought to you by:
sjbaker
From: Michael W. <mic...@ti...> - 2004-04-23 17:47:05
|
Dear Steve, I have implemented what you said. But when I debug the application the code never jumps in the function ssgBranch *process_userdata ( char *data ) . My ac-file looks folowing:. AC3Db MATERIAL "ac3dmat1" rgb 1 1 1 amb 0.2 0.2 0.2 emis 0 0 0 spec 0.5 0.5 0.5 shi 10 trans 0 MATERIAL "ac3dmat3" rgb 1 0 0 amb 0.2 0.2 0.2 emis 0 0 0 spec 0.5 0.5 0.5 shi 10 trans 0 MATERIAL "ac3dmat7" rgb 0.270588 0.52549 0.454902 amb 0.2 0.2 0.2 emis 0 0 0 spec 0.5 0.5 0.5 shi 10 trans 0 MATERIAL "ac3dmat9" rgb 0 0 1 amb 0.2 0.2 0.2 emis 0 0 0 spec 0.5 0.5 0.5 shi 10 trans 0 MATERIAL "ac3dmat13" rgb 0.533333 0.533333 0.533333 amb 0.2 0.2 0.2 emis 0 0 0 spec 0.5 0.5 0.5 shi 10 trans 0 OBJECT world kids 2 OBJECT group name "Race-Course" loc 0.560112 0.0001 0.361112 kids 4 OBJECT poly name "poly" loc -0.240913 0 -0.282012 texture "ASSPHALT.bmp" texrep 10 10 numvert 10 -0.1712 0 -0.1475 -0.0751 0 -0.1577 0.0686 0 -0.1675 0.2239 0 -0.1789 0.3284 0 -0.1871 0.3219 0 -0.2051 0.1242 0 -0.1854 -0.0899 0 -0.1724 -0.1744 0 -0.1613 -0.1744 0 -0.1613 numsurf 10 ............... ................ I attach the .ac-file to this mail. My intention is to seperate for example the OBJECT group name "Race-Course" as a single object from the rest. What can I do ? Best regards ----- Original Message ----- From: "Steve Baker" <sjb...@ai...> To: <pli...@li...> Sent: Friday, March 26, 2004 3:35 AM Subject: Re: [Plib-users] Identifying objects after loading an AC3D- modell > Michael Wessels wrote: > > > in my '.ac' file I have the comment field "Tribune1". How can I tell the > > PLIB loaders to call a callback function in the application when they find > > this comment field ? > > Write a function like this: > > ssgBranch *process_userdata ( char *data ) > { > if ( data == NULL || data [ 0 ] == '\0' ) return NULL ; > > if ( strncmp ( "Tribune1", data, strlen ( "Tribune1" ) ) == 0 ) > { > ssgBranch *b = new ssgBranch () ; /* ...or whatever you want this node to be */ > /* whatever you need to do here */ > return b ; > } > > return NULL ; > } > > > Sometime after ssgInit() but before you load your model: > > ssgLoaderOptions *loader_opts = new ssgLoaderOptions () ; > loader_opts -> setCreateBranchCallback ( process_userdata ) ; > /* You may wish to set other loader options here */ > ssgSetCurrentOptions ( loader_opts ) ; > > ...then just load your model in the usual way and whenever SSG > needs to create a branch node, it'll call your 'process_userdata' > function with the comment as the parameter. If this is a 'special' > node, then you create the node and return it as the result. If it's > not special then just return NULL and the loader will do something > appropriate. > > ---------------------------- Steve Baker ------------------------- > HomeEmail: <sjb...@ai...> WorkEmail: <sj...@li...> > HomePage : http://www.sjbaker.org > Projects : http://plib.sf.net http://tuxaqfh.sf.net > http://tuxkart.sf.net http://prettypoly.sf.net > -----BEGIN GEEK CODE BLOCK----- > GCS d-- s:+ a+ C++++$ UL+++$ P--- L++++$ E--- W+++ N o+ K? w--- !O M- > V-- PS++ PE- Y-- PGP-- t+ 5 X R+++ tv b++ DI++ D G+ e++ h--(-) r+++ y++++ > -----END GEEK CODE BLOCK----- > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IBM Linux Tutorials > Free Linux tutorial presented by Daniel Robbins, President and CEO of > GenToo technologies. Learn everything from fundamentals to system > administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click > _______________________________________________ > plib-users mailing list > pli...@li... > https://lists.sourceforge.net/lists/listinfo/plib-users |