+ return 0;
+ }
+
+ int count = 0;
+ _CHECK_IO(fread(&count, sizeof(count), 1, file));
+
+ float x1, y1, z1, x2, y2, z2, x3, y3, z3;
+ for (int i = 0; i < count; ++i) {
+ _CHECK_IO(fread(&x1, sizeof(float), 1, file));
+ _CHECK_IO(fread(&y1, sizeof(float), 1, file));
+ _CHECK_IO(fread(&z1, sizeof(float), 1, file));
+ _CHECK_IO(fread(&x2, sizeof(float), 1, file));
+ _CHECK_IO(fread(&y2, sizeof(float), 1, file));
+ _CHECK_IO(fread(&z2, sizeof(float), 1, file));
+ _CHECK_IO(fread(&x3, sizeof(float), 1, file));
+ _CHECK_IO(fread(&y3, sizeof(float), 1, file));
+ _CHECK_IO(fread(&z3, sizeof(float), 1, file));
+ tri_t* t = tri_alloc(
+ vert_new2((scal_t)x1, (scal_t)y1, (scal_t)z1),
+ vert_new2((scal_t)x2, (scal_t)y2, (scal_t)z2),
+ vert_new2((scal_t)x3, (scal_t)y3, (scal_t)z3)
+ );
+ _CHECK_IO(fread(&x1, sizeof(float), 1, file));
+ _CHECK_IO(fread(&y1, sizeof(float), 1, file));
+ _CHECK_IO(fread(&z1, sizeof(float), 1, file));
+ _CHECK_IO(fread(&x2, sizeof(float), 1, file));
+ _CHECK_IO(fread(&y2, sizeof(float), 1, file));
+ _CHECK_IO(fread(&z2, sizeof(float), 1, file));
+ _CHECK_IO(fread(&x3, sizeof(float), 1, file));
+ _CHECK_IO(fread(&y3, sizeof(float), 1, file));
+ _CHECK_IO(fread(&z3, sizeof(float), 1, file));
+ t->a.n = vec_new((scal_t)x1, (scal_t)y1, (scal_t)z1);
+ t->b.n = vec_new((scal_t)x2, (scal_t)y2, (scal_t)z2);
+ t->c.n = vec_new((scal_t)x3, (scal_t)y3, (scal_t)z3);
+
+ list_push2(l, t, mem_free);