Hi Rasmus.
Ok, let's put this on the list....
Rasmus Agerholm wrote:
Well, I guess basically the SceneFileHandler can be used if we can get
hold of the VRMLLoader of the VRMLSceneFileType and initialize my
VRMLAnimator with that... but that means altering OpenSG source files to
ad a getLoader() to the VRMLSceneFiletype. Maybe Gerrit will make that
change?
I thought about unzipping them "manually" with the ZStream (after
checking it with SceneFileHandler::the().isGZip(in) but these Methods /
Classes are private for the SceneFileHandler. Nevertheless, you're
approach would be definitely more user friendly... : )
Another possibility: I think it would possible to create a
MyVRMLSceneFileType inherited from VRMLSceneFiletype, which overrides
Gerrits VRMLSceneFileType. This is probably the best solution, which I
haven't looked much into. Maybe I should... I guess that there's is
always only one SceneFileType of each kind. So a MyVRMLSFT could create
a VRMLAnimator object and make it available by a getAnimator() method?
Dirk, Gerrit, Andreas can any of you comment on this?
Too deep in the guts for me, can't say anything here.
* copy already loaded (zipped or not) Files so that all cores except
TimeSensors and GeoPositions are shared with the original (I need it
this way to control my animations independently)? At this very moment
I just load them x times and use a SharePtrGraphOp, which is kind of
weird by principle and needs a lot of RAM and time.... I tried the
cloneTree Methods, but it seems that the TimeSensor isn't shared.
cloneTree does not share anything AFAIK, it creates a copy of the tree.
So no shared node cores is expected :-)
I don't think it's possible to decouple the geoPositions from the
Geometry core. Actually I think that you can't really share much if your
goal is to control the animations independently.
Well, yes and no. Every fish is a SwitchPtr with NodePtrs, each of them
loaded from a file. They mostly start in the same Position, have the
same Material etc...., so there is a lot to share: Material(Groups),
Normals (always the same...), Indices, at least that's what I tell the
SharePtrGraphOp and what's working fine. So my problem is, that I have
to duplicate the Graph and share some specific Fields (mostly from the
GeometryCore) and/or NodeCores (like MaterialGroup) while I duplicate
everything else. How can I achieve this?
Regards,
Dominik
Hi,
ok using cloneTree just shares all cores. If you want to have more
control you can use deepCloneTree this duplicates the tree but you can
give it a list of pointer types to share.
This clones all nodes but the cores of type Material and Transform are
shared.
NodePtr sceneClone = deepCloneTree(scene, "Material, Transform");
Should also work with specific Geometry properties but I never tried this.
NodePtr sceneClone = deepCloneTree(scene, "Material, Transform,
GeoPositions3f");
Andreas
--
Andreas Zieringer [EMAIL PROTECTED]
Fraunhofer IGD - A4 phone +49 (0)6151 155 289
Fraunhoferstr. 5 fax +49 (0)6151 155 196
D-64283 Darmstadt www.igd.fhg.de/www/igd-a4
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users