public void Resize(Vector3 scale, uint localID)
{
CheckSculptAndLoad();
//Grab the mesh again if it is a sculpty/mesh as we remove it after the first mesh is built
IOpenRegionSettingsModule WSModule = Scene.RequestModuleInterface<IOpenRegionSettingsModule>();
if (WSModule != null)
{
if (WSModule.MinimumPrimScale != -1)
{
if (scale.X < WSModule.MinimumPrimScale)
scale.X = WSModule.MinimumPrimScale;
if (scale.Y < WSModule.MinimumPrimScale)
scale.Y = WSModule.MinimumPrimScale;
if (scale.Z < WSModule.MinimumPrimScale)
scale.Z = WSModule.MinimumPrimScale;
}
if (RootPart.PhysActor != null && RootPart.PhysActor.IsPhysical &&
WSModule.MaximumPhysPrimScale != -1)
{
if (scale.X > WSModule.MaximumPhysPrimScale)
scale.X = WSModule.MaximumPhysPrimScale;
if (scale.Y > WSModule.MaximumPhysPrimScale)
scale.Y = WSModule.MaximumPhysPrimScale;
if (scale.Z > WSModule.MaximumPhysPrimScale)
scale.Z = WSModule.MaximumPhysPrimScale;
}
if (WSModule.MaximumPrimScale != -1)
{
if (scale.X > WSModule.MaximumPrimScale)
scale.X = WSModule.MaximumPrimScale;
if (scale.Y > WSModule.MaximumPrimScale)
scale.Y = WSModule.MaximumPrimScale;
if (scale.Z > WSModule.MaximumPrimScale)
scale.Z = WSModule.MaximumPrimScale;
}
}
m_ValidgrpOOB = false;
SceneObjectPart part = (SceneObjectPart) GetChildPart(localID);
if (part != null)
{
part.Resize(scale);
if (part.PhysActor != null)
part.PhysActor.Size = scale;
//if (part.UUID != m_rootPart.UUID)
HasGroupChanged = true;
ScheduleGroupUpdate(PrimUpdateFlags.Shape);
}
}