Polygon Position

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 15/03/2010 at 17:49, xxxxxxxx wrote:

okay .. 100% might have been a bit over zealous.    I've got rotations working properly, but now I am having an issue with position.

I use

firstSelection->SetPos((opMatrix * polyLocation));

to set where the object will sit on the polygon (the center).

however,  I get this...

I want for it to look like this...

You can see in the second image that the smaller cube is sitting so that the face is right against the polygon of the larger cube.   THis is the result I am looking for.

I have tried adding the radius of the smaller cube to the position of the smaller cube but this only works correctly if the object is a cube,  otherwise I get some funky results.

Is there a better way to get the postition of the cube to rest polygon to polygon.   For example,  could I temporarily change the axis of the smaller cube so that when I change the position of the smaller cube, the axis is at the outer edge,  and then after I have changed the postiiton, change the axis back..   Is this possible?

How would I change the axis of a polygon object?  I have looked at SetModelingAxis() but am not sure how I would use it...

Any help would be greatly appreciated.

Thanks a lot.

~Shawn

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 16/03/2010 at 01:01, xxxxxxxx wrote:

I don't know for sure how the tool is supposed to work. Can you post a screenshot of a different example with a more complex geometry?

cheers,
Matthias

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 16/03/2010 at 02:47, xxxxxxxx wrote:

Thanks Matthias,

Here are some screen shots of the whole process..  Hopefully this makes what I am doing a little clearer.  🙂

The reason I get only half of the cube being visible is that SetPos() is putting the cube in the position of the center of the polygon.  However,  the position of the cube is based on the axis of the cube which is in the center of the cube.

I would like to move the axis of the cube to the center of one of the polygons on teh cube so that this polygon is then set on the polygon of the 2nd object instead of the center of the cube.

So after all of that....    I really just need to know how to move the axis of the cube from the center of the cube to the center of one of the polygons of the cube.

LOL

Thanks in advance.    🙂

~Shawn

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 17/03/2010 at 01:11, xxxxxxxx wrote:

I assume you have created a rotation matrix for the cube's selected polygon. Translate this matrix into global space. Translate the object's matrix (axis) into global space. Translate the new global object's matrix into the polygon's rotation matrix local space. Now offset the the object's matrix by the difference of the original rotation and object matrix offsets.

cheers,
Matthias

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 17/03/2010 at 17:18, xxxxxxxx wrote:

To translate the rotation Matrix of the cube's polygon to global space, I will need to multiply that by the cube's local matrix?

~Shawn

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 20/03/2010 at 05:38, xxxxxxxx wrote:

I assume you have created a rotation matrix for the cube's selected polygon.

Yes I a have.   this is name rotMatrix1

Translate this matrix into global space.

Is this the right way yo do this?

Matrix globalSelPoly = rotMatrix1 * firstSelection->GetMl();

Translate the object's matrix (axis) into global space.

Like this?    (firstSelection is the object that represents the first object selected.)

Matrix firstObjGlobal = firstSelection->GetMg();

Translate the new global object's matrix into the polygon's rotation matrix local space.

I'm not sure how to do this.   🙂  Would you mind giving an example?

Now offset the the object's matrix by the difference of the original rotation and object matrix offsets.

I assume that would look something like this?

objMatrix.off = rotMAtrix.off - objMatrix.off

Thanks,

~Shawn

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 22/03/2010 at 07:18, xxxxxxxx wrote:

Got it.  Thanks for everyone's help with this.  Finally worked it out.  HAHA

~Shawn