diff -r 2a9601315dfc -r 98ccebc37403 javauis/amms_qt/module/inc/ammsutil.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javauis/amms_qt/module/inc/ammsutil.h Fri May 14 15:47:24 2010 +0300 @@ -0,0 +1,166 @@ +/* +* Copyright (c) 2005 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: Static general reusable methods. +* +*/ + + +#ifndef AMMSUTIL_H +#define AMMSUTIL_H + +// INCLUDES +#include +#include "ammsconstants.h" + +// FORWARD DECLARATIONS +class CMMAPlayer; +class CMMAControl; + +// CLASS DECLARATION + +/** +* Static general reusable methods. +* +* This class contains only static method which can be used in many classes. +* +* @since 3.0 +*/ +NONSHARABLE_CLASS(AMMSUtil) +{ +public: // New functions + /** + * Finds the control of a corresponding type that + * belongs to the player given as a parameter + * + * @param aPlayer The Player where to find the Control + * @param aControlName Name of the control to look for + * @param aControlType Special AMMS type of the Control + * @return Control of type aControlName or NULL if not found + */ + static CMMAControl* FindControl( + CMMAPlayer* aPlayer, + const TDesC& aControlName, + TAMMSControlTypes aControlType = EAMMSBaseControl); + + /** + * Converts vector from spherical to cartesian. + * + * @param aSphericalVector Spherical vector to be converted + * @param aCartesianVector Result cartesian vector + */ + static void FromSphericalToCartesianL( + TInt aSphericalVector[ KAMMSVectorComponents ], + TInt aCartesianVector[ KAMMSVectorComponents ]); + + /* + * Rotates a vector round the given axis. The starting point of each + * vectors is in the origo, and thus, only coordinates of the ending + * point should be given. + * + * @param aVector X, Y, and Z value of a vector to be rotated + * @param aAxisVector X, Y, and Z value of an axis vector + * @param aAngle Rotation angle in degrees + * @param aRotatedVector X, Y, and Z value of the rotated vector + */ + static void RotateVectorL(TReal aVector[ KAMMSVectorComponents ], + TReal aAxisVector[ KAMMSVectorComponents ], + TInt aAngle, + TReal aRotatedVector[ KAMMSVectorComponents ]); + + /** + * Rounds each component in the given vector. + * + * @param aVector A vector to be rounded + * @param aRoundedVector Rounded vector + */ + static void RoundVectorL(TReal aVector[ KAMMSVectorComponents ], + TInt aRoundedVector[ KAMMSVectorComponents ]); + + /** + * Multiplies the given vector by the given scalar value. + * + * @param aVector A vector to be rounded + * @param aMultiplier A multiplier + */ + static void MultiplyVector(TReal aVector[ KAMMSVectorComponents ], + TReal aMultiplier); + + /** + * Calculates vector cross product. + * @param aA A vector having KAMMSVectorComponents elements + * @param aB A vector having KAMMSVectorComponents elements + * @param aResultVector Result of the cross product + */ + static void CrossProduct(TReal aA[ KAMMSVectorComponents ], + TReal aB[ KAMMSVectorComponents ], + TReal aResultVector[ KAMMSVectorComponents ]); + + /** + * Calculates the length of the given vector. + * + * @param aVector A vector whose length is calculated + */ + static TReal VectorLengthL(TReal aVector[ KAMMSVectorComponents ]); + + /** + * Converts the given vector to the unit vector. The original vector + * is replaced by the result vector. + * + * @param aVector A vector that is converted to the unit vector and is + * replaced by the result vector + */ + static void ConvertToUnitVectorL(TReal aVector[ KAMMSVectorComponents ]); + + /** + * Checks whether two given vectors are similar according to the given + * maximum error percentage. The function compares each component in + * aA to the corresponding component in aB. + * + * @param aA A vector + * @param aB A vector + * @param aMaxComponentErrorPercentage Maximum error percentage between + * a component in aA and the corresponding component in aB + * @return ETrue if difference between each component pair is lower + * than the given error, else ETrue is returned + */ + static TBool AreVectorsSimilar(TReal aA[ KAMMSVectorComponents ], + TInt aB[ KAMMSVectorComponents ], + TInt aMaxComponentErrorPercentage); + + /** + * Returns the maximum component value in the given vector. + * + * @param aVector A vector + * @return Maximum component value in aVector + */ + static TReal MaxVectorComponent(TReal aVector[ KAMMSVectorComponents ]); + + /** + * Returns the minimum component value in the given vector. + * + * @param aVector A vector + * @return Minimum component value in aVector + */ + static TReal MinVectorComponent(TReal aVector[ KAMMSVectorComponents ]); + +private: + /** + * C++ default constructor. Private to not allow construction. + */ + AMMSUtil(); +}; + +#endif // AMMSUTIL_H + +