annotate DemoCube/src/DemoCubeAppView.cpp @ 0:43361e733c66

Origination.
author Atul Varma <varmaa@toolness.com>
date Tue, 12 Feb 2008 17:18:02 -0600
parents
children 0a2b5a968ce7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1 /*=====================================================================
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3 Copyright © 2007 Nokia Corporation. All rights reserved.
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
5 ======================================================================*/
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
6
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
7 /*
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
8 ============================================================================
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
9 Name : DemoCubeAppView.cpp
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
10 Author : Nokia Computer Vision Team in NRC Palo Alto
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
11 Copyright : Your copyright notice
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
12 Description : Application view implementation
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
13 ============================================================================
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
14 */
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
15
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
16 // INCLUDE FILES
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
17 #include <coemain.h>
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
18 #include "DemoCubeAppView.h"
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
19
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
20 #include "DemoCamera.h"
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
21 #include "ncvImage.h"
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
22 #include "ncvCamus.h"
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
23 #include "ncvOpticalFlow.h"
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
24 #include "ncvEgoMovement.h"
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
25 #include "DemoCube.h"
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
26
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
27 #define PADDING_WIDTH 40
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
28 #define PADDING_HEIGHT 30
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
29
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
30 // ============================ MEMBER FUNCTIONS ===============================
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
31
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
32 // -----------------------------------------------------------------------------
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
33 // CDemoCubeAppView::NewL()
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
34 // Two-phased constructor.
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
35 // -----------------------------------------------------------------------------
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
36 //
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
37 CDemoCubeAppView* CDemoCubeAppView::NewL(const TRect& aRect, CDemoCubeAppUi* aAppUi)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
38 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
39 CDemoCubeAppView* self = new(ELeave) CDemoCubeAppView(aAppUi);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
40 CleanupStack::PushL(self);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
41 self->ConstructL(aRect);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
42 CleanupStack::Pop();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
43 return self;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
44 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
45
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
46 // -----------------------------------------------------------------------------
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
47 // CDemoCubeAppView::ConstructL()
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
48 // Symbian 2nd phase constructor can leave.
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
49 // -----------------------------------------------------------------------------
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
50 //
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
51 void CDemoCubeAppView::ConstructL( const TRect& aRect )
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
52 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
53 Reset();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
54
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
55 if ( CCamera::CamerasAvailable() ) //Yingen added for detecting camera
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
56 {//Yingen added for detecting camera
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
57 iCamera = CDemoCamera::NewL(aRect.Size() - TSize(PADDING_WIDTH, PADDING_HEIGHT), this);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
58 iCamera->Acquire();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
59
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
60 iCamusImage = CNokiaCVImage::NewL();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
61 iCamusImage->CreateL(iBitmapSize, EColor16M);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
62 }//Yingen added for detecting camera
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
63 iCube = CDemoCube::NewL(aRect);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
64 iCubePoints = new(ELeave) CArrayFixFlat<TPoint>(5);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
65 for(TInt i = 0; i < 5; i++)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
66 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
67 TPoint tmp(0, 0);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
68 iCubePoints->AppendL(tmp);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
69 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
70 // Create a window for this application view
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
71 CreateWindowL();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
72
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
73 // Set the windows size
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
74 SetRect( aRect );
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
75
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
76 // Activate the window, which makes it ready to be drawn
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
77 ActivateL();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
78 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
79
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
80 // -----------------------------------------------------------------------------
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
81 // CDemoCubeAppView::CDemoCubeAppView()
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
82 // C++ default constructor can NOT contain any code, that might leave.
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
83 // -----------------------------------------------------------------------------
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
84 //
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
85 CDemoCubeAppView::CDemoCubeAppView(CDemoCubeAppUi* aAppUi) :
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
86 iAppUi(aAppUi),
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
87 iCamera(NULL),
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
88 iCamusImage(NULL),
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
89 iBitmapSize(25, 18),
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
90 iCamus(NULL),
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
91 iOpticalFlow(NULL),
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
92 iCube(NULL)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
93 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
94 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
95
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
96 void CDemoCubeAppView::Reset()
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
97 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
98 iCubeWidth = 10;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
99 iMove.iX = 0.0;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
100 iMove.iY = 0.0;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
101 iAngle = 0.0;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
102 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
103 // -----------------------------------------------------------------------------
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
104 // CDemoCubeAppView::~CDemoCubeAppView()
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
105 // Destructor.
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
106 // -----------------------------------------------------------------------------
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
107 //
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
108 CDemoCubeAppView::~CDemoCubeAppView()
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
109 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
110 // No implementation required
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
111 if(iCamera)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
112 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
113 delete iCamera;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
114 iCamera = NULL;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
115 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
116 if(iCamusImage)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
117 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
118 delete iCamusImage;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
119 iCamusImage = NULL;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
120 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
121 if(iCamus)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
122 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
123 delete iCamus;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
124 iCamus = NULL;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
125 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
126 if(iOpticalFlow)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
127 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
128 delete iOpticalFlow;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
129 iOpticalFlow = NULL;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
130 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
131 if(iCube)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
132 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
133 delete iCube;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
134 iCube = NULL;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
135 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
136 if(iCubePoints)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
137 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
138 delete iCubePoints;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
139 iCubePoints = NULL;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
140 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
141 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
142
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
143 // -----------------------------------------------------------------------------
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
144 // CDemoCubeAppView::Draw()
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
145 // Draws the display.
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
146 // -----------------------------------------------------------------------------
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
147 //
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
148 void CDemoCubeAppView::Draw(CFbsBitmap& aBitmap, CArrayFixFlat<TPoint>* aCube) const
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
149 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
150 CWindowGc& gc = SystemGc();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
151 gc.Activate(Window());
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
152 gc.Clear();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
153 gc.BitBlt(TPoint(PADDING_WIDTH / 2, PADDING_HEIGHT / 2), &aBitmap);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
154 gc.SetPenColor(TRgb(0xff, 0, 0));
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
155 gc.DrawPolyLine(aCube);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
156 gc.Deactivate();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
157 iCoeEnv->WsSession().Flush();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
158 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
159
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
160 void CDemoCubeAppView::CameraReady()
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
161 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
162 iCamera->StartFeedL();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
163 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
164
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
165 void CDemoCubeAppView::SetCameraFrame(CFbsBitmap& aBitmap)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
166 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
167 BitmapDownScale(aBitmap);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
168
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
169 if(!iCamus)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
170 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
171 iCamus = CCamus::NewL(*iCamusImage, 5);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
172 iOpticalFlow = COpticalFlow::NewL(iCamusImage->Size());
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
173 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
174
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
175 iCamus->GetOpticalFlow(*iOpticalFlow, *iCamusImage, CAMUS_SETCAMUSOPTS(CCamus::EMedium, CCamus::EMedium, 3));
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
176 CEgoMovement mean = iOpticalFlow->Mean();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
177 iMove.iX -= mean.iX * 6.3;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
178 iMove.iY += mean.iY * 6.3;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
179 iAngle += iOpticalFlow->Rotation().Real() * 10.5;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
180
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
181 //
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
182 iCubeWidth += (TInt)(iOpticalFlow->Depth().Real() * 5);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
183 iCubeWidth = Max(2, iCubeWidth);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
184 iCubeWidth = Min(iCubeWidth, 40);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
185 //
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
186
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
187
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
188 iCube->Calculate(*iCubePoints, (TInt)iMove.iX.Real(), (TInt)iMove.iY.Real(), (TInt)iAngle, iCubeWidth);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
189
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
190 Draw(aBitmap, iCubePoints);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
191 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
192
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
193 void CDemoCubeAppView::BitmapDownScale(CFbsBitmap& aOriginal)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
194 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
195 const TInt xBlockSize = aOriginal.SizeInPixels().iWidth / iBitmapSize.iWidth;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
196 const TInt yBlockSize = aOriginal.SizeInPixels().iHeight / iBitmapSize.iHeight;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
197
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
198 TRgb color;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
199 TPoint pos(0, 0);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
200
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
201 CPixelAccess* pa = CPixelAccess::NewLC(iCamusImage);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
202
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
203
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
204 for(TInt y = 0; y < iBitmapSize.iHeight; y++)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
205 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
206 for(TInt x = 0; x < iBitmapSize.iWidth; x++)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
207 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
208 TInt red = 0;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
209 TInt green = 0;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
210 TInt blue = 0;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
211
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
212 for(TInt j = 0; j < yBlockSize; j++)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
213 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
214 for(TInt i = 0; i < xBlockSize; i++)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
215 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
216 pos.SetXY(x * xBlockSize + i, y * yBlockSize + j);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
217 aOriginal.GetPixel(color, pos);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
218 red += color.Red();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
219 green += color.Green();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
220 blue += color.Blue();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
221 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
222 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
223
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
224 pos.SetXY(x, y);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
225 pa->SetPos(pos);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
226 const TInt pixels = xBlockSize * yBlockSize;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
227 color.SetBlue(blue / pixels);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
228 color.SetGreen(green / pixels);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
229 color.SetRed(red / pixels);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
230 pa->SetRGB(color.Value());
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
231 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
232 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
233 CleanupStack::Pop(pa);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
234 delete pa;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
235 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
236
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
237 // End of File