AppSrc/CDrawFaceBrowsing.cpp
author jkauppin
Fri, 15 Oct 2010 10:18:29 +0900
changeset 3 93fff7023be8
permissions -rw-r--r--
Initial version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     1
/*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     3
* All rights reserved.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     4
* This component and the accompanying materials are made available
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     6
* which accompanies this distribution, and is available
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     8
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     9
* Initial Contributors:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    11
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    12
* Contributors: Juha Kauppinen, Mika Hokkanen
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    13
* 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    14
* Description: Photo Browser
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    15
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    16
*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    17
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    18
#include "CDrawFaceBrowsing.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    19
#include "TextureLoader.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    20
#include "DrawUtility.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    21
#include "ImagicConsts.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    22
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    23
#define IS_ALMOST_ZERO (0.001)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    24
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    25
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    26
CDrawFaceBrowsing::CDrawFaceBrowsing(CImagicContainerBrowser* aContainer, TInt& aCurrentIndex):
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    27
    iContainer(aContainer)//,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    28
    //iCurrentIndex(aCurrentIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    29
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    30
    // No implementation required
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    31
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    32
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    33
CDrawFaceBrowsing::~CDrawFaceBrowsing()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    34
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    35
    iCoordinates.Close();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    36
    iFloatCoordinates.Close();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    37
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    38
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    39
CDrawFaceBrowsing* CDrawFaceBrowsing::NewLC(CImagicContainerBrowser* aContainer, TInt& aCurrentIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    40
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    41
    CDrawFaceBrowsing* self = new (ELeave) CDrawFaceBrowsing(aContainer,aCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    42
    CleanupStack::PushL(self);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    43
    self->ConstructL(aContainer,aCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    44
    return self;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    45
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    46
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    47
CDrawFaceBrowsing* CDrawFaceBrowsing::NewL(CImagicContainerBrowser* aContainer, TInt& aCurrentIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    48
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    49
    CDrawFaceBrowsing* self = CDrawFaceBrowsing::NewLC(aContainer,aCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    50
    CleanupStack::Pop(); // self;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    51
    return self;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    52
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    53
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    54
void CDrawFaceBrowsing::ConstructL(CImagicContainerBrowser* aContainer, TInt& aCurrentIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    55
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    56
    //iContainer = aContainer;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    57
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    58
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    59
void CDrawFaceBrowsing::KeyPressed()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    60
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    61
    iMenuAlpha = 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    62
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    63
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    64
void CDrawFaceBrowsing::KeyReleased()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    65
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    66
    iMenuAlpha = 0.99;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    67
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    68
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    69
void CDrawFaceBrowsing::KeyEvent()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    70
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    71
    //iMenuAlpha = 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    72
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    73
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    74
void CDrawFaceBrowsing::GetFBZoomAndLocation(TReal& aDrawZoom, TReal& aInPictureX, TReal& aInPictureY)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    75
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    76
    aDrawZoom = iDrawZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    77
    aInPictureX = iInPictureX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    78
    aInPictureY = iInPictureY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    79
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    80
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    81
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    82
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    83
void CDrawFaceBrowsing::InitFaceBrowsing()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    84
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    85
    //iFBMovingSpeed = 1.4*iContainer->iTimeDiff;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    86
    iFBMovingSpeed = 0.1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    87
    iFBRectCounter = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    88
    //iContainer->iDrawOneByOneTargetZoom=1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    89
    iDrawZoom=1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    90
    iDrawFBTargetZoom=1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    91
    iFBZoomingSpeed = 1.2*iContainer->iTimeDiff;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    92
    iDrawX=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    93
    iDrawY=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    94
    iDrawTargetX=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    95
    iDrawTargetY=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    96
    //iInPictureX, iInPictureY
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    97
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    98
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    99
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   100
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   101
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   102
// Draws FaceBrowser view
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   103
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   104
void CDrawFaceBrowsing::DrawFaceBrowsing(const TSize &aSize)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   105
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   106
    DP0_IMAGIC(_L("CDrawFaceBrowsing::DrawFaceBrowsing"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   107
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   108
    CImageData* imageData = iContainer->iIEngine->GetImageData(iContainer->GetCurrentIndex());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   109
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   110
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   111
#ifdef SUPERZOOM
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   112
    if(imageData->iGridData.iGlSuperHQTextIndex == 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   113
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   114
        TRAPD(err, iContainer->iTextureLoader->LoadL(imageData, EFullSize));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   115
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   116
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   117
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   118
    //Calculate screen size
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   119
    iContainer->CalculateImageSize(iImageWidth, iImageHeight, (float)aSize.iWidth/(float)aSize.iHeight);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   120
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   121
    if(imageData->iGridData.iRotationAngle != imageData->iGridData.iTargetRotationAngle)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   122
        iContainer->HandleRotation(imageData->iGridData.iRotationAngle, imageData->iGridData.iTargetRotationAngle);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   123
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   124
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   125
    //Interpolate current screen size into the new one
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   126
    iContainer->Interpolate(iDrawWidth, iImageWidth, 0.75);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   127
    iContainer->Interpolate(iDrawHeight, iImageHeight, 0.75);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   128
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   129
    //Set orthigonal projection
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   130
    glLoadIdentity();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   131
    glOrthof(-iDrawWidth,iDrawWidth, -iDrawHeight, iDrawHeight, -1,1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   132
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   133
    //iContainer->Interpolate(iContainer->iDisplayRotation, iContainer->iDisplayRotationTarget, 0.2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   134
    float tmp = iContainer->GetDisplayRotAngle();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   135
    iContainer->Interpolate(tmp, iContainer->GetDisplayRotTargetAngle(), 0.2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   136
    iContainer->SetDisplayRotAngle(tmp);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   137
    glRotatef(iContainer->GetDisplayRotAngle(), 0,0,1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   138
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   139
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   140
    //Handle coordinates----------------------->
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   141
    if(iFaceNro < 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   142
        iFaceNro = iCoordinates.Count()-1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   143
    if(iFaceNro >= iCoordinates.Count())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   144
        iFaceNro = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   145
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   146
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   147
    // Interpolate to new zoom value
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   148
    if( iContainer->iView->GetFaceBrowsingMode() != EFaceBrowsingShowRect )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   149
        iContainer->Interpolate(iDrawZoom, iDrawFBTargetZoom, iFBZoomingSpeed);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   150
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   151
    //Convert coordinates from corner to center of screen
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   152
    if(iCoordinates.Count() >= 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   153
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   154
        //Convert integer coords to OpenGL float coords and fill array
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   155
        for(TInt i=0; iFloatCoordinates.Count() < iCoordinates.Count();i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   156
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   157
            iFloatCoordinates.Append(ConvertCoordsFromAlgo2OGl(iCoordIndex));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   158
            iCoordIndex++;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   159
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   160
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   161
        iDrawTargetX = iFloatCoordinates[iFaceNro].iX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   162
        iDrawTargetY = iFloatCoordinates[iFaceNro].iY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   163
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   164
        //Calculate face width and use that for zooming in factor
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   165
        float faceWidth = (iCoordinates[iFaceNro].iBr.iX - iCoordinates[iFaceNro].iTl.iX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   166
        float zoomFactor = faceWidth/20;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   167
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   168
        if(iContainer->GetScreenOrientation())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   169
            iDrawFBTargetZoom = 4.6;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   170
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   171
            iDrawFBTargetZoom = 5.4;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   172
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   173
        iDrawFBTargetZoom /= zoomFactor;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   174
        if(iDrawFBTargetZoom <=1.6)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   175
            iDrawFBTargetZoom = 1.6;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   176
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   177
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   178
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   179
    /*iContainer->iTouchMoveData.iX=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   180
    iContainer->iTouchMoveData.iY=0;*///mika. to test doe this make anything at all????
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   181
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   182
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   183
    // Calculate picture size
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   184
    iContainer->CalculateImageSize(iImageWidth, iImageHeight, imageData->GetAspectRatio());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   185
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   186
    iImageWidth*=iDrawFBTargetZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   187
    iImageHeight*=iDrawFBTargetZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   188
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   189
    //Calculate location/coordinates in screen
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   190
    iInPictureX = iDrawTargetX * iDrawFBTargetZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   191
    iInPictureY = iDrawTargetY * iDrawFBTargetZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   192
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   193
    iDrawTargetX = iInPictureX / iDrawFBTargetZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   194
    iDrawTargetY = iInPictureY / iDrawFBTargetZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   195
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   196
    if(!iContainer->GetScreenOrientation())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   197
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   198
        float temp = iDrawTargetX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   199
        iDrawTargetX = iDrawTargetY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   200
        iDrawTargetY = -temp ;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   201
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   202
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   203
    // Move in picture------------------------>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   204
    if( iContainer->iView->GetFaceBrowsingMode() != EFaceBrowsingShowRect )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   205
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   206
        TInt imageRotation = 0 - (TReal)imageData->GetOrientation();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   207
        imageRotation%=360;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   208
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   209
        if(imageRotation == 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   210
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   211
            iContainer->Interpolate(iDrawX,iDrawTargetX, iFBMovingSpeed);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   212
            iContainer->Interpolate(iDrawY,iDrawTargetY, iFBMovingSpeed);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   213
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   214
        else if(imageRotation == -90)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   215
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   216
            iContainer->Interpolate(iDrawX,iDrawTargetY, iFBMovingSpeed);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   217
            iContainer->Interpolate(iDrawY,-iDrawTargetX, iFBMovingSpeed);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   218
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   219
        else if(imageRotation == -180)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   220
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   221
            iContainer->Interpolate(iDrawX,-iDrawTargetX, iFBMovingSpeed);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   222
            iContainer->Interpolate(iDrawY,-iDrawTargetY, iFBMovingSpeed);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   223
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   224
        else if(imageRotation == -270)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   225
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   226
            iContainer->Interpolate(iDrawX,-iDrawTargetY, iFBMovingSpeed);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   227
            iContainer->Interpolate(iDrawY,iDrawTargetX, iFBMovingSpeed);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   228
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   229
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   230
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   231
    iContainer->iCurrentBindedIndex = imageData->iGridData.BestImage();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   232
    glBindTexture( GL_TEXTURE_2D, iContainer->iCurrentBindedIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   233
    iContainer->SetMinMagFilterLinearDo(iContainer->iMinMagFilterSetting);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   234
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   235
    // Calculate picture vertices
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   236
    GLfixed vertices[8];
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   237
    iContainer->SetPictureVertices(imageData, vertices);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   238
    glVertexPointer( 2, GL_FIXED, 0, vertices );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   239
    glColor4f(1,1,1, 1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   240
    glPushMatrix();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   241
    glScalef(iDrawZoom, iDrawZoom, iDrawZoom);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   242
    glTranslatef(-iDrawX, iDrawY, 0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   243
    glRotatef(imageData->iGridData.iRotationAngle, 0,0,1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   244
    glDrawArrays(GL_TRIANGLE_STRIP,0,4);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   245
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   246
#ifdef RD_FACEFRAME
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   247
    if( iContainer->iView->GetFaceBrowsingMode() == EFaceBrowsingShowRect )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   248
        DrawFaceFrame(-1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   249
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   250
    if(ShowUtilities())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   251
        DrawFaceFrame(iFaceNro);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   252
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   253
    //Draw face rects for ~ 0.5s time
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   254
    if(iFBRectCounter > 6)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   255
        iContainer->iView->SetFaceBrowsingMode(EFaceBrowsing);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   256
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   257
        iFBRectCounter++;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   258
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   259
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   260
    glPopMatrix();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   261
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   262
#ifdef RD_ZOOMICON
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   263
    if(ShowUtilities())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   264
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   265
        //Draw moving direction arrays
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   266
        if(iFloatCoordinates.Count() >1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   267
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   268
            TInt imageRotation = 0 - (TReal)imageData->GetOrientation();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   269
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   270
            if(iContainer->GetScreenOrientation())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   271
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   272
                if(imageRotation == 0 || imageRotation == -180)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   273
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   274
                    iContainer->iDrawUtility->DrawMovingArrow(ETrue, EFalse, iContainer->Size());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   275
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   276
                else if(imageRotation == -90 || imageRotation == -270)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   277
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   278
                    iContainer->iDrawUtility->DrawMovingArrow(EFalse, ETrue, iContainer->Size());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   279
                    }    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   280
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   281
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   282
            if(!iContainer->GetScreenOrientation())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   283
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   284
                if(imageRotation == 0 || imageRotation == -180)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   285
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   286
                    iContainer->iDrawUtility->DrawMovingArrow(EFalse, ETrue, iContainer->Size());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   287
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   288
                else if(imageRotation == -90 || imageRotation == -270)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   289
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   290
                    iContainer->iDrawUtility->DrawMovingArrow(EFalse, ETrue, iContainer->Size());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   291
                    }    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   292
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   293
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   294
            //iContainer->iDrawUtility->DrawMovingArrow(iContainer->GetScreenOrientation(), !iContainer->GetScreenOrientation(), iContainer->Size());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   295
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   296
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   297
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   298
        iContainer->iDrawUtility->DrawZoomIcon( imageData,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   299
                                                iContainer->Size(), 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   300
                                                -iDrawX, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   301
                                                iDrawY,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   302
                                                iDrawWidth/iImageWidth, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   303
                                                iDrawHeight/iImageHeight,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   304
                                                iContainer->iView->GetFaceBrowsingMode()==EFaceBrowsing);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   305
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   306
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   307
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   308
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   309
#if 0
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   310
    if(iMenuAlpha < 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   311
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   312
        iMenuAlpha-=0.2;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   313
        if(iMenuAlpha < 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   314
            iMenuAlpha = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   315
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   316
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   317
    iContainer->iDrawUtility->DrawIcon2(iContainer->Size(), iContainer->iLoadingTextureIndex, iMenuAlpha);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   318
#endif   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   319
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   320
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   321
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   322
TBool CDrawFaceBrowsing::ShowUtilities()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   323
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   324
    CImageData* imageData = iContainer->iIEngine->GetImageData(iContainer->GetCurrentIndex());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   325
    TInt imageRotation = 0 - (TReal)imageData->GetOrientation();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   326
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   327
    if(imageRotation == -90 || imageRotation == -270)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   328
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   329
        if(Abs(iDrawX) != Abs(iDrawTargetY) || 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   330
           Abs(iDrawY) != Abs(iDrawTargetX) || 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   331
           iDrawZoom != iDrawFBTargetZoom ||
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   332
           Abs(imageData->iGridData.iRotationAngle) != Abs(imageData->iGridData.iTargetRotationAngle) )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   333
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   334
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   335
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   336
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   337
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   338
            return EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   339
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   340
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   341
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   342
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   343
        if(Abs(iDrawX) != Abs(iDrawTargetX) || 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   344
           Abs(iDrawY) != Abs(iDrawTargetY) || 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   345
           iDrawZoom != iDrawFBTargetZoom ||
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   346
           Abs(imageData->iGridData.iRotationAngle) != Abs(imageData->iGridData.iTargetRotationAngle) )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   347
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   348
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   349
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   350
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   351
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   352
            return EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   353
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   354
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   355
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   356
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   357
void CDrawFaceBrowsing::DrawFaceFrame(TInt aFace2bDrawn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   358
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   359
    DP0_IMAGIC(_L("CDrawFaceBrowsing::DrawFaceFrame++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   360
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   361
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   362
    CImageData* imageData = iContainer->iIEngine->GetImageData(iContainer->GetCurrentIndex());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   363
    RArray<TRect> facecoords;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   364
    facecoords.Reset();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   365
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   366
    //if(imageData->IsImageReady(ESize512x512))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   367
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   368
        for(TInt i=0; i< iCoordinates.Count();i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   369
            facecoords.Append(iCoordinates[i]);    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   370
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   371
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   372
        GLfixed vertices[8];
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   373
        glPushMatrix();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   374
        glDisable(GL_TEXTURE_2D);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   375
        glTranslatef(0, 0, 0.01f);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   376
        glColor4f(0,0.7,0,1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   377
        glLineWidth(3.0f);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   378
        glVertexPointer(2, GL_FIXED, 0, vertices);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   379
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   380
        for(TInt i=0; i< facecoords.Count();i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   381
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   382
            GLfixed vx = (1<<15) * Abs(facecoords[i].iBr.iX + facecoords[i].iTl.iX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   383
            GLfixed vy = (1<<15) * Abs(facecoords[i].iBr.iY + facecoords[i].iTl.iY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   384
            GLfixed fW = (1<<16) * Abs(facecoords[i].iBr.iX - facecoords[i].iTl.iX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   385
            GLfixed fH = (1<<16) * Abs(facecoords[i].iBr.iY - facecoords[i].iTl.iY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   386
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   387
            DP5_IMAGIC(_L("CDrawFaceBrowsing::DrawFaceFrame face:%d (%d,%d), W/H=%d,%d"), i, vx, vy, fW, fH);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   388
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   389
            vx /= 320; // Coords are given in 320x320 coords
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   390
            vy /= 320; // convert to OpenGL 1.0x1.0 coords
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   391
            fW /= 320;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   392
            fH /= 320;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   393
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   394
            float ar = imageData->GetAspectRatio();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   395
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   396
            if(ar > 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   397
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   398
                vx -= (1<<15);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   399
                vy -= (0.5/ar)*(1<<16);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   400
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   401
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   402
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   403
                vx -= (0.5*ar)*(1<<16);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   404
                vy -= (1<<15);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   405
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   406
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   407
            GLfixed x1 =  vx-fW/2, x2 =  vx+fW/2;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   408
            GLfixed y1 = -vy-fH/2, y2 = -vy+fH/2; // -vy since y-coord in OpenGL is so
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   409
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   410
            DP5_IMAGIC(_L("CDrawFaceBrowsing::DrawFaceFrame face:%d (%d,%d), W/H=%d,%d"), i, vx, vy, fW, fH);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   411
            DP4_IMAGIC(_L("CDrawFaceBrowsing::DrawFaceFrame xy12 (%d,%d), (%d,%d)"), x1, y1, x2, y2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   412
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   413
            vertices[0*2+0] = x1;    vertices[0*2+1] = y1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   414
            vertices[1*2+0] = x2;    vertices[1*2+1] = y1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   415
            vertices[2*2+0] = x2;    vertices[2*2+1] = y2;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   416
            vertices[3*2+0] = x1;    vertices[3*2+1] = y2;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   417
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   418
            if(i == aFace2bDrawn || aFace2bDrawn == -1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   419
                glDrawArrays(GL_LINE_LOOP,0,4);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   420
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   421
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   422
        glColor4f(1,1,1,1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   423
        glEnable(GL_TEXTURE_2D);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   424
        glPopMatrix();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   425
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   426
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   427
    DP0_IMAGIC(_L("CDrawFaceBrowsing::DrawFaceFrame--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   428
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   429
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   430
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   431
TBool CDrawFaceBrowsing::IsDrawingNeededFaceBrowsing()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   432
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   433
    CImageData* imageData = iContainer->iIEngine->GetImageData(iContainer->GetCurrentIndex());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   434
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   435
    if(Abs(iContainer->GetDisplayRotAngle() - iContainer->GetDisplayRotTargetAngle()) > 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   436
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   437
        DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 6"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   438
        iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   439
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   440
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   441
    else if(iContainer->GetDisplayRotAngle() != iContainer->GetDisplayRotTargetAngle())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   442
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   443
        DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 6.1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   444
        //iContainer->iDisplayRotation = iContainer->iDisplayRotationTarget;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   445
        iContainer->SetDisplayRotAngle(iContainer->GetDisplayRotTargetAngle());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   446
        //iContainer->iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   447
        iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   448
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   449
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   450
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   451
    if(Abs(imageData->iGridData.iRotationAngle - imageData->iGridData.iTargetRotationAngle) > 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   452
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   453
        DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 7"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   454
        iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   455
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   456
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   457
    else if(imageData->iGridData.iRotationAngle != imageData->iGridData.iTargetRotationAngle)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   458
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   459
        DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 7.1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   460
        imageData->iGridData.iRotationAngle = imageData->iGridData.iTargetRotationAngle;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   461
        iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   462
        //iContainer->iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   463
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   464
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   465
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   466
    if(Abs(iDrawZoom - iDrawFBTargetZoom) > 0.01)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   467
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   468
        DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 10"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   469
        iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   470
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   471
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   472
    else if(iDrawZoom != iDrawFBTargetZoom)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   473
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   474
        DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 10.1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   475
        iDrawZoom = iDrawFBTargetZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   476
        //iContainer->iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   477
        iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   478
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   479
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   480
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   481
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   482
    TInt imageRotation = 0 - (TReal)imageData->GetOrientation();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   483
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   484
    if(imageRotation == -90 || imageRotation == -270)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   485
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   486
        if(Abs(Abs(iDrawX)-Abs(iDrawTargetY)) > 0.001)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   487
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   488
            DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 11"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   489
            iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   490
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   491
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   492
        else if(Abs(iDrawX) != Abs(iDrawTargetY))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   493
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   494
            DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 11.1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   495
            if(iDrawX < 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   496
                iDrawX = 0-Abs(iDrawTargetY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   497
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   498
                iDrawX = Abs(iDrawTargetY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   499
            //iContainer->iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   500
            iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   501
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   502
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   503
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   504
        if(Abs(Abs(iDrawY)-Abs(iDrawTargetX)) > 0.001)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   505
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   506
            DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 12"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   507
            iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   508
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   509
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   510
        else if(Abs(iDrawY) != Abs(iDrawTargetX))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   511
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   512
            DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 12.1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   513
            if(iDrawY < 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   514
                iDrawY = 0-Abs(iDrawTargetX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   515
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   516
                iDrawY = Abs(iDrawTargetX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   517
            //iContainer->iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   518
            iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   519
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   520
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   521
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   522
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   523
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   524
        if(Abs(iDrawX-iDrawTargetX) > 0.001)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   525
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   526
            DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 11"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   527
            iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   528
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   529
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   530
        else if(iDrawX != iDrawTargetX)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   531
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   532
            DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 11.1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   533
            iDrawX = iDrawTargetX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   534
            //iContainer->iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   535
            iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   536
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   537
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   538
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   539
        if(Abs(iDrawY-iDrawTargetY) > 0.001)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   540
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   541
            DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 12"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   542
            iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   543
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   544
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   545
        else if(iDrawY != iDrawTargetY)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   546
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   547
            DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 12.1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   548
            iDrawY = iDrawTargetY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   549
            //iContainer->iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   550
            iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   551
            return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   552
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   553
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   554
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   555
    /*if(iContainer->iDrawOneMoreTime)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   556
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   557
        DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 14"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   558
        iContainer->iDrawOneMoreTime = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   559
        iContainer->SetMinMagFilterLinear(ETrue);//Draw one more time to change for Linear rendering mode
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   560
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   561
        }*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   562
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   563
    if(!iContainer->iMagFilterLinear)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   564
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   565
        DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 15"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   566
        iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   567
        //iContainer->iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   568
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   569
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   570
    if(iContainer->iDrawNow)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   571
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   572
        DP0_IMAGIC(_L("CDrawFaceBrowsing::IsDrawingNeededOneByOne - 1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   573
        /*if(iContainer->iMagGlassOn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   574
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   575
            if(!iContainer->iTouchPointThreshold)//moved >2 pixel
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   576
                iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   577
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   578
                iContainer->SetMinMagFilterLinear(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   579
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   580
        else*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   581
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   582
            iContainer->SetMinMagFilterLinear(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   583
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   584
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   585
        //iDrawOneMoreTime = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   586
        iContainer->iDrawNow = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   587
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   588
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   589
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   590
    return EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   591
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   592
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   593
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   594
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   595
// Calculate coords coords from alogorith to OpenGL -0.5 - +0.5 coords
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   596
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   597
FloatCoords CDrawFaceBrowsing::ConvertCoordsFromAlgo2OGl(const TInt aFaceIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   598
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   599
    CImageData* imageData = iContainer->iIEngine->GetImageData(iContainer->GetCurrentIndex());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   600
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   601
    TInt pictureWidth, pictureHeigth;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   602
    //We use always qvga image for Face detection
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   603
    pictureWidth=320;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   604
    pictureHeigth=320;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   605
    //landscape
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   606
    if(imageData->GetAspectRatio() > 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   607
        pictureHeigth=pictureWidth/imageData->GetAspectRatio();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   608
    else//portrait
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   609
        pictureWidth=pictureHeigth*imageData->GetAspectRatio();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   610
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   611
    //calculate midpoint from face rect
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   612
    TInt xAvegCoord = (iCoordinates[aFaceIndex].iTl.iX + iCoordinates[aFaceIndex].iBr.iX)/2;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   613
    TInt yAvegCoord = (iCoordinates[aFaceIndex].iTl.iY + iCoordinates[aFaceIndex].iBr.iY)/2;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   614
    //and then convert coordinate zero point to center of screen 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   615
    xAvegCoord-=(pictureWidth/2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   616
    yAvegCoord-=(pictureHeigth/2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   617
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   618
    //Calculate coords coords from alogorith to OpenGL -0.5 - +0.5 coords and fill the array
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   619
    FloatCoords tmp;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   620
    if(imageData->GetAspectRatio() > 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   621
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   622
        tmp.iX = (xAvegCoord * 0.5) / (pictureWidth/2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   623
        tmp.iY = (yAvegCoord * (0.5/imageData->GetAspectRatio())) / (pictureHeigth/2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   624
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   625
    else//portrait
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   626
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   627
        tmp.iX = (xAvegCoord * (0.5*imageData->GetAspectRatio())) / (pictureWidth/2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   628
        tmp.iY = (yAvegCoord * 0.5) / (pictureHeigth/2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   629
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   630
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   631
    return tmp;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   632
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   633
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   634
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   635
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   636
// Draws one by one view
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   637
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   638
void CDrawFaceBrowsing::GetFaceCoordinatesL(TRect& aRect, TFileName& aFilename)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   639
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   640
    iContainer->iImagicAppUi->GetEngine()->GetFileNameL(iContainer->GetCurrentIndex(), ESize512x512, aFilename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   641
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   642
    if(iFaceNro < iCoordinates.Count() && iFaceNro >= 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   643
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   644
        aRect.iTl.iX = iCoordinates[iFaceNro].iTl.iX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   645
        aRect.iTl.iY = iCoordinates[iFaceNro].iTl.iY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   646
        aRect.iBr.iX = iCoordinates[iFaceNro].iBr.iX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   647
        aRect.iBr.iY = iCoordinates[iFaceNro].iBr.iY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   648
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   649
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   650
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   651
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   652
// Draws one by one view
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   653
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   654
TInt CDrawFaceBrowsing::GetNumberOfFaces()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   655
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   656
    return iCoordinates.Count();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   657
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   658
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   659
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   660
// Draws one by one view
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   661
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   662
void CDrawFaceBrowsing::SetCurrentFaceNro(TInt aNro)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   663
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   664
    iFaceNro = aNro;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   665
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   666
    if(iFaceNro < 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   667
        iFaceNro = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   668
    if(iFaceNro >= iCoordinates.Count())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   669
        iFaceNro = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   670
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   671
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   672
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   673
// Gets current face nro
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   674
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   675
TInt CDrawFaceBrowsing::GetCurrentFaceNro()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   676
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   677
    return iFaceNro;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   678
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   679
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   680
void CDrawFaceBrowsing::SetFaceCoords(RArray<TRect>& aCoordinates)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   681
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   682
    ClearFaceArray();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   683
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   684
    for(TInt i = 0; i < aCoordinates.Count(); i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   685
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   686
        iCoordinates.Append(aCoordinates[i]);        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   687
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   688
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   689
    iDrawFBTargetZoom = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   690
    iFaceNro = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   691
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   692
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   693
void CDrawFaceBrowsing::ClearFaceArray()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   694
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   695
    //iCoordinates.Reset();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   696
    TInt tmp = iCoordinates.Count();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   697
    //delete array if we had old data there
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   698
    for(TInt i = 0; i < tmp; i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   699
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   700
        iCoordinates.Remove(0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   701
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   702
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   703
    tmp = iFloatCoordinates.Count();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   704
    for(TInt i = 0; i < tmp; i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   705
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   706
        iFloatCoordinates.Remove(0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   707
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   708
    iCoordIndex=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   709
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   710
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   711
TInt CDrawFaceBrowsing::GetFaceCount()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   712
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   713
    return iCoordinates.Count();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   714
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   715
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   716
void CDrawFaceBrowsing::IncFaceNumber()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   717
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   718
    iFaceNro++;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   719
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   720
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   721
void CDrawFaceBrowsing::DecFaceNumber()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   722
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   723
    iFaceNro--;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   724
    }