summaryrefslogtreecommitdiff
path: root/sd/source/ui/slidesorter/controller/SlsAnimationFunction.cxx
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-01-28 20:53:50 +0100
committerMichael Stahl <mstahl@redhat.com>2012-01-28 20:53:50 +0100
commit0e1042f42101dd2a7407a38d204de6f4de28890a (patch)
tree9e9f67205cd5b72f1031721273e1534a3a1e5b0f /sd/source/ui/slidesorter/controller/SlsAnimationFunction.cxx
parent8377f5594498d5378d67c8a3e06b5e14b0051fb4 (diff)
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'sd/source/ui/slidesorter/controller/SlsAnimationFunction.cxx')
-rw-r--r--sd/source/ui/slidesorter/controller/SlsAnimationFunction.cxx294
1 files changed, 0 insertions, 294 deletions
diff --git a/sd/source/ui/slidesorter/controller/SlsAnimationFunction.cxx b/sd/source/ui/slidesorter/controller/SlsAnimationFunction.cxx
deleted file mode 100644
index ae84a40c0..000000000
--- a/sd/source/ui/slidesorter/controller/SlsAnimationFunction.cxx
+++ /dev/null
@@ -1,294 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "precompiled_sd.hxx"
-#include "controller/SlsAnimationFunction.hxx"
-#include "model/SlsPageDescriptor.hxx"
-#include "view/SlideSorterView.hxx"
-
-
-#include <osl/diagnose.hxx>
-#include <rtl/math.hxx>
-
-namespace sd { namespace slidesorter { namespace controller {
-
-
-double AnimationFunction::Linear (const double nTime)
-{
- OSL_ASSERT(nTime>=0.0 && nTime<=1.0);
- return nTime;
-}
-
-
-
-
-double AnimationFunction::FastInSlowOut_Sine (const double nTime)
-{
- OSL_ASSERT(nTime>=0.0 && nTime<=1.0);
-
- const double nResult (sin(nTime * M_PI/2));
-
- OSL_ASSERT(nResult>=0.0 && nResult<=1.0);
- return nResult;
-}
-
-
-
-
-double AnimationFunction::FastInSlowOut_Root (const double nTime)
-{
- OSL_ASSERT(nTime>=0.0 && nTime<=1.0);
-
- const double nResult (sqrt(nTime));
-
- OSL_ASSERT(nResult>=0.0 && nResult<=1.0);
- return nResult;
-}
-
-
-
-
-double AnimationFunction::SlowInSlowOut_0to0_Sine (const double nTime)
-{
- OSL_ASSERT(nTime>=0.0 && nTime<=1.0);
-
- const double nResult (sin(nTime * M_PI));
-
- OSL_ASSERT(nResult>=0.0 && nResult<=1.0);
- return nResult;
-}
-
-
-
-
-double AnimationFunction::Vibrate_Sine (const double nTime)
-{
- return sin(nTime*M_PI*8);
-}
-
-
-
-
-Point AnimationFunction::ScalePoint (const Point& rPoint, const double nTime)
-{
- return Point(
- sal_Int32(::rtl::math::round(rPoint.X() * nTime)),
- sal_Int32(::rtl::math::round(rPoint.Y() * nTime)));
-}
-
-
-
-
-double AnimationFunction::Blend (
- const double nStartValue,
- const double nEndValue,
- const double nTime)
-{
- return nStartValue*(1-nTime) + nEndValue*nTime;
-}
-
-
-
-
-void AnimationFunction::ApplyVisualStateChange (
- const model::SharedPageDescriptor& rpDescriptor,
- view::SlideSorterView& rView,
- const double nTime)
-{
- if (rpDescriptor)
- {
- rpDescriptor->GetVisualState().SetVisualStateBlend(nTime);
- rView.RequestRepaint(rpDescriptor);
- }
-}
-
-
-
-
-void AnimationFunction::ApplyLocationOffsetChange (
- const model::SharedPageDescriptor& rpDescriptor,
- view::SlideSorterView& rView,
- const Point aLocationOffset)
-{
- if (rpDescriptor)
- {
- const Rectangle aOldBoundingBox(rpDescriptor->GetBoundingBox());
- rpDescriptor->GetVisualState().SetLocationOffset(aLocationOffset);
- rView.RequestRepaint(aOldBoundingBox);
- rView.RequestRepaint(rpDescriptor);
- }
-}
-
-
-
-
-void AnimationFunction::ApplyButtonAlphaChange(
- const model::SharedPageDescriptor& rpDescriptor,
- view::SlideSorterView& rView,
- const double nButtonAlpha,
- const double nButtonBarAlpha)
-{
- if (rpDescriptor)
- {
- rpDescriptor->GetVisualState().SetButtonAlpha(nButtonAlpha);
- rpDescriptor->GetVisualState().SetButtonBarAlpha(nButtonBarAlpha);
- rView.RequestRepaint(rpDescriptor);
- }
-}
-
-
-
-
-//===== AnimationBezierFunction ===============================================
-
-AnimationBezierFunction::AnimationBezierFunction (
- const double nX1,
- const double nY1,
- const double nX2,
- const double nY2)
- : mnX1(nX1),
- mnY1(nY1),
- mnX2(nX2),
- mnY2(nY2)
-{
-}
-
-
-
-
-AnimationBezierFunction::AnimationBezierFunction (
- const double nX1,
- const double nY1)
- : mnX1(nX1),
- mnY1(nY1),
- mnX2(1-nY1),
- mnY2(1-nX1)
-{
-}
-
-
-
-
-::basegfx::B2DPoint AnimationBezierFunction::operator() (const double nT)
-{
- return ::basegfx::B2DPoint(
- EvaluateComponent(nT, mnX1, mnX2),
- EvaluateComponent(nT, mnY1, mnY2));
-}
-
-
-
-
-double AnimationBezierFunction::EvaluateComponent (
- const double nT,
- const double nV1,
- const double nV2)
-{
- const double nS (1-nT);
-
- // While the control point values 1 and 2 are explicitly given the start
- // and end values are implicitly given.
- const double nV0 (0);
- const double nV3 (1);
-
- const double nV01 (nS*nV0 + nT*nV1);
- const double nV12 (nS*nV1 + nT*nV2);
- const double nV23 (nS*nV2 + nT*nV3);
-
- const double nV012 (nS*nV01 + nT*nV12);
- const double nV123 (nS*nV12 + nT*nV23);
-
- const double nV0123 (nS*nV012 + nT*nV123);
-
- return nV0123;
-}
-
-
-
-
-//===== AnimationParametricFunction ===========================================
-
-AnimationParametricFunction::AnimationParametricFunction (const ParametricFunction& rFunction)
- : maY()
-{
- const sal_Int32 nSampleCount (64);
-
- // Sample the given parametric function.
- ::std::vector<basegfx::B2DPoint> aPoints;
- aPoints.reserve(nSampleCount);
- for (sal_Int32 nIndex=0; nIndex<nSampleCount; ++nIndex)
- {
- const double nT (nIndex/double(nSampleCount-1));
- aPoints.push_back(basegfx::B2DPoint(rFunction(nT)));
- }
-
- // Interpolate at evenly spaced points.
- maY.clear();
- maY.reserve(nSampleCount);
- double nX0 (aPoints[0].getX());
- double nY0 (aPoints[0].getY());
- double nX1 (aPoints[1].getX());
- double nY1 (aPoints[1].getY());
- sal_Int32 nIndex (1);
- for (sal_Int32 nIndex2=0; nIndex2<nSampleCount; ++nIndex2)
- {
- const double nX (nIndex2 / double(nSampleCount-1));
- while (nX > nX1 && nIndex<nSampleCount)
- {
- nX0 = nX1;
- nY0 = nY1;
- nX1 = aPoints[nIndex].getX();
- nY1 = aPoints[nIndex].getY();
- ++nIndex;
- }
- const double nU ((nX-nX1) / (nX0 - nX1));
- const double nY (nY0*nU + nY1*(1-nU));
- maY.push_back(nY);
- }
-}
-
-
-
-
-double AnimationParametricFunction::operator() (const double nX)
-{
- const sal_Int32 nIndex0 (static_cast<sal_Int32>(nX * maY.size()));
- const double nX0 (nIndex0 / double(maY.size()-1));
- const sal_uInt32 nIndex1 (nIndex0 + 1);
- const double nX1 (nIndex1 / double(maY.size()-1));
-
- if (nIndex0<=0)
- return maY[0];
- else if (sal_uInt32(nIndex0)>=maY.size() || nIndex1>=maY.size())
- return maY[maY.size()-1];
-
- const double nU ((nX-nX1) / (nX0 - nX1));
- return maY[nIndex0]*nU + maY[nIndex1]*(1-nU);
-}
-
-
-} } } // end of namespace ::sd::slidesorter::controller