--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgtopt/nvgdecoder/inc/nvgfittoviewbox.h Thu Jan 07 16:19:02 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 <e32std.h>
+#include <e32base.h>
+#include <VG/openvg.h>
+#include <nvg.h>
+
+
+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