For some reason we're having a very hard time with the daeSIDResolve class 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.
Any feedback on this patch would be appreciated.
the patched findWithDots function