Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Help for the Rotation and offset geometric center bugs

Void Singer
Int vSelf = Sing(void);
Join date: 24 Sep 2005
Posts: 6,973
07-18-2009 05:28
ok so experimenting with linking object today to figure out exactly what causes the rotation bug (object takes on the native rotation of a child prim in local mode) and the offset geometric center bug (the rotation center in edit not showing at the geometric center)

first off... object local rotation and how it's affected by link order and... position!?!
yup that's right, world relative position at the time of linking affects the objects redit window, local rotation.

for any group of single prims, the north most, CHILD prims rotation will be used (we'll call this the KEY prim hearafter) if there is not a north most, prim, then it falls back to west most, if there isn't a single west most prim it falls back to highest..... (root prim is NEVER the key prim)

however there is hope if your natural KEY prim isn't at a convenient rotation, you CAN choose your own KEY prim by linking all of the prims to your build, EXCEPT the one you have aligned the same as the root, and link them with your chosen root. then cclick your chosen KEY prim, and shift click your linked object, and link them... boom now local rotation for your object will match your root (at least until someone unlinks it and relinks it the wrong way...

next up Geometric center.
ya know that point that your object rotates around? yeah, forget the geometric part... it's actually a bounding box, but it's not defined by the root, or even the region position... no, it's UP direction is defined by... (drum roll please)... yup you guessed it... that pesky key prim, and it's relative rotation/position from the root! this means that if you want a square bounding box for resizing you need to place your key prim so that not only it matches your root rotation, but also so that it preferably shares at least one plane (matching either an x y or z regional position)[note that the up direction of the bounding box and it's edges are defined by the KEY's relation to the linkset... like a second root]

using the KEY and the root aligned to the world, the resize box for things like prim attachments will no longer be tilted off center, you'll have an easier time modifying them, and so will your customers. yes, in some cases it means an extra prim (like in skirts) but I think it's well worth the reduction in complaints of "I messed this up because it's all tilted when I try to resize it!" and similar issues (even if you don't handle them, wouldn't it be nice not to HEAR them? yeah I though it might)
_____________________
|
| . "Cat-Like Typing Detected"
| . This post may contain errors in logic, spelling, and
| . grammar known to the SL populace to cause confusion
|
| - Please Use PHP tags when posting scripts/code, Thanks.
| - Can't See PHP or URL Tags Correctly? Check Out This Link...
| -
Lee Ponzu
What Would Steve Do?
Join date: 28 Jun 2006
Posts: 1,770
Wow....
07-18-2009 08:07
...now I can make that Rubik's cube.
_____________________
So many monkeys, so little Shakespeare.
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
07-18-2009 08:24
Oh, wow! Thanks for this. It's going to take me a while to get my head around your explanation, but as a dress designer I have recognized the problem for a long time. I can go nuts sometimes trying to resize a skirt -- or worse yet, trying to undo the work of a customer who has botched the resizing of her skirt . Thanks, Void. :D
_____________________
It's hard to tell gender from names around here but if you care, Rolig = she. And I exist only in SL, so don't ask.... ;)

Look for my work in XStreetSL at
EF Klaar
Registered User
Join date: 11 Jun 2007
Posts: 330
07-18-2009 16:18
lol

I'd just posted a new thread on this exact same subject when I saw this one. Thanks Void, you seem to have answered my questions pretty thoroughly.
Void Singer
Int vSelf = Sing(void);
Join date: 24 Sep 2005
Posts: 6,973
07-18-2009 22:32
I'll try to get video of this later....

the uber simple solution, is to have to center prims in your object... one with be the root, the other, the key... link everything else to the root, then link the key to the root.

the link rules appear to be northmost(eastmost, highmost) prim that is not the root, or part of an object already connected to the root = KEY. that means that multipart objects that get linked to a different root, all get treated as separate prims, only parts already linked to the root get ignored)
_____________________
|
| . "Cat-Like Typing Detected"
| . This post may contain errors in logic, spelling, and
| . grammar known to the SL populace to cause confusion
|
| - Please Use PHP tags when posting scripts/code, Thanks.
| - Can't See PHP or URL Tags Correctly? Check Out This Link...
| -