Is there a way I can retrieve the bottom pivot of an object both in local and world space?

You can see the illustration of the problem here:

https://www.dropbox.com/s/km43npmh6j7sddm/c4d178_python_get_bottom_center_pivot.jpg?dl=0

Thank you for looking at my problem.

]]>https://github.com/gr4ph0s/graph_bottom_center_axis/blob/master/bottom_axis_center.pyp

Cheers,

Maxime.

the code was meant to be just in a an arbitrary frame of reference, that is why I did link the matrix stuff, which you probably can ignore otherwise. The `_p.y`

stuff is the y component of a vector. When you multiply a vector by a (transform) matrix you get the point transformed by that matrix, usually denoted as p' = M * p.

Anyways, wrote this dry (here in the forum editor) too and I made a little oopsie here too, as I did not think of the special case you did encounter, the fixed code could look like this (again dry, no c4d here).

```
import sys
min_y = sys.maxint
for p in my_object.GetAllPoints():
_p = p * my_object.GetMg()
min_y = min(_p.y, min_y)
```

Cheers

zipit

Thanks again for the response.

**RE: this thread might help you out**

Yes, I'm trying to reperform the `Axis Center`

manager but through code. However, unlike in the thread you referred to where the axis is arbitrary, I wanted the bottom center pivot. (Or Bottom Center Axis? In Maya, it's called a Pivot)

**RE: Pseudo Code**

I'm assuming the aforementioned code is in bottom world space (i.e. the bottom center world space and the bottom center local space is a different solution). Correct me if I'm wrong.

Your code works for world space other than 0. But not if its in 0. See illustration here:

https://www.dropbox.com/s/4rk3cdu83wydnn8/c4d178_python_get_bottom_center_pivot02.jpg?dl=0

**RE: _p.y**

Just wondering where is the `.y`

referred? I can't see it in the documentation. The only way I would be able to retrieve it previously is through `GetMg().off[1]`

ignoring the fact, that you are using the term "bottom" in your diagram - which would hint at a much harder and not yet properly solved problem: giving computers a sense of human shape recognition -, I assume you are just after the minima and maxima of the vertex positions of an object in a reference frame. First of all: Note, that there is the slightly confusingly named `BaseObject.GetRad()`

, which will give you the bounding box vector for an object.

If you are after the bounding box of an object in a reference frame, that is not the associated frame (local matrix) of that object, you simply have have to iterate through all points in that frame and figure out the minima and maxima, i.e. compute its bounding box in that frame. In pseudo code for just the minimum y-axis case of your example:

```
min_y = None
for p in my_objects.GetAllPoints():
_p = p * my_transform_matrix
min_y = _p.y if not min_y else min(_p.y, min_y)
```

If you are unsure on how matrix transforms work, this thread might help you out.

Cheers

zipit