204 {
206 "{}/meshes/map{:03}{:02}{:02}.obj",
207 dataPath,
208 mapID, tileY, tileX
209 );
210
211 FILE* objFile = fopen(objFileName.c_str(), "wb");
212 if (!objFile)
213 {
214 char message[1024];
215 sprintf(message, "Failed to open %s for writing!\n", objFileName.c_str());
216 perror(message);
217 return;
218 }
219
220 G3D::Array<float> allVerts;
221 G3D::Array<int> allTris;
222
223 allTris.append(meshData.liquidTris);
224 allVerts.append(meshData.liquidVerts);
226 allVerts.append(meshData.solidVerts);
227
228 float* verts = allVerts.getCArray();
229 int vertCount = allVerts.size() / 3;
230 int* tris = allTris.getCArray();
231 int triCount = allTris.size() / 3;
232
233 for (int i = 0; i < allVerts.size() / 3; i++)
234 fprintf(objFile, "v %f %f %f\n", verts[i * 3], verts[i * 3 + 1], verts[i * 3 + 2]);
235
236 for (int i = 0; i < allTris.size() / 3; i++)
237 fprintf(objFile, "f %i %i %i\n", tris[i * 3] + 1, tris[i * 3 + 1] + 1, tris[i * 3 + 2] + 1);
238
239 fclose(objFile);
240
241 char tileString[25];
242 sprintf(tileString, "[%02u,%02u]: ", tileY, tileX);
243 printf("%sWriting debug output... \r", tileString);
244
246 "{}/meshes/{:03}.map",
247 dataPath,
248 mapID
249 );
250
251 objFile = fopen(objFileName.c_str(), "wb");
252 if (!objFile)
253 {
254 char message[1024];
255 sprintf(message, "Failed to open %s for writing!\n", objFileName.c_str());
256 perror(message);
257 return;
258 }
259
260 char b = '\0';
261 fwrite(&b, sizeof(char), 1, objFile);
262 fclose(objFile);
263
265 "{}/meshes/{:03}{:02}{:02}.mesh",
266 dataPath,
267 mapID, tileY, tileX
268 );
269
270 objFile = fopen(objFileName.c_str(), "wb");
271 if (!objFile)
272 {
273 char message[1024];
274 sprintf(message, "Failed to open %s for writing!\n", objFileName.c_str());
275 perror(message);
276 return;
277 }
278
279 fwrite(&vertCount, sizeof(int), 1, objFile);
280 fwrite(verts, sizeof(float), vertCount * 3, objFile);
281 fflush(objFile);
282
283 fwrite(&triCount, sizeof(int), 1, objFile);
284 fwrite(tris, sizeof(int), triCount * 3, objFile);
285 fflush(objFile);
286
287 fclose(objFile);
288 }
static void copyIndices(std::vector< VMAP::MeshTriangle > &source, G3D::Array< int > &dest, int offest, bool flip)
Definition TerrainBuilder.cpp:863
std::string StringFormat(FormatString< Args... > fmt, Args &&... args)
Default AC string format function.
Definition StringFormat.h:34