📄 3dobjects.h
字号:
/*
============================================================================
* Name : 3DObjects.h
* Part of : Example3D
* Description : Definition of 3DObjects
* Copyright (c) 2005 Nokia Corporation
============================================================================
*/
#ifndef __3DOBJECTS_H__
#define __3DOBJECTS_H__
/*
* 3D objects are defined by vertices and faces
* vertices are x,y,z coordinates in 3D-space
* faces are triangles with indexes to vertices
* and texture coordinates x1,y1,x2,y2,x3,y3
* faces must define triangle vertices to be
* clockwise arranged because of backface culling
* ( only one side of face is visible
*
*/
//
// Car 3D object
//
const TInt KNumCarVertices = 18;
const TInt KNumCarFaces = 24;
const TInt KCarVertexData[] = {
-600,-500,-250, // box right side
100,-500,-250,
100, 000,-250,
-600, 000,-250,
-600,-500, 250, // box left side
100,-500, 250,
100, 000, 250,
-600, 000, 250,
100,-300,-250, // windscreen low
100,-300, 250,
200,-200,-200, // enginebox right
500,-200,-200,
500, 0,-200,
200, 0,-200,
200,-200, 200, // enginebox right
500,-200, 200,
500, 0, 200,
200, 0, 200,
};
const TInt KCarFaceData[] = {
0,4,5, 5,10, 5,5, 12,5, // box top
0,5,1, 5,10, 12,5, 12,10,
0,1,2, 0,0, 7,0, 7,5, // box left
0,2,3, 0,0, 7,5, 0,5,
5,4,7, 7,0, 0,0, 0,5, // box right
5,7,6, 7,0, 0,5, 7,5,
4,0,3, 0,5, 5,5, 5,10, // box back
4,3,7, 0,5, 5,10, 0,10,
1,5,9, 7,0, 12,0, 12,2, // windscreen
1,9,8, 7,0, 12,2, 7,2,
9,14,10, 11,2, 12,2, 12,3, // box->enginebox joint top
9,10,8, 11,2, 12,3, 11,3,
8,10,13, 7,2, 8,3, 8,5, // right
8,13,2, 7,2, 8,5, 7,5,
14,9,6, 8,3, 7,2, 7,5, // left
14,6,17, 8,3, 7,5, 8,5,
14,15,11, 8,2, 11,2, 11,3, // enginebox top
14,11,10, 8,2, 11,3, 8,3,
10,11,12, 8,3, 11,3, 11,5, // right
10,12,13, 8,3, 11,5, 8,5,
15,14,17, 11,3, 8,3, 8,5, // left
15,17,16, 11,3, 8,5, 11,5,
11,15,16, 11,3, 12,3, 12,5, // front
11,16,12, 11,3, 12,5, 11,5
};
//
// Road 3D object
//
const TInt KNumRoadVertices = 9;
const TInt KNumRoadFaces = 8;
const TInt KRoadVertexData[] =
{
-1500,0,-1500,
-1500,0,0,
-1500,0,1500,
0,0,-1500,
0,0,0,
0,0,1500,
1500,0,-1500,
1500,0,0,
1500,0,1500
};
const TInt KRoadFaceData[] =
{
0,1,4, 128,128, 192,128, 192,192,
0,4,3, 128,128, 192,192, 128,192,
1,2,5, 192,128, 255,128, 255,192,
1,5,4, 192,128, 255,192, 192,192,
3,4,7, 128,192, 192,192, 192,255,
3,7,6, 128,192, 192,255, 128,255,
4,5,8, 192,192, 255,192, 255,255,
4,8,7, 192,192, 255,255, 192,255
};
//
// Grass 3D object
//
const TInt KNumGrassVertices = 4;
const TInt KNumGrassFaces = 2;
const TInt KGrassVertexData[] = {
-1500, 0, -1500,
-1500, 0, 1500,
1500, 0, 1500,
1500, 0, -1500
};
const TInt KGrassFaceData[] = {
0,1,2, 128,128, 255,128, 255,255,
0,2,3, 128,128, 255,255, 128,255
};
//
// House 3D object
//
const TInt KNumHouseVertices = 8;
const TInt KNumHouseFaces = 10;
const TInt KHouseVertexData[] = {
-1500, -5000, -1500,
-1500, -5000, 1500,
1500, -5000, 1500,
1500, -5000, -1500,
-1500, 0, -1500,
-1500, 0, 1500,
1500, 0, 1500,
1500, 0, -1500
};
const TInt KHouseFaceData[] = {
0,1,2, 0,0, 127,0, 127,127,
0,2,3, 0,0, 127,127, 0,127,
0,3,7, 0,128, 127,128, 127,255,
0,7,4, 0,128, 127,255, 0,255,
2,1,5, 0,128, 127,128, 127,255,
2,5,6, 0,128, 127,255, 0,255,
3,2,6, 0,128, 127,128, 127,255,
3,6,7, 0,128, 127,255, 0,255,
1,0,4, 0,128, 127,128, 127,255,
1,4,5, 0,128, 127,255, 0,255,
};
//
// Tilemapped city
// x = grass
// a = house
// 0-3 = road east, south, west, north
//
const TInt KMapWidth = 16;
const TInt KMapHeight = 32;
const TUint8 KMap[KMapHeight][KMapHeight+1]={
"xxxxxxxxxxxxxxxx",
"xxxxxxxxxxxxxxxx",
"xx30000000000xxx",
"xx3xxxx1xxxx1xxx",
"xx3x3000001x1xxx",
"xx3x3a1a1a1x1xxx",
"xx3x3000001x1xxx",
"xx303a1a1a101xxx",
"xx3x3000001x1xxx",
"xx3x3a1a1a1x1xxx",
"xx3x3222221x1xxx",
"xx3xxxx1xxxx1xxx",
"xx32222222221xxx",
"xxxxxxxxxxxxxxxx",
"xxxxxxxxxxxxxxxx",
"xxxxxxxxxxxxxxxx",
"xxxxxxxxxxxxxxxx",
"xxxxxxxxxxxxxxxx",
"xx30000000000xxx",
"xx3xxxx1xxxx1xxx",
"xx3x3000001x1xxx",
"xx3x3a1a1a1x1xxx",
"xx3x3000001x1xxx",
"xx303a1a1a101xxx",
"xx3x3000001x1xxx",
"xx3x3a1a1a1x1xxx",
"xx3x3222221x1xxx",
"xx3xxxx1xxxx1xxx",
"xx32222222221xxx",
"xxxxxxxxxxxxxxxx",
"xxxxxxxxxxxxxxxx",
"xxxxxxxxxxxxxxxx"
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -