mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
set perfab and makemesh origins to the biggest model
allows one to preserve snap points
This commit is contained in:
parent
dcf176f043
commit
4c7535a9bc
|
|
@ -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…
Reference in a new issue