Main Page | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals

pge::meshfactory Namespace Reference


Functions

Triangle createTriangle (Texture *texture, Vector3f a, Vector3f b, Vector3f c, Vector2f aUV, Vector2f bUV, Vector2f cUV)
Triangle createTriangle (Vector3f a, Vector3f b, Vector3f c, Vector2f aUV, Vector2f bUV, Vector2f cUV)
MeshcreateCuboid (Vector3f minCorner, Vector3f maxCorner)


Function Documentation

Mesh* createCuboid Vector3f  minCorner,
Vector3f  maxCorner
[static]
 

Definition at line 69 of file MeshFactory.h.

References pge::Mesh::addTriangle(), createTriangle(), and pge::Vector3f::m_v.

00069                                                                                   {
00070                         SingleTexturedMesh *mesh = new SingleTexturedMesh();
00071                         Vector3f points[8];
00072 
00073 
00074                         points[0] = Vector3f(minCorner.m_v[0], minCorner.m_v[1], minCorner.m_v[2]);
00075                         points[1] = Vector3f(maxCorner.m_v[0], minCorner.m_v[1], minCorner.m_v[2]);
00076                         points[2] = Vector3f(maxCorner.m_v[0], maxCorner.m_v[1], minCorner.m_v[2]);
00077                         points[3] = Vector3f(minCorner.m_v[0], maxCorner.m_v[1], minCorner.m_v[2]);
00078 
00079                         points[4] = Vector3f(minCorner.m_v[0], minCorner.m_v[1], maxCorner.m_v[2]);
00080                         points[5] = Vector3f(maxCorner.m_v[0], minCorner.m_v[1], maxCorner.m_v[2]);
00081                         points[6] = Vector3f(maxCorner.m_v[0], maxCorner.m_v[1], maxCorner.m_v[2]);
00082                         points[7] = Vector3f(minCorner.m_v[0], maxCorner.m_v[1], maxCorner.m_v[2]);
00083 
00084                         // Front and back
00085                         mesh->addTriangle(createTriangle(points[0], points[1], points[2], Vector2f(0.0f,
00086                                 0.0f), Vector2f(0.0f, 1.0f), Vector2f(1.0f, 1.0f)));
00087                         mesh->addTriangle(createTriangle(points[0], points[2], points[3], Vector2f(0.0f,
00088                                 0.0f), Vector2f(1.0f, 1.0f), Vector2f(1.0f, 0.0f)));
00089                         mesh->addTriangle(createTriangle(points[4], points[5], points[6], Vector2f(0.0f,
00090                                 0.0f), Vector2f(0.0f, 1.0f), Vector2f(1.0f, 1.0f)));
00091                         mesh->addTriangle(createTriangle(points[4], points[6], points[7], Vector2f(0.0f,
00092                                 0.0f), Vector2f(1.0f, 1.0f), Vector2f(1.0f, 0.0f)));
00093 
00094                         // Left and right
00095                         mesh->addTriangle(createTriangle(points[0], points[4], points[7], Vector2f(0.0f,
00096                                 0.0f), Vector2f(0.0f, 1.0f), Vector2f(1.0f, 1.0f)));
00097                         mesh->addTriangle(createTriangle(points[0], points[7], points[3], Vector2f(0.0f,
00098                                 0.0f), Vector2f(1.0f, 1.0f), Vector2f(1.0f, 0.0f)));
00099                         mesh->addTriangle(createTriangle(points[5], points[1], points[2], Vector2f(0.0f,
00100                                 0.0f), Vector2f(0.0f, 1.0f), Vector2f(1.0f, 1.0f)));
00101                         mesh->addTriangle(createTriangle(points[5], points[2], points[6], Vector2f(0.0f,
00102                                 0.0f), Vector2f(1.0f, 1.0f), Vector2f(1.0f, 0.0f)));
00103 
00104                         // Top and bottom
00105                         mesh->addTriangle(createTriangle(points[7], points[6], points[2], Vector2f(0.0f,
00106                                 0.0f), Vector2f(0.0f, 1.0f), Vector2f(1.0f, 1.0f)));
00107                         mesh->addTriangle(createTriangle(points[7], points[2], points[3], Vector2f(0.0f,
00108                                 0.0f), Vector2f(1.0f, 1.0f), Vector2f(1.0f, 0.0f)));
00109                         mesh->addTriangle(createTriangle(points[4], points[5], points[1], Vector2f(0.0f,
00110                                 0.0f), Vector2f(0.0f, 1.0f), Vector2f(1.0f, 1.0f)));
00111                         mesh->addTriangle(createTriangle(points[4], points[1], points[0], Vector2f(0.0f,
00112                                 0.0f), Vector2f(1.0f, 1.0f), Vector2f(1.0f, 0.0f)));
00113                         return mesh;
00114                 }

Here is the call graph for this function:

Triangle createTriangle Vector3f  a,
Vector3f  b,
Vector3f  c,
Vector2f  aUV,
Vector2f  bUV,
Vector2f  cUV
[static]
 

Definition at line 47 of file MeshFactory.h.

References pge::Triangle::m_plane, pge::Triangle::m_texCoords, pge::Triangle::m_texture, and pge::Triangle::m_vertices.

00047                                                                                                                              {
00048                         Triangle triangle;
00049 
00050                         triangle.m_vertices[0] = a;
00051                         triangle.m_vertices[1] = b;
00052                         triangle.m_vertices[2] = c;
00053 
00054                         // Set texcoords.
00055                         triangle.m_texCoords[0] = aUV;
00056                         triangle.m_texCoords[1] = bUV;
00057                         triangle.m_texCoords[2] = cUV;
00058 
00059                         triangle.m_plane = new Plane(a, b, c);
00060                         triangle.m_texture = TextureDatabase::getInstance()->getDefaultTexture();
00061 
00062                         return triangle;
00063                 }

Triangle createTriangle Texture *  texture,
Vector3f  a,
Vector3f  b,
Vector3f  c,
Vector2f  aUV,
Vector2f  bUV,
Vector2f  cUV
[static]
 

Definition at line 22 of file MeshFactory.h.

References pge::Triangle::m_plane, pge::Triangle::m_texCoords, pge::Triangle::m_texture, and pge::Triangle::m_vertices.

Referenced by createCuboid().

00022                                                                                                                                                {
00023                         Triangle triangle;
00024 
00025                         triangle.m_vertices[0] = a;
00026                         triangle.m_vertices[1] = b;
00027                         triangle.m_vertices[2] = c;
00028 
00029                         // Set texcoords.
00030                         triangle.m_texCoords[0] = aUV;
00031                         triangle.m_texCoords[1] = bUV;
00032                         triangle.m_texCoords[2] = cUV;
00033 
00034                         triangle.m_plane = new Plane(a, b, c);
00035                         if(texture != NULL) {
00036                                 triangle.m_texture = texture;
00037                         } else {
00038                                 triangle.m_texture = TextureDatabase::getInstance()->getDefaultTexture();
00039                         }
00040 
00041                         return triangle;
00042                 }


Generated on Mon Oct 16 12:10:01 2006 for Phobosengine by doxygen 1.3.4