diff -r 000000000000 -r 88edb906c587 svgtopt/nvgdecoder/inc/nvgfittoviewbox.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svgtopt/nvgdecoder/inc/nvgfittoviewbox.h Wed Nov 03 18:56:10 2010 +0200 @@ -0,0 +1,169 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: NVG Decoder header file + * +*/ + +#ifndef NVGFITTOVIEWBOX_H +#define NVGFITTOVIEWBOX_H + + +#include +#include +#include +#include + + +class CNvgFitToViewBoxImpl: public CBase + { +private: + CNvgFitToViewBoxImpl(); + + /** + * @Purpose: 2 Phase Constructor + * @Version + * @parameter: None + * @return: None + */ + void ConstructL(); + + /** + * @Purpose: Destructor + * @Version + * @parameter: None + * @return: None + */ + public: + + /** + * @Purpose: 2 Phase Constructor + * @Version + * @parameter: None + * @return: None + */ + static CNvgFitToViewBoxImpl* NewL(); + + /** + * @Purpose: 2 Phase Constructor + * @Version + * @parameter: None + * @return: None + */ + static CNvgFitToViewBoxImpl* NewLC(); + + /** + * @Purpose: Constructor + * @Version + * @parameter: None + * @return: None + */ + + virtual ~CNvgFitToViewBoxImpl(); + + /** + * @Purpose: Setter function for viewbox + * @Version: + * @parameter: TRect which will be the viewbox for the content + * @return: None + */ + inline void SetViewBox(TReal avbX, TReal avbY,TReal avbW,TReal avbH); + + /** + * @Purpose: Setter function for Aligning + * @Version + * @parameter: Indicates to fit the viewport in the viewbox + * @return: None + */ + inline void SetAlign(TNvgAlignStatusType aAlignStatus); + + /** + * @Purpose: Setter function for MeetorSlice + * @Version + * @parameter: Indicates whether to streach or slice the content + * @return: None + */ + inline void SetScaling(TNvgMeetOrSliceType aMeetSlice); + + /** + * @Purpose: Setter function for Transformation matrix + * @Version + * @parameter: The first two rows of the transformation matrix + * @return: None + */ + inline void SetTransform(TReal aM00,TReal aM01,TReal aM02,TReal aM10,TReal aM11,TReal aM12); + + + /** + * @Purpose: Update the transformation matrix for Translating the + Contnet + * @Version + * @parameter: Translation components by aX, aY + coordinates + * @return: None + */ + inline void Translate(TReal aX, TReal aY); + + /** + * @Purpose: Update the transformation matrix for + Scaling the Contnet + * @Version + * @parameter: Scaling factors Sx, Sy + * @return: None + */ + inline void Scale(TReal aX, TReal aY); + + /** + * @Purpose: Calculating the transfomation matrix to + carry out the viewport to viewbox + transformation + * @Version + * @parameter: The viewport which is to be transformed + If viewbox is not defined, set the size of the viewbox + * @return: None + */ + void SetWindowViewportTrans( TRect aViewPort, TSize aSize ); + + + void Concatenate(TReal aMatrix[]); + + void Concatenate(TReal aM00, TReal aM01, TReal aM02, TReal aM10, TReal aM11, TReal aM12); + +public: + // viewbox to viewport transformation matrix + TReal iM00; + TReal iM01; + TReal iM02; + TReal iM10; + TReal iM11; + TReal iM12; + + //The viewBox onto which the content will be drawn + TReal ivbX; + TReal ivbY; + TReal ivbW; + TReal ivbH; + + //Indicate that the content has a viewbox defined + TBool iViewBoxDefined; + + //Define how to fit the content into the viewport + TNvgAlignStatusType iAlign; + + //Weather to streach or clip the content to fit it into the viewbox | + TNvgMeetOrSliceType iMeetSlice; + }; + +#include "nvgfittoviewbox.inl" +#endif +//----------------------------EndOfFile----------------------- \ No newline at end of file