R: [Plib-users] Identifying objects after loading an AC3D- modell
Brought to you by:
sjbaker
From: Paolo L. <p.l...@ci...> - 2004-04-27 11:37:38
|
Michael, Should the search function not find any node could be due to the 'flatten' graph reorganization, if you apply it. Flatten eliminates unnecessary ssgTransforms (those with identity xform) - so incidentally deleting those nodes which actually hold the object name (loaders normally setName() just to ssgTransform nodes). I never went down to its source code, so it could be that ssgTransform's with a name set are 'saved' in the flatten op. Greetings - Paolo > -----Messaggio originale----- > Da: pli...@li...=20 > [mailto:pli...@li...] Per conto di=20 > Michael Wessels > Inviato: marted=EC 27 aprile 2004 11.44 > A: pli...@li... > Oggetto: Re: [Plib-users] Identifying objects after loading=20 > an AC3D- modell >=20 >=20 > Hi Paolo, > I will try it. >=20 > Thanks >=20 > Michael > ----- Original Message -----=20 > From: "Paolo Leoncini" <p.l...@ci...> > To: <pli...@li...> > Sent: Tuesday, April 27, 2004 9:44 AM > Subject: R: [Plib-users] Identifying objects after loading an=20 > AC3D- modell >=20 >=20 > Michael, >=20 > You're welcome - ftp://ftp.cira.it/download/lepa069/envmap.cxx >=20 > Hope everything is clear with this little comment support -=20 > this is how I manage the env mapping property into SSG and=20 > the corresponding search-then-setup functions. >=20 > Greetings - >=20 > Paolo >=20 >=20 > > -----Messaggio originale----- > > Da: pli...@li... > > [mailto:pli...@li...] Per conto=20 > di Michael=20 > > Wessels > > Inviato: luned=EC 26 aprile 2004 18.38 > > A: pli...@li... > > Oggetto: Re: [Plib-users] Identifying objects after loading=20 > an AC3D-=20 > > modell > > > > > > Hi Paolo, > > I understand what you mean and I agree. I have tried to=20 > walk through=20 > > the tree but not successfull. Can you give me some lines of=20 > C/C++code=20 > > how to do it ? Best regards > > > > Michael > > > > ----- Original Message ----- > > From: "Paolo Leoncini" <p.l...@ci...> > > To: <pli...@li...> > > Sent: Monday, April 26, 2004 9:59 AM > > Subject: R: [Plib-users] Identifying objects after loading an > > AC3D- modell > > > > > > Michael, > > > > Is the problem setting custom properties for objects/materials? > > > > The approach based on inline comments doesn't meet my favour since > > a) it works only for ascii-text file (3D) formats such as AC3D, > > b) needs of manual editing as you update the file (risk to=20 > loose such=20 > > addenda or to be enabled to do it only in its final version). > > > > I'm in favour of this alternative solution: > > > > A) manually write a simple text properties file - I use kinda .ini > > format: > > > > [property] > > Object-name Params > > ... > > [property] > > Material-name Params > > ... > > > > B) learn to parse your format, and, after having loaded the=20 > 3D data,=20 > > walk the graph by first identifying nodes by name (either=20 > objects or=20 > > materials, the getName() method works on both, and on=20 > non-states you=20 > > have also the getByName() > > utility) - all 3D formats allow to identifiy objs/mats by a textual=20 > > name - then setting node properties depending on the=20 > directive in the=20 > > file. > > > > I use properties like envmap, mirror, no-lit (disable=20 > lighting), etc,=20 > > some acting on leafs and others on states. > > > > This approach is not so heavy in the implementation, keeps=20 > 3D data and=20 > > custom properties separate, and works for all 3D data formats. > > > > Greetings - > > > > Paolo > > > > > > > -----Messaggio originale----- > > > Da: pli...@li... > > > [mailto:pli...@li...] Per conto > > di Michael > > > Wessels > > > Inviato: venerd=EC 23 aprile 2004 18.47 > > > A: pli...@li... > > > Oggetto: Re: [Plib-users] Identifying objects after loading > > an AC3D- > > > modell > > > > > > > > > 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=20 > > > folowing:. > > > > > > AC3Db > > > MATERIAL "ac3dmat1" rgb 1 1 1 amb 0.2 0.2 0.2 emis 0 0=20 > 0 spec 0.5=20 > > > 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=20 > "ac3dmat7" rgb=20 > > > 0.270588 0.52549 0.454902 amb 0.2 0.2 0.2 emis 0 0 0 =20 > spec 0.5 0.5=20 > > > 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=20 > "ac3dmat13" rgb=20 > > > 0.533333 0.533333 0.533333 amb 0.2 0.2 0.2 emis 0 0 0 spec 0.5=20 > > > 0.5 0.5 shi 10 trans 0 OBJECT world kids 2 OBJECT group name=20 > > > "Race-Course" loc 0.560112 0.0001 0.361112 kids 4 OBJECT=20 > poly name=20 > > > "poly" loc -0.240913 0 -0.282012 texture "ASSPHALT.bmp"=20 > texrep 10 10=20 > > > numvert 10 -0.1712 0 -0.1475 -0.0751 0 -0.1577 0.0686 0 -0.1675=20 > > > 0.2239 0 -0.1789 0.3284 0 -0.1871 0.3219 0 -0.2051 0.1242=20 > 0 -0.1854=20 > > > -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=20 > loading an AC3D-=20 > > > 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 =3D=3D NULL || data [ 0 ] =3D=3D '\0' ) return = NULL ; > > > > > > > > if ( strncmp ( "Tribune1", data, strlen ( "Tribune1" > > ) ) =3D=3D 0 ) > > > > { > > > > ssgBranch *b =3D 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 =3D 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=20 > ------------------------- > > > > HomeEmail: <sjb...@ai...> WorkEmail:=20 > <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---=20 > 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=20 > Free Linux=20 > > > > tutorial presented by Daniel Robbins, President > > > and CEO of > > > > GenToo technologies. Learn everything from fundamentals=20 > to system > > > > > > > > >=20 > = administration.http://ads.osdn.com/?ad_id=3D1470&alloc_id=3D3638&op=3Dcli= ck > > > > _______________________________________________ > > > > plib-users mailing list > > > > pli...@li...=20 > > > > https://lists.sourceforge.net/lists/listinfo/plib-users > > > > > > > > > > > > ------------------------------------------------------- > > > This SF.net email is sponsored by: The Robotic Monkeys at=20 > ThinkGeek=20 > > > For a limited time only, get FREE Ground shipping on all > > orders of $35 > > > or more. Hurry up and shop folks, this offer expires April 30th!=20 > > > http://www.thinkgeek.com/freeshipping/?cpg=3D> 12297 > > > > > > _______________________________________________ > > > > > > plib-users mailing list > > > pli...@li...=20 > > > https://lists.sourceforge.net/lists/listinfo/p> lib-users > > > > > > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: The Robotic Monkeys at ThinkGeek=20 > > For a limited time only, get FREE Ground shipping on all=20 > orders of $35=20 > > or more. Hurry up and shop folks, this offer expires April 30th! > > http://www.thinkgeek.com/freeshipping/?cpg=12297 > > > > _______________________________________________ > > plib-users mailing list > > pli...@li...=20 > > https://lists.sourceforge.net/lists/listinfo/p> lib-users > > > > > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: The Robotic Monkeys at ThinkGeek=20 > > For a limited time only, get FREE Ground shipping on all=20 > orders of $35=20 > > or more. Hurry up and shop folks, this offer expires April 30th! > > http://www.thinkgeek.com/freeshipping/?cpg=12297 > > > > _______________________________________________ > > plib-users mailing list > > pli...@li...=20 > > https://lists.sourceforge.net/lists/listinfo/p> lib-users > > >=20 >=20 >=20 > ------------------------------------------------------- > This SF.net email is sponsored by: The Robotic Monkeys at=20 > ThinkGeek For a limited time only, get FREE Ground shipping=20 > on all orders of $35 or more. Hurry up and shop folks, this=20 > offer expires April 30th!=20 > http://www.thinkgeek.com/freeshipping/?cpg=12297 >=20 > _______________________________________________ > plib-users mailing list > pli...@li...=20 > https://lists.sourceforge.net/lists/listinfo/p> lib-users >=20 >=20 >=20 >=20 > ------------------------------------------------------- > This SF.net email is sponsored by: The Robotic Monkeys at=20 > ThinkGeek For a limited time only, get FREE Ground shipping=20 > on all orders of $35 or more. Hurry up and shop folks, this=20 > offer expires April 30th!=20 > http://www.thinkgeek.com/freeshipping/?cpg=12297 >=20 > _______________________________________________ > plib-users mailing list > pli...@li...=20 > https://lists.sourceforge.net/lists/listinfo/p> lib-users >=20 |