X-Git-Url: https://harrygodden.com/git/?p=convexer.git;a=blobdiff_plain;f=cxr%2Fcxr.h;fp=cxr%2Fcxr.h;h=a6643131f6f26656657e7e6441c9311c96531944;hp=c3f7d868d71262110ce28bb89089e4f2c0a8cb28;hb=23283f27eb4a14456ba00dc05e83bf19ad71b1a6;hpb=bf8765905390844abea94bfa7113a017740b253e diff --git a/cxr/cxr.h b/cxr/cxr.h index c3f7d86..a664313 100644 --- a/cxr/cxr.h +++ b/cxr/cxr.h @@ -280,7 +280,8 @@ enum cxr_soliderr k_soliderr_degenerate_implicit, k_soliderr_non_coplanar_vertices, k_soliderr_non_convex_poly, - k_soliderr_bad_result + k_soliderr_bad_result, + k_soliderr_invalid_input }; /* @@ -2278,6 +2279,16 @@ CXR_API void cxr_free_tri_mesh( cxr_tri_mesh *mesh ) CXR_API cxr_world *cxr_decompose( cxr_static_mesh *src, i32 *perrcode ) { + /* Make sure data is in the mesh and isn't empty */ + if( !src->edge_count || !src->loop_count || !src->poly_count ) + { + cxr_log( "Error %d\n", k_soliderr_invalid_input ); + if( perrcode ) + *perrcode = k_soliderr_invalid_input; + + return NULL; + } + u32 error = 0x00; cxr_world *world = malloc( sizeof(*world) );