Wired behavior with transformations in c++ connector API

Hallo together,

I would like to translate a prim to it´s center, to make sure that the translations that are applied are based on the center (for example the center for a rotation on the y-axis should be the center of the object).

So I wrote a method, that gets the bounding box from the prim (based on alle of it´s children) and translates itself by the half of the bounding box size.

UsdGeomXform, has three different methods to calculate the bounds…

ComputeLocalBound
ComputeWorldBound
ComputeUntransformedBound

,when I tried those three methods, all three methods produces exact the same result (ragardles of the transformations on the parents)…

Is that correct, or do I something wrong?

What´s even more wired to me I the fact, that when I try to transform those bounding boxes… nothing happens… regardless of the matrix a put in the Transform-method… the values do not change…

He is a quick sample:
A->B->C->Dn

What I need is the bounding box from C including all children (in localspace). Then I would like to translate C with the half of the bounding box multiplied with -1 to make sure, that transformations applied to B are relative to the center of C.

Thanks for your help…

Carl

I was able to answer my question my self :-)

I have to call “ComputeAlignedBox”, to get the expected result. 👍

1 Like

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.