Hi,
I have a scene index chain with a retained scene index which is creating an xform primitive with a transform matrix.
This scene index is the input of a filtering scene index which modifies the transform and then some others filtering scene indices are using this filtering scene index as an input.
When the transform is updated by some external event (e.g : a maya node is moved), I am updating the transform in the scene index and want the scene indices chain to be aware of that change.
The only way that is working so far is to remove and add again the prim from the retained scene index.
I have been trying different ways of dirtying the transform but none of them worked like :
HdDataSourceLocatorSet locators;
HdDirtyBitsTranslator::RprimDirtyBitsToLocatorSet(HdTokens->transform, HdChangeTracker::AllSceneDirtyBits, &locators);
_retainedSceneIndex->DirtyPrims( { {_parentPath, locators} } );
or
//Set dirty this field in the retained scene index for the parent prim
HdDataSourceLocatorSet locators = {HdDataSourceLocator(HdXformSchemaTokens->xform)};
_retainedSceneIndex->DirtyPrims( { {_parentPath, locators} } );
None of them have forced the prim’s transform to be updated in the scene indices chain.
So I am wondering, what is the correct way to set the transform dirty ?
Thank you.
Regards,
David Lanier