annotate DemoCube/src/DemoCube.cpp @ 5:f546bb5370c7 default tip

Added a readme and a TODO in the source code.
author Atul Varma <varmaa@toolness.com>
date Tue, 12 Feb 2008 19:09:21 -0600
parents 43361e733c66
children
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 : DemoCube.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 : Main application class
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 <eikstart.h>
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
18 #include <e32math.h>
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
19 #include "DemoCubeApplication.h"
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
20 #include "DemoCube.h"
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
21
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
22 LOCAL_C CApaApplication* NewApplication()
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
23 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
24 return new CDemoCubeApplication;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
25 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
26
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
27 GLDEF_C TInt E32Main()
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
28 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
29 return EikStart::RunApplication( NewApplication );
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
30 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
31
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
32 CDemoCube* CDemoCube::NewL(const TRect& aRect)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
33 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
34 CDemoCube* self = new(ELeave) CDemoCube(aRect);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
35 CleanupStack::PushL(self);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
36 self->ConstructL();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
37 CleanupStack::Pop();
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
38 return self;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
39 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
40
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
41 CDemoCube::CDemoCube(const TRect& aRect) :
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
42 iRect(aRect)
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
43 {
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 void CDemoCube::ConstructL()
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
47 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
48 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
49
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
50 CDemoCube::~CDemoCube()
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
51 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
52 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
53
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
54 void CDemoCube::Calculate(CArrayFixFlat<TPoint>& aPoints, const TInt aX, const TInt aY, const TInt aAngle, const TInt aCubeWidth) const
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
55 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
56 const TPoint pos(iRect.iTl.iX + iRect.Width() / 2 + aX, iRect.iTl.iY + iRect.Height() / 4 + aY);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
57 aPoints.At(0).SetXY(pos.iX + aCubeWidth * CosL(45.0 + aAngle), pos.iY + aCubeWidth * SinL(45.0 + aAngle));
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
58 aPoints.At(1).SetXY(pos.iX + aCubeWidth * CosL(135.0 + aAngle), pos.iY + aCubeWidth * SinL(135.0 + aAngle));
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
59 aPoints.At(2).SetXY(pos.iX + aCubeWidth * CosL(225.0 + aAngle), pos.iY + aCubeWidth * SinL(225.0 + aAngle));
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
60 aPoints.At(3).SetXY(pos.iX + aCubeWidth * CosL(315.0 + aAngle), pos.iY + aCubeWidth * SinL(315.0 + aAngle));
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
61 aPoints.At(4) = aPoints.At(0);
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
62 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
63
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
64 inline TReal CDemoCube::SinL(const TInt aAngle) const
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
65 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
66 TReal sine;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
67 TReal radian = static_cast<TReal>(aAngle % 360) / 180 * KPi;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
68 User::LeaveIfError(Math::Sin(sine, radian));
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
69 return sine;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
70 }
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
71
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
72 inline TReal CDemoCube::CosL(const TInt aAngle) const
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
73 {
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
74 TReal cosine;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
75 TReal radian = static_cast<TReal>(aAngle % 360) / 180 * KPi;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
76 User::LeaveIfError(Math::Cos(cosine, radian));
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
77 return cosine;
43361e733c66 Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
78 }