[Libreoffice-commits] core.git: include/svx svx/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Fri Jan 24 15:04:50 UTC 2020


 include/svx/dlgctl3d.hxx       |   71 ----
 svx/source/dialog/dlgctl3d.cxx |  677 -----------------------------------------
 2 files changed, 748 deletions(-)

New commits:
commit 206e0eec816042d5631edd73da18ed16b99ea04e
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Jan 23 20:50:30 2020 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Fri Jan 24 16:04:19 2020 +0100

    Svx3DLightControl is unused
    
    Change-Id: Ibd884eea366d3a66f786fc9e52323883f2dbca89
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87299
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/include/svx/dlgctl3d.hxx b/include/svx/dlgctl3d.hxx
index 3e9fcc313869..5f19d6a5dccb 100644
--- a/include/svx/dlgctl3d.hxx
+++ b/include/svx/dlgctl3d.hxx
@@ -62,77 +62,6 @@ public:
     virtual void Set3DAttributes(const SfxItemSet& rAttr);
 };
 
-
-class SAL_WARN_UNUSED Svx3DLightControl final : public Svx3DPreviewControl
-{
-    // Callback for interactive changes
-    Link<Svx3DLightControl*,void>  maChangeCallback;
-    Link<Svx3DLightControl*,void>  maSelectionChangeCallback;
-
-    // lights
-    sal_uInt32                  maSelectedLight;
-
-    // extra objects for light control
-    E3dObject*                  mpExpansionObject;
-    E3dObject*                  mpLampBottomObject;
-    E3dObject*                  mpLampShaftObject;
-    std::vector< E3dObject* >   maLightObjects;
-
-    // 3d rotations of object
-    double                      mfRotateX;
-    double                      mfRotateY;
-    double                      mfRotateZ;
-
-    // interaction parameters
-    Point                       maActionStartPoint;
-    double                      mfSaveActionStartHor;
-    double                      mfSaveActionStartVer;
-    double                      mfSaveActionStartRotZ;
-
-    bool                        mbMouseMoved : 1;
-    bool                        mbGeometrySelected : 1;
-
-    void Construct2();
-    void ConstructLightObjects();
-    void AdaptToSelectedLight();
-    void TrySelection(Point aPosPixel);
-
-public:
-    Svx3DLightControl(vcl::Window* pParent, WinBits nStyle);
-
-    virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override;
-    virtual void MouseButtonDown(const MouseEvent& rMEvt) override;
-    virtual void Tracking( const TrackingEvent& rTEvt ) override;
-    virtual void Resize() override;
-
-    virtual void SetObjectType(SvxPreviewObjectType nType) override;
-
-    // register user callback
-    void SetChangeCallback(Link<Svx3DLightControl*,void> aNew) { maChangeCallback = aNew; }
-    void SetSelectionChangeCallback(Link<Svx3DLightControl*,void> aNew) { maSelectionChangeCallback = aNew; }
-
-    // selection checks
-    bool IsSelectionValid();
-    bool IsGeometrySelected() const { return mbGeometrySelected; }
-
-    // get/set position of selected lamp in polar coordinates, Hor:[0..360.0[ and Ver:[-90..90] degrees
-    void GetPosition(double& rHor, double& rVer);
-    void SetPosition(double fHor, double fVer);
-
-    // get/set rotation of 3D object
-    void SetRotation(double fRotX, double fRotY, double fRotZ);
-    void GetRotation(double& rRotX, double& rRotY, double& rRotZ);
-
-    void SelectLight(sal_uInt32 nLightNumber);
-    virtual void Set3DAttributes(const SfxItemSet& rAttr) override;
-    sal_uInt32 GetSelectedLight() const { return maSelectedLight; }
-
-    // light data access
-    bool GetLightOnOff(sal_uInt32 nNum) const;
-    Color GetLightColor(sal_uInt32 nNum) const;
-    basegfx::B3DVector GetLightDirection(sal_uInt32 nNum) const;
-};
-
 class SAL_WARN_UNUSED SVX_DLLPUBLIC LightControl3D final : public PreviewControl3D
 {
     // Callback for interactive changes
diff --git a/svx/source/dialog/dlgctl3d.cxx b/svx/source/dialog/dlgctl3d.cxx
index 7e76f5dff640..d73824085779 100644
--- a/svx/source/dialog/dlgctl3d.cxx
+++ b/svx/source/dialog/dlgctl3d.cxx
@@ -244,683 +244,6 @@ void PreviewControl3D::Set3DAttributes( const SfxItemSet& rAttr )
 
 static const sal_Int32 g_nInteractionStartDistance = 5 * 5 * 2;
 
-Svx3DLightControl::Svx3DLightControl(vcl::Window* pParent, WinBits nStyle)
-:   Svx3DPreviewControl(pParent, nStyle),
-    maChangeCallback(),
-    maSelectionChangeCallback(),
-    maSelectedLight(NO_LIGHT_SELECTED),
-    mpExpansionObject(nullptr),
-    mpLampBottomObject(nullptr),
-    mpLampShaftObject(nullptr),
-    maLightObjects(MAX_NUMBER_LIGHTS, nullptr),
-    mfRotateX(-20.0),
-    mfRotateY(45.0),
-    mfRotateZ(0.0),
-    maActionStartPoint(),
-    mfSaveActionStartHor(0.0),
-    mfSaveActionStartVer(0.0),
-    mfSaveActionStartRotZ(0.0),
-    mbMouseMoved(false),
-    mbGeometrySelected(false)
-{
-    Construct2();
-}
-
-void Svx3DLightControl::Construct2()
-{
-    {
-        // hide all page stuff, use control background (normally gray)
-        const Color aDialogColor(Application::GetSettings().GetStyleSettings().GetDialogColor());
-        mp3DView->SetPageVisible(false);
-        mp3DView->SetApplicationBackgroundColor(aDialogColor);
-        mp3DView->SetApplicationDocumentColor(aDialogColor);
-    }
-
-    {
-        // create invisible expansion object
-        const double fMaxExpansion(RADIUS_LAMP_BIG + RADIUS_LAMP_PREVIEW_SIZE);
-        mpExpansionObject = new E3dCubeObj(
-            *mpModel,
-            mp3DView->Get3DDefaultAttributes(),
-            basegfx::B3DPoint(-fMaxExpansion, -fMaxExpansion, -fMaxExpansion),
-            basegfx::B3DVector(2.0 * fMaxExpansion, 2.0 * fMaxExpansion, 2.0 * fMaxExpansion));
-        mpScene->InsertObject( mpExpansionObject );
-        SfxItemSet aSet(mpModel->GetItemPool());
-        aSet.Put( XLineStyleItem( drawing::LineStyle_NONE ) );
-        aSet.Put( XFillStyleItem( drawing::FillStyle_NONE ) );
-        mpExpansionObject->SetMergedItemSet(aSet);
-    }
-
-    {
-        // create lamp control object (Yellow lined object)
-        // base circle
-        const basegfx::B2DPolygon a2DCircle(basegfx::utils::createPolygonFromCircle(basegfx::B2DPoint(0.0, 0.0), RADIUS_LAMP_PREVIEW_SIZE));
-        basegfx::B3DPolygon a3DCircle(basegfx::utils::createB3DPolygonFromB2DPolygon(a2DCircle));
-        basegfx::B3DHomMatrix aTransform;
-
-        aTransform.rotate(F_PI2, 0.0, 0.0);
-        aTransform.translate(0.0, -RADIUS_LAMP_PREVIEW_SIZE, 0.0);
-        a3DCircle.transform(aTransform);
-
-        // create object for it
-        mpLampBottomObject = new E3dPolygonObj(
-            *mpModel,
-            basegfx::B3DPolyPolygon(a3DCircle));
-        mpScene->InsertObject( mpLampBottomObject );
-
-        // half circle with stand
-        basegfx::B2DPolygon a2DHalfCircle;
-        a2DHalfCircle.append(basegfx::B2DPoint(RADIUS_LAMP_PREVIEW_SIZE, 0.0));
-        a2DHalfCircle.append(basegfx::B2DPoint(RADIUS_LAMP_PREVIEW_SIZE, -RADIUS_LAMP_PREVIEW_SIZE));
-        a2DHalfCircle.append(basegfx::utils::createPolygonFromEllipseSegment(
-            basegfx::B2DPoint(0.0, 0.0), RADIUS_LAMP_PREVIEW_SIZE, RADIUS_LAMP_PREVIEW_SIZE, F_2PI - F_PI2, F_PI2));
-        basegfx::B3DPolygon a3DHalfCircle(basegfx::utils::createB3DPolygonFromB2DPolygon(a2DHalfCircle));
-
-        // create object for it
-        mpLampShaftObject = new E3dPolygonObj(
-            *mpModel,
-            basegfx::B3DPolyPolygon(a3DHalfCircle));
-        mpScene->InsertObject( mpLampShaftObject );
-
-        // initially invisible
-        SfxItemSet aSet(mpModel->GetItemPool());
-        aSet.Put( XLineStyleItem( drawing::LineStyle_NONE ) );
-        aSet.Put( XFillStyleItem( drawing::FillStyle_NONE ) );
-
-        mpLampBottomObject->SetMergedItemSet(aSet);
-        mpLampShaftObject->SetMergedItemSet(aSet);
-    }
-
-    {
-        // change camera settings
-        Camera3D rCamera  = mpScene->GetCamera();
-        const basegfx::B3DRange& rVolume = mpScene->GetBoundVolume();
-        double fW = rVolume.getWidth();
-        double fH = rVolume.getHeight();
-        double fCamZ = rVolume.getMaxZ() + ((fW + fH) / 2.0);
-
-        rCamera.SetAutoAdjustProjection(false);
-        rCamera.SetViewWindow(- fW / 2, - fH / 2, fW, fH);
-        basegfx::B3DPoint aLookAt;
-        double fDefaultCamPosZ = mp3DView->GetDefaultCamPosZ();
-        basegfx::B3DPoint aCamPos(0.0, 0.0, fCamZ < fDefaultCamPosZ ? fDefaultCamPosZ : fCamZ);
-        rCamera.SetPosAndLookAt(aCamPos, aLookAt);
-        double fDefaultCamFocal = mp3DView->GetDefaultCamFocal();
-        rCamera.SetFocalLength(fDefaultCamFocal);
-
-        mpScene->SetCamera( rCamera );
-
-        basegfx::B3DHomMatrix aNeutral;
-        mpScene->SetTransform(aNeutral);
-    }
-
-    // invalidate SnapRects of objects
-    mpScene->SetRectsDirty();
-}
-
-void Svx3DLightControl::ConstructLightObjects()
-{
-    for(sal_uInt32 a(0); a < MAX_NUMBER_LIGHTS; a++)
-    {
-        // get rid of possible existing light object
-        if(maLightObjects[a])
-        {
-            mpScene->RemoveObject(maLightObjects[a]->GetOrdNum());
-            // always use SdrObject::Free(...) for SdrObjects (!)
-            SdrObject* pTemp(maLightObjects[a]);
-            SdrObject::Free(pTemp);
-            maLightObjects[a] = nullptr;
-        }
-
-        if(GetLightOnOff(a))
-        {
-            const bool bIsSelectedLight(a == maSelectedLight);
-            basegfx::B3DVector aDirection(GetLightDirection(a));
-            aDirection.normalize();
-            aDirection *= RADIUS_LAMP_PREVIEW_SIZE;
-
-            const double fLampSize(bIsSelectedLight ? RADIUS_LAMP_BIG : RADIUS_LAMP_SMALL);
-            E3dObject* pNewLight = new E3dSphereObj(
-                *mpModel,
-                mp3DView->Get3DDefaultAttributes(),
-                basegfx::B3DPoint( 0, 0, 0 ),
-                basegfx::B3DVector( fLampSize, fLampSize, fLampSize));
-            mpScene->InsertObject(pNewLight);
-
-            basegfx::B3DHomMatrix aTransform;
-            aTransform.translate(aDirection.getX(), aDirection.getY(), aDirection.getZ());
-            pNewLight->SetTransform(aTransform);
-
-            SfxItemSet aSet(mpModel->GetItemPool());
-            aSet.Put( XLineStyleItem( drawing::LineStyle_NONE ) );
-            aSet.Put( XFillStyleItem( drawing::FillStyle_SOLID ) );
-            aSet.Put( XFillColorItem(OUString(), GetLightColor(a)));
-            pNewLight->SetMergedItemSet(aSet);
-
-            maLightObjects[a] = pNewLight;
-        }
-    }
-}
-
-void Svx3DLightControl::AdaptToSelectedLight()
-{
-    if(NO_LIGHT_SELECTED == maSelectedLight)
-    {
-        // make mpLampBottomObject/mpLampShaftObject invisible
-        SfxItemSet aSet(mpModel->GetItemPool());
-        aSet.Put( XLineStyleItem( drawing::LineStyle_NONE ) );
-        aSet.Put( XFillStyleItem( drawing::FillStyle_NONE ) );
-        mpLampBottomObject->SetMergedItemSet(aSet);
-        mpLampShaftObject->SetMergedItemSet(aSet);
-    }
-    else
-    {
-        basegfx::B3DVector aDirection(GetLightDirection(maSelectedLight));
-        aDirection.normalize();
-
-        // make mpLampBottomObject/mpLampShaftObject visible (yellow hairline)
-        SfxItemSet aSet(mpModel->GetItemPool());
-        aSet.Put( XLineStyleItem( drawing::LineStyle_SOLID ) );
-        aSet.Put( XLineColorItem(OUString(), COL_YELLOW));
-        aSet.Put( XLineWidthItem(0));
-        aSet.Put( XFillStyleItem( drawing::FillStyle_NONE ) );
-        mpLampBottomObject->SetMergedItemSet(aSet);
-        mpLampShaftObject->SetMergedItemSet(aSet);
-
-        // adapt transformation of mpLampShaftObject
-        basegfx::B3DHomMatrix aTransform;
-        double fRotateY(0.0);
-
-        if(!basegfx::fTools::equalZero(aDirection.getZ()) || !basegfx::fTools::equalZero(aDirection.getX()))
-        {
-            fRotateY = atan2(-aDirection.getZ(), aDirection.getX());
-        }
-
-        aTransform.rotate(0.0, fRotateY, 0.0);
-        mpLampShaftObject->SetTransform(aTransform);
-
-        // adapt transformation of selected light
-        E3dObject* pSelectedLight = maLightObjects[sal_Int32(maSelectedLight)];
-
-        if(pSelectedLight)
-        {
-            aTransform.identity();
-            aTransform.translate(
-                aDirection.getX() * RADIUS_LAMP_PREVIEW_SIZE,
-                aDirection.getY() * RADIUS_LAMP_PREVIEW_SIZE,
-                aDirection.getZ() * RADIUS_LAMP_PREVIEW_SIZE);
-            pSelectedLight->SetTransform(aTransform);
-        }
-    }
-}
-
-void Svx3DLightControl::TrySelection(Point aPosPixel)
-{
-    if(mpScene)
-    {
-        const Point aPosLogic(PixelToLogic(aPosPixel));
-        const basegfx::B2DPoint aPoint(aPosLogic.X(), aPosLogic.Y());
-        std::vector< const E3dCompoundObject* > aResult;
-        getAllHit3DObjectsSortedFrontToBack(aPoint, *mpScene, aResult);
-
-        if(!aResult.empty())
-        {
-            // exclude expansion object which will be part of
-            // the hits. It's invisible, but for HitTest, it's included
-            const E3dCompoundObject* pResult = nullptr;
-
-            for(auto const & b: aResult)
-            {
-                if(b && b != mpExpansionObject)
-                {
-                    pResult = b;
-                    break;
-                }
-            }
-
-            if(pResult == mp3DObj)
-            {
-                if(!mbGeometrySelected)
-                {
-                    mbGeometrySelected = true;
-                    maSelectedLight = NO_LIGHT_SELECTED;
-                    ConstructLightObjects();
-                    AdaptToSelectedLight();
-                    Invalidate();
-
-                    if(maSelectionChangeCallback.IsSet())
-                    {
-                        maSelectionChangeCallback.Call(this);
-                    }
-                }
-            }
-            else
-            {
-                sal_uInt32 aNewSelectedLight(NO_LIGHT_SELECTED);
-
-                for(sal_uInt32 a(0); a < MAX_NUMBER_LIGHTS; a++)
-                {
-                    if(maLightObjects[a] && maLightObjects[a] == pResult)
-                    {
-                        aNewSelectedLight = a;
-                    }
-                }
-
-                if(aNewSelectedLight != maSelectedLight)
-                {
-                    SelectLight(aNewSelectedLight);
-
-                    if(maSelectionChangeCallback.IsSet())
-                    {
-                        maSelectionChangeCallback.Call(this);
-                    }
-                }
-            }
-        }
-    }
-}
-
-void Svx3DLightControl::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect)
-{
-    Svx3DPreviewControl::Paint(rRenderContext, rRect);
-}
-
-void Svx3DLightControl::MouseButtonDown( const MouseEvent& rMEvt )
-{
-    bool bCallParent(true);
-
-    // switch state
-    if(rMEvt.IsLeft())
-    {
-        if(IsSelectionValid() || mbGeometrySelected)
-        {
-            mbMouseMoved = false;
-            bCallParent = false;
-            maActionStartPoint = rMEvt.GetPosPixel();
-            StartTracking();
-        }
-        else
-        {
-            // Single click without moving much trying to do a selection
-            TrySelection(rMEvt.GetPosPixel());
-            bCallParent = false;
-        }
-    }
-
-    // call parent
-    if(bCallParent)
-    {
-        Svx3DPreviewControl::MouseButtonDown(rMEvt);
-    }
-}
-
-void Svx3DLightControl::Tracking( const TrackingEvent& rTEvt )
-{
-    if(rTEvt.IsTrackingEnded())
-    {
-        if(rTEvt.IsTrackingCanceled())
-        {
-            if(mbMouseMoved)
-            {
-                // interrupt tracking
-                mbMouseMoved = false;
-
-                if(mbGeometrySelected)
-                {
-                    SetRotation(mfSaveActionStartVer, mfSaveActionStartHor, mfSaveActionStartRotZ);
-                }
-                else
-                {
-                    SetPosition(mfSaveActionStartHor, mfSaveActionStartVer);
-                }
-
-                if(maChangeCallback.IsSet())
-                {
-                    maChangeCallback.Call(this);
-                }
-            }
-        }
-        else
-        {
-            const MouseEvent& rMEvt = rTEvt.GetMouseEvent();
-
-            if(mbMouseMoved)
-            {
-                // was change interactively
-            }
-            else
-            {
-                // simple click without much movement, try selection
-                TrySelection(rMEvt.GetPosPixel());
-            }
-        }
-    }
-    else
-    {
-        const MouseEvent& rMEvt = rTEvt.GetMouseEvent();
-        Point aDeltaPos = rMEvt.GetPosPixel() - maActionStartPoint;
-
-        if(!mbMouseMoved)
-        {
-            if(sal_Int32(aDeltaPos.X() * aDeltaPos.X() + aDeltaPos.Y() * aDeltaPos.Y()) > g_nInteractionStartDistance)
-            {
-                if(mbGeometrySelected)
-                {
-                    GetRotation(mfSaveActionStartVer, mfSaveActionStartHor, mfSaveActionStartRotZ);
-                }
-                else
-                {
-                    // interaction start, save values
-                    GetPosition(mfSaveActionStartHor, mfSaveActionStartVer);
-                }
-
-                mbMouseMoved = true;
-            }
-        }
-
-        if(mbMouseMoved)
-        {
-            if(mbGeometrySelected)
-            {
-                double fNewRotX = mfSaveActionStartVer - basegfx::deg2rad(aDeltaPos.Y());
-                double fNewRotY = mfSaveActionStartHor + basegfx::deg2rad(aDeltaPos.X());
-
-                // cut horizontal
-                while(fNewRotY < 0.0)
-                {
-                    fNewRotY += F_2PI;
-                }
-
-                while(fNewRotY >= F_2PI)
-                {
-                    fNewRotY -= F_2PI;
-                }
-
-                // cut vertical
-                if(fNewRotX < -F_PI2)
-                {
-                    fNewRotX = -F_PI2;
-                }
-
-                if(fNewRotX > F_PI2)
-                {
-                    fNewRotX = F_PI2;
-                }
-
-                SetRotation(fNewRotX, fNewRotY, mfSaveActionStartRotZ);
-
-                if(maChangeCallback.IsSet())
-                {
-                    maChangeCallback.Call(this);
-                }
-            }
-            else
-            {
-                // interaction in progress
-                double fNewPosHor = mfSaveActionStartHor + static_cast<double>(aDeltaPos.X());
-                double fNewPosVer = mfSaveActionStartVer - static_cast<double>(aDeltaPos.Y());
-
-                // cut horizontal
-                fNewPosHor = NormAngle360(fNewPosHor);
-
-                // cut vertical
-                if(fNewPosVer < -90.0)
-                {
-                    fNewPosVer = -90.0;
-                }
-
-                if(fNewPosVer > 90.0)
-                {
-                    fNewPosVer = 90.0;
-                }
-
-                SetPosition(fNewPosHor, fNewPosVer);
-
-                if(maChangeCallback.IsSet())
-                {
-                    maChangeCallback.Call(this);
-                }
-            }
-        }
-    }
-}
-
-void Svx3DLightControl::Resize()
-{
-    // set size of page
-    const Size aSize(PixelToLogic(GetSizePixel()));
-    mpFmPage->SetSize(aSize);
-
-    // set position and size of scene
-    mpScene->SetSnapRect(tools::Rectangle(Point(0, 0), aSize));
-}
-
-void Svx3DLightControl::SetObjectType(SvxPreviewObjectType nType)
-{
-    // call parent
-    Svx3DPreviewControl::SetObjectType(nType);
-
-    // apply object rotation
-    if(mp3DObj)
-    {
-        basegfx::B3DHomMatrix aObjectRotation;
-        aObjectRotation.rotate(mfRotateX, mfRotateY, mfRotateZ);
-        mp3DObj->SetTransform(aObjectRotation);
-    }
-}
-
-bool Svx3DLightControl::IsSelectionValid()
-{
-    return (NO_LIGHT_SELECTED != maSelectedLight) && GetLightOnOff(maSelectedLight);
-}
-
-void Svx3DLightControl::GetPosition(double& rHor, double& rVer)
-{
-    if(IsSelectionValid())
-    {
-        basegfx::B3DVector aDirection(GetLightDirection(maSelectedLight));
-        aDirection.normalize();
-        rHor = basegfx::rad2deg(atan2(-aDirection.getX(), -aDirection.getZ()) + F_PI); // 0..360.0
-        rVer = basegfx::rad2deg(atan2(aDirection.getY(), aDirection.getXZLength())); // -90.0..90.0
-    }
-    if(IsGeometrySelected())
-    {
-        rHor = basegfx::rad2deg(mfRotateY); // 0..360.0
-        rVer = basegfx::rad2deg(mfRotateX); // -90.0..90.0
-    }
-}
-
-void Svx3DLightControl::SetPosition(double fHor, double fVer)
-{
-    if(IsSelectionValid())
-    {
-        // set selected light's direction
-        fHor = basegfx::deg2rad(fHor) - F_PI; // -PI..PI
-        fVer = basegfx::deg2rad(fVer); // -PI2..PI2
-        basegfx::B3DVector aDirection(cos(fVer) * -sin(fHor), sin(fVer), cos(fVer) * -cos(fHor));
-        aDirection.normalize();
-
-        if(!aDirection.equal(GetLightDirection(maSelectedLight)))
-        {
-            // set changed light direction at SdrScene
-            SfxItemSet aSet(mpModel->GetItemPool());
-
-            switch(maSelectedLight)
-            {
-                case 0: aSet.Put(makeSvx3DLightDirection1Item(aDirection)); break;
-                case 1: aSet.Put(makeSvx3DLightDirection2Item(aDirection)); break;
-                case 2: aSet.Put(makeSvx3DLightDirection3Item(aDirection)); break;
-                case 3: aSet.Put(makeSvx3DLightDirection4Item(aDirection)); break;
-                case 4: aSet.Put(makeSvx3DLightDirection5Item(aDirection)); break;
-                case 5: aSet.Put(makeSvx3DLightDirection6Item(aDirection)); break;
-                case 6: aSet.Put(makeSvx3DLightDirection7Item(aDirection)); break;
-                default:
-                case 7: aSet.Put(makeSvx3DLightDirection8Item(aDirection)); break;
-            }
-
-            mpScene->SetMergedItemSet(aSet);
-
-            // correct 3D light's and LampFrame's geometries
-            AdaptToSelectedLight();
-            Invalidate();
-        }
-    }
-    if(IsGeometrySelected())
-    {
-        if(mfRotateX != fVer || mfRotateY != fHor)
-        {
-            mfRotateX = basegfx::deg2rad(fVer);
-            mfRotateY = basegfx::deg2rad(fHor);
-
-            if(mp3DObj)
-            {
-                basegfx::B3DHomMatrix aObjectRotation;
-                aObjectRotation.rotate(mfRotateX, mfRotateY, mfRotateZ);
-                mp3DObj->SetTransform(aObjectRotation);
-
-                Invalidate();
-            }
-        }
-    }
-}
-
-void Svx3DLightControl::SetRotation(double fRotX, double fRotY, double fRotZ)
-{
-    if(IsGeometrySelected())
-    {
-        if(fRotX != mfRotateX || fRotY != mfRotateY || fRotZ != mfRotateZ)
-        {
-            mfRotateX = fRotX;
-            mfRotateY = fRotY;
-            mfRotateZ = fRotZ;
-
-            if(mp3DObj)
-            {
-                basegfx::B3DHomMatrix aObjectRotation;
-                aObjectRotation.rotate(mfRotateX, mfRotateY, mfRotateZ);
-                mp3DObj->SetTransform(aObjectRotation);
-
-                Invalidate();
-            }
-        }
-    }
-}
-
-void Svx3DLightControl::GetRotation(double& rRotX, double& rRotY, double& rRotZ)
-{
-    rRotX = mfRotateX;
-    rRotY = mfRotateY;
-    rRotZ = mfRotateZ;
-}
-
-void Svx3DLightControl::Set3DAttributes( const SfxItemSet& rAttr )
-{
-    // call parent
-    Svx3DPreviewControl::Set3DAttributes(rAttr);
-
-    if(maSelectedLight != NO_LIGHT_SELECTED && !GetLightOnOff(maSelectedLight))
-    {
-        // selected light is no more active, select new one
-        maSelectedLight = NO_LIGHT_SELECTED;
-    }
-
-    // local updates
-    ConstructLightObjects();
-    AdaptToSelectedLight();
-    Invalidate();
-}
-
-void Svx3DLightControl::SelectLight(sal_uInt32 nLightNumber)
-{
-    if(nLightNumber > 7)
-    {
-        nLightNumber = NO_LIGHT_SELECTED;
-    }
-
-    if(NO_LIGHT_SELECTED != nLightNumber)
-    {
-        if(!GetLightOnOff(nLightNumber))
-        {
-            nLightNumber = NO_LIGHT_SELECTED;
-        }
-    }
-
-    if(nLightNumber != maSelectedLight)
-    {
-        maSelectedLight = nLightNumber;
-        mbGeometrySelected = false;
-        ConstructLightObjects();
-        AdaptToSelectedLight();
-        Invalidate();
-    }
-}
-
-bool Svx3DLightControl::GetLightOnOff(sal_uInt32 nNum) const
-{
-    if(nNum <= 7)
-    {
-        const SfxItemSet aLightItemSet(Get3DAttributes());
-
-        switch(nNum)
-        {
-            case 0 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTON_1).GetValue();
-            case 1 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTON_2).GetValue();
-            case 2 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTON_3).GetValue();
-            case 3 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTON_4).GetValue();
-            case 4 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTON_5).GetValue();
-            case 5 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTON_6).GetValue();
-            case 6 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTON_7).GetValue();
-            case 7 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTON_8).GetValue();
-        }
-    }
-
-    return false;
-}
-
-Color Svx3DLightControl::GetLightColor(sal_uInt32 nNum) const
-{
-    if(nNum <= 7)
-    {
-        const SfxItemSet aLightItemSet(Get3DAttributes());
-
-        switch(nNum)
-        {
-            case 0 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTCOLOR_1).GetValue();
-            case 1 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTCOLOR_2).GetValue();
-            case 2 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTCOLOR_3).GetValue();
-            case 3 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTCOLOR_4).GetValue();
-            case 4 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTCOLOR_5).GetValue();
-            case 5 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTCOLOR_6).GetValue();
-            case 6 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTCOLOR_7).GetValue();
-            case 7 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTCOLOR_8).GetValue();
-        }
-    }
-
-    return COL_BLACK;
-}
-
-basegfx::B3DVector Svx3DLightControl::GetLightDirection(sal_uInt32 nNum) const
-{
-    if(nNum <= 7)
-    {
-        const SfxItemSet aLightItemSet(Get3DAttributes());
-
-        switch(nNum)
-        {
-            case 0 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_1).GetValue();
-            case 1 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_2).GetValue();
-            case 2 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_3).GetValue();
-            case 3 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_4).GetValue();
-            case 4 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_5).GetValue();
-            case 5 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_6).GetValue();
-            case 6 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_7).GetValue();
-            case 7 : return aLightItemSet.Get(SDRATTR_3DSCENE_LIGHTDIRECTION_8).GetValue();
-        }
-    }
-
-    return basegfx::B3DVector();
-}
-
 LightControl3D::LightControl3D()
 :   maChangeCallback(),
     maSelectionChangeCallback(),


More information about the Libreoffice-commits mailing list