コード例 #1
0
ファイル: SetDimensionsTool.cs プロジェクト: tomleetv/gsTools
        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;
            }
        }