--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiaccelerator_plat/alf_visual_api/inc/alf/alfmeshvisual.h Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,182 @@
+/*
+* Copyright (c) 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: ?Description
+*
+*/
+
+
+
+#ifndef C_ALFMESHVISUAL_H
+#define C_ALFMESHVISUAL_H
+
+#include <alf/alfvisual.h>
+#include <alf/alfmesh.h>
+
+class TAlfImage;
+class CAlfControl;
+class CAlfLayout;
+class CAlfProceduralMesh;
+class CAlfM3GMesh;
+
+/**
+ * Mesh visual
+ *
+ * Mesh visual allows integration of 3D shapes (meshes) with the user interface.
+ * The mesh visual always contains one CAlfMesh - derived concrete mesh implementation.
+ * By default the mesh visual contains a CAlfProceduralMesh object. The concrete
+ * mesh object can be queried through the Mesh() - interface and can be recreated
+ * using the CreateMeshL() - interface.
+ *
+ * Usage:
+ * @code
+ * //Create Mesh Visual
+ * CAlfMeshVisual* meshVisual = CAlfMeshVisual::AddNewL( control );
+ *
+ * //Create M3GMesh and get it
+ * meshVisual->CreateMeshL( EAlfMeshTypeM3G );
+ * CAlfM3GMesh* m3gmesh = mMeshVisual->M3GMesh();
+ *
+ * //Create ProceduralMesh and get it
+ * meshVisual->CreateMeshL( EAlfMeshTypeProcedural );
+ * CAlfProceduralMesh* proceduralmesh = mMeshVisual->ProceduralMesh();
+ *
+ * //Set MeshVisual Yaw angle
+ * TAlfTimedValue tv( 2 );
+ * tv.setTarget( 20, 500 );
+ * meshVisual->SetYawAngle( tv );
+
+ * @endcode
+ *
+ * @see CAlfM3GMesh
+ * @see CAlfProceduralMesh
+ *
+ * @lib alfclient.lib
+ * @since S60 v3.2
+ */
+class CAlfMeshVisual : public CAlfVisual
+ {
+public:
+
+ /**
+ * Constructor, which gives ownership to the control.
+ *
+ * @param aOwnerControl The control
+ * @param aParentLayout If given, the parent layout.
+ * @return New instance. Ownership NOT transreffed (owned by control)
+ */
+ IMPORT_C static CAlfMeshVisual* AddNewL(CAlfControl& aOwnerControl,
+ CAlfLayout* aParentLayout = 0);
+
+ /**
+ * Constructor.
+ */
+ IMPORT_C CAlfMeshVisual();
+
+ /**
+ * Second-phase constructor.
+ */
+ IMPORT_C void ConstructL(CAlfControl& aOwner);
+
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CAlfMeshVisual();
+
+ /* Methods. */
+ /**
+ * Creates CAlfMesh - derived object and attaches it to this CAlfMeshVisual.
+ * This method will destroy the mesh object that was contained in this
+ * mesh visual before. The created mesh object can be queried through
+ * Mesh() - method.
+ *
+ * @param aMeshType Concrete mesh type to be created. Possible values are
+ * e.g EAlfMeshTypeProcedural and EAlfMeshTypeM3G.
+ *
+ */
+ IMPORT_C void CreateMeshL(TInt aMeshType);
+
+ IMPORT_C void SetImage(const TAlfImage& aImage);
+ IMPORT_C const TAlfImage& Image() const;
+
+ /**
+ * Secondary image is used for crossfading.
+ */
+ IMPORT_C void SetSecondaryImage(const TAlfImage& aImage);
+ IMPORT_C const TAlfImage& SecondaryImage() const;
+
+ IMPORT_C void SetSpecularImage(const TAlfImage& aImage);
+ IMPORT_C const TAlfImage& SpecularImage() const;
+
+ /**
+ * Returns the mesh object contained in this mesh visual.
+ *
+ * @return Mesh.
+ */
+ IMPORT_C CAlfMesh& Mesh();
+
+ /**
+ * Returns pointer to the procedural mesh contained in this mesh visual.
+ * If contained mesh isn't a procedural mesh, NULL is returned.
+ *
+ * @return Pointer to the procedural mesh.
+ */
+ IMPORT_C CAlfProceduralMesh* ProceduralMesh() const;
+
+ /**
+ * Returns pointer to the M3G mesh contained in this mesh visual.
+ * If contained mesh isn't an M3G mesh, NULL is returned.
+ *
+ * @return Pointer to the M3G mesh.
+ */
+ IMPORT_C CAlfM3GMesh* M3GMesh() const;
+
+ IMPORT_C TAlfTimedValue SecondaryAlpha() const;
+ IMPORT_C void SetSecondaryAlpha( const TAlfTimedValue& aSecondaryAlpha );
+
+ IMPORT_C TAlfTimedValue YawAngle() const;
+ IMPORT_C void SetYawAngle( const TAlfTimedValue& aYawAngle );
+
+ IMPORT_C TAlfTimedValue PitchAngle() const;
+ IMPORT_C void SetPitchAngle( const TAlfTimedValue& aPitchAngle );
+
+ IMPORT_C TAlfTimedValue Scale() const;
+ IMPORT_C void SetScale( const TAlfTimedValue& aScale );
+
+ /**
+ * From CAlfVisual
+ * @see CAlfVisual
+ */
+ IMPORT_C void RemoveAndDestroyAllD();
+ IMPORT_C void UpdateChildrenLayout(TInt aTransitionTime = 0);
+ IMPORT_C CAlfVisual* FindTag(const TDesC8& aTag);
+
+
+protected:
+ /**
+ * From CAlfVisual
+ * @see CAlfVisual
+ */
+ IMPORT_C void DoRemoveAndDestroyAllD();
+ IMPORT_C void PropertyOwnerExtension(const TUid& aExtensionUid, TAny** aExtensionParams);
+
+
+private:
+
+ struct TMeshVisualPrivateData;
+ TMeshVisualPrivateData* iMeshVisualData;
+
+ };
+
+
+#endif // C_ALFMESHVISUAL_H