virtual public void PreRender() { if (in_shutdown()) { return; } if (scale_needs_update) { currentDims = originalDims; currentDims.Scale(scale_x, scale_y, scale_z); Vector3f s = new Vector3f((float)scale_x, (float)scale_y, (float)scale_z); if (use_object_frame) { foreach (var obj in objects) { apply_object_scale(obj, s); } } else { foreach (var obj in objects) { apply_scene_scale(obj, s); } } //if (objects.Count == 1) { // objects[0].curLocalScale = s * objects[0].localScale; // Scene.History.PushChange( // new TransformSOChange(objects[0].SO, objects[0].curLocalScale), false); //} else { // foreach (var obj in objects) { // Frame3f f = obj.sceneFrame; // f.Origin = s * (f.Origin - sharedOriginS) + sharedOriginS; // obj.curSceneFrame = f; // obj.curLocalScale = s * obj.localScale; // Scene.History.PushChange( // new TransformSOChange(obj.SO, obj.curSceneFrame, CoordSpace.SceneCoords, obj.curLocalScale), false); // } //} scale_needs_update = false; } }