mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-24 17:13:54 +00:00
Merge pull request #466 from Azaezel/alpha40/bakeOrigintweaks
set prefab and makemesh origins to the biggest model
This commit is contained in:
commit
30f746416d
1 changed files with 32 additions and 15 deletions
|
|
@ -3779,12 +3779,28 @@ void WorldEditor::makeSelectionPrefab( const char *filename, bool dontReplaceOri
|
|||
// Transform from World to Prefab space.
|
||||
MatrixF fabMat(true);
|
||||
fabMat.setPosition( mSelected->getCentroid() );
|
||||
fabMat.inverse();
|
||||
|
||||
MatrixF objMat;
|
||||
SimObject *obj = NULL;
|
||||
SceneObject *sObj = NULL;
|
||||
|
||||
F32 maxLen = 0;
|
||||
for (S32 i = 0; i < found.size(); i++)
|
||||
{
|
||||
obj = found[i];
|
||||
sObj = dynamic_cast<SceneObject*>(obj);
|
||||
if (sObj && !(sObj->isGlobalBounds()))
|
||||
{
|
||||
if (maxLen < sObj->getWorldBox().len_max())
|
||||
{
|
||||
maxLen = sObj->getWorldBox().len_max();
|
||||
fabMat.setPosition(sObj->getPosition());
|
||||
}
|
||||
}
|
||||
}
|
||||
fabMat.inverse();
|
||||
|
||||
|
||||
for ( S32 i = 0; i < found.size(); i++ )
|
||||
{
|
||||
obj = found[i];
|
||||
|
|
@ -3978,22 +3994,23 @@ bool WorldEditor::makeSelectionAMesh(const char *filename)
|
|||
}
|
||||
else
|
||||
{
|
||||
orientation.identity();
|
||||
centroid.zero();
|
||||
|
||||
S32 count = 0;
|
||||
|
||||
for (S32 i = 0; i < objectList.size(); i++)
|
||||
SimObject* obj = NULL;
|
||||
SceneObject* sObj = NULL;
|
||||
F32 maxLen = 0;
|
||||
for (S32 i = 0; i < found.size(); i++)
|
||||
{
|
||||
SceneObject *pObj = objectList[i];
|
||||
if (pObj->isGlobalBounds())
|
||||
continue;
|
||||
|
||||
centroid += pObj->getPosition();
|
||||
count++;
|
||||
obj = found[i];
|
||||
sObj = dynamic_cast<SceneObject*>(obj);
|
||||
if (sObj && !(sObj->isGlobalBounds()))
|
||||
{
|
||||
if (maxLen < sObj->getWorldBox().len_max())
|
||||
{
|
||||
maxLen = sObj->getWorldBox().len_max();
|
||||
orientation = sObj->getTransform();
|
||||
centroid = sObj->getPosition();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
centroid /= count;
|
||||
}
|
||||
|
||||
orientation.setPosition(centroid);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue