void recv_delete_mesh(void) { int i = recv_index(); int j = recv_index(); delete_mesh(i, j); }
int main() { struct Mesh mesh = plum_loader("examples/example.plum"); printf("\n"); printf("This is a C program loading C++ shared library libplumloader.\n"); printf("Vertex count: %zu\n", mesh.vertex_count); printf("Face count: %zu\n", mesh.face_count); printf("Vertex array:\n"); for (size_t i=0; i<mesh.vertex_count; i++) { float* v = mesh.vertex_array[i]; printf("%f %f %f\n", v[0], v[1], v[2]); } printf("\n"); printf("Face array:\n"); for (size_t i=0; i<mesh.face_count; i++) { int size = mesh.face_array[i][0]; for (int j=0; j<size; j++) printf("%d ",mesh.face_array[i][j+1]); printf("\n"); } printf("\n"); delete_mesh(mesh); }
void send_delete_mesh(int i, int j) { send_event(EVENT_DELETE_MESH); send_index(i); send_index(j); delete_mesh(i, j); }
MeshID ResourceManagerImpl::new_mesh_with_alias_as_rectangle(const unicode& alias, float width, float height, const Vec2& offset, kglt::MaterialID material, bool garbage_collect) { MeshID m = new_mesh_as_rectangle(width, height, offset, material, garbage_collect); try { MeshManager::manager_store_alias(alias, m); } catch(...) { delete_mesh(m); throw; } return m; }
MeshID ResourceManagerImpl::new_mesh_with_alias_as_sphere(const unicode& alias, float diameter, bool garbage_collect) { MeshID m = new_mesh_as_sphere(diameter, garbage_collect); try { MeshManager::manager_store_alias(alias, m); } catch(...) { delete_mesh(m); throw; } return m; }
MeshID ResourceManagerImpl::new_mesh_with_alias_from_file(const unicode& alias, const unicode& path, bool garbage_collect) { MeshID m = new_mesh_from_file(path, garbage_collect); try { MeshManager::manager_store_alias(alias, m); } catch(...) { delete_mesh(m); throw; } return m; }
MeshID ResourceManagerImpl::new_mesh_with_alias_as_cylinder(const unicode &alias, float diameter, float length, int segments, int stacks, bool garbage_collect) { MeshID m = new_mesh_as_cylinder(diameter, length, segments, stacks, garbage_collect); try { MeshManager::manager_store_alias(alias, m); } catch(...) { delete_mesh(m); throw; } return m; }