For some reason we're having a very hard time with daeSidRef finding all the correct references. In order to make it work correct, we add the following code in daeSIDResolve.cpp findWithDots function:

if ( strncmp( container->getElementName(), "instance_", 9 ) == 0 ) {
daeURI *uri = (daeURI*)container->getAttributeValue("url");
if ( uri != NULL && uri->getElement() != NULL ) {
daeElement *e = findWithDots( uri->getElement(), s, profile, finder, remainingPart );
if ( e != NULL ) {
//found it
return e;
}
}
}


The function basically looks for "instance" tags and tracks their url. Without it, we have to specially search for instance tags in the collada parsing code.

It would be really great to not have to modify the collada-dom library, so any feedback on this patch would be appreciated!

i also posted a bug report here:
https://sourceforge.net/tracker/?func=d ... tid=805424