Changeset 7729 in orxonox.OLD for trunk/src/lib/graphics/importer
- Timestamp:
- May 19, 2006, 3:07:09 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/graphics/importer/primitive_model.cc
r6912 r7729 34 34 { 35 35 switch (type) 36 36 { 37 37 default: 38 38 case PRIM_CUBE: … … 51 51 this->planeModel(size, detail); 52 52 break; 53 53 } 54 54 this->finalize(); 55 55 } … … 79 79 // defining the Vertices 80 80 for (float i = 0; i < df *2.0; i+=1.0) 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 81 { 82 float vi = i/df * PI; 83 for (float j = -df / 2.0 +1.0; j <= df / 2.0; j+=1.0 *df/(df+1.0)) 84 { 85 float vj = j/df *PI; 86 this->addVertexNormal(cos(vi) * cos(vj), 87 sin(vj), 88 sin(vi) * cos(vj)); 89 90 this->addVertex(size * cos(vi) * cos(vj), 91 size * sin(vj), 92 size * sin(vi) * cos(vj)); 93 94 this->addVertexTexture( i / (df *2.0), 95 (j-1.0)/(df)+.5); 96 } 97 } 98 98 this->addVertex(0, -size, 0); 99 99 this->addVertexNormal(0, -1, 0); … … 106 106 unsigned int v1, v2, v3, v4; 107 107 for (int i = 0; i <= detail * 2 -1; i++) 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 108 { 109 for (int j = 0; j <= detail; j++) 110 { 111 112 v1 = i*detail + j-1; 113 v4 = i*detail + j; 114 115 if (i == detail*2 -1) 116 { 117 v2 = j-1; 118 v3 = j; 119 } 120 else 121 { 122 v2 = (i+1)*detail + j-1; 123 v3 = (i+1)*detail + j; 124 } 125 126 if (j == 0) 127 { 128 v1 = this->getVertexCount() - 2; 129 this->addFace(3, VERTEX_TEXCOORD_NORMAL, v1, v1, v1, v3, v3, v3, v4, v4, v4); 130 } 131 else if (j == detail) 132 { 133 v3 = this->getVertexCount()-1; 134 this->addFace(3, VERTEX_TEXCOORD_NORMAL, v1, v1, v1, v2, v2, v2, v3, v3, v3); 135 } 136 else 137 this->addFace(4, VERTEX_TEXCOORD_NORMAL, v1, v1, v1, v2, v2, v2, v3, v3, v3, v4, v4, v4); 138 } 139 } 140 140 } 141 141 /** … … 150 150 // defining Points of the Cylinder. 151 151 for (float phi = 0.0; phi < 2.0*PI; phi += 2.0*PI/(float)detail) 152 153 154 155 156 152 { 153 this->addVertex(size*cos(phi), size*sin(phi), -size); 154 this->addVertex(size*cos(phi), size*sin(phi), size); 155 count ++; 156 } 157 157 this->addVertex(0, 0, -size); 158 158 this->addVertex(0, 0, size); 159 159 160 160 if (count != detail) 161 { 161 162 PRINTF(1)("calculation error, count should be %d but is %d.\n", detail, count); 162 163 } 163 164 // adding Faces 164 165 for (int i = 0; i < detail-1; i++) 165 166 167 168 169 170 171 172 173 174 175 166 { 167 int p1, p2, p3, p4; 168 p1 = 2*i; 169 p2 = 2*i+1; 170 p3 = 2*i+3; 171 p4 = 2*i+2; 172 // something is wrong here 173 this->addFace(4, VERTEX_ONLY, p1, p2, p3, p4); 174 this->addFace(3, VERTEX_ONLY, p4, p1, 2*detail); 175 this->addFace(3, VERTEX_ONLY, p2, p3, 2*detail+1); 176 } 176 177 // caps 177 178 this->addFace(4, VERTEX_ONLY, 2*detail-2, 2*detail-1, 1, 0); … … 195 196 // defining the Vertices 196 197 for (float i = 0; i < df; i+=1.0) 197 198 199 200 201 202 198 { 199 float vi = i/df *2.0*PI; 200 this->addVertex(size* sin(vi), 201 -size, 202 size* cos(vi)); 203 } 203 204 204 205 //defining Faces 205 206 for (int i = 0; i < detail; i++) 206 207 208 209 210 211 212 213 214 215 207 { 208 unsigned int v1, v2; 209 v1 = i+2; 210 if (i == detail -1) 211 v2 = 2; 212 else 213 v2 = i+3; 214 this->addFace(3, VERTEX_ONLY, 0, v1, v2); 215 this->addFace(3, VERTEX_ONLY, 1, v1, v2); 216 } 216 217 } 217 218 … … 226 227 for (int i = 0; i < detail; i++) 227 228 for (int j = 0; j < detail; j++) 228 229 230 231 232 233 234 229 { 230 this->addVertex(((float)i/(float)(detail-1) -.5)*size, 231 0, 232 ((float)j/(float)(detail-1) -.5)*size); 233 this->addVertexTexture((float)i/(float)(detail-1), 234 (float)j/(float)(detail-1)); 235 } 235 236 //defining Faces 236 237 unsigned int v1, v2, v3, v4; 237 238 for (int i = 0; i < detail-1; i++) 238 239 for (int j = 0; j < detail-1; j++) 239 240 241 242 243 244 245 246 } 240 { 241 v1 = i*detail + j; 242 v2 = (i+1)*detail + j; 243 v3 = (i+1)*detail + (j+1); 244 v4 = i*detail + (j+1); 245 this->addFace(4, VERTEX_TEXCOORD, v1, v1, v2, v2, v3, v3, v4, v4); 246 } 247 }
Note: See TracChangeset
for help on using the changeset viewer.