My c++ connector creates and updates prims. Prims are external .usd assets.
The code of prim creation:
UsdPrim newPrim = allPrims[path];
if (!newPrim) {
int siz = assetPath.size();
newPrim = connector->getStage()->DefinePrim(SdfPath(path));
BOOST_LOG_TRIVIAL(info) << "created " << path << " primitive" << std::endl;
int idx = std::rand() % assetPath.size();
std::string selectedPath = assetPath[idx].as_string().c_str();
std::string resolvedPath = resolvedPaths[selectedPath];
if (resolvedPath.empty()) {
std::string resolvedPath = resolver.Resolve(selectedPath).GetPathString();
resolvedPaths[selectedPath] = resolvedPath;
}
SdfReference ref = SdfReference(resolvedPath);
newPrim.GetReferences().AddReference(ref);
newPrim.SetInstanceable(false);
allPrims[path] = newPrim;
return;
}
It works but connector constantly gives warnings
No prim found for id:
Am I doing something wrong?