Referenced by rt_nmg_edisk(), rt_nmg_idisk(), rt_nurb_print_pt_type(), and rt_nurb_to_poly(). Referenced by isect_ray_snurb_face(), nmg_cnurb_is_linear(), nmg_cnurb_to_vlist(), nmg_dup_face(), nmg_edge_g_cnurb(), nmg_eval_linear_trim_curve(), nmg_eval_trim_curve(), nmg_face_g_snurb(), nmg_pr_eg(), nmg_pr_fg(), nmg_snurb_calc_lu_uv_orient(), nmg_snurb_is_planar(), nmg_snurb_to_vlist(), rt_clip_cnurb(), rt_cnurb_par_edge(), rt_join_cnurbs(), rt_nmg_export_fastf(), rt_nmg_import_fastf(), rt_nurb_bytes(), rt_nurb_c_bound(), rt_nurb_c_diff(), rt_nurb_c_eval(), rt_nurb_c_print(), rt_nurb_c_refine(), rt_nurb_c_split(), rt_nurb_c_xsplit(), rt_nurb_clip_srf(), rt_nurb_crv_copy(), rt_nurb_crv_flat(), rt_nurb_crv_in_range(), rt_nurb_describe(), rt_nurb_grans(), rt_nurb_import5(), rt_nurb_intersect(), rt_nurb_map_oslo(), rt_nurb_mesh_diff(), rt_nurb_new_cnurb(), rt_nurb_new_snurb(), rt_nurb_par_edge(), rt_nurb_pbound(), rt_nurb_plot(), rt_nurb_plot_cnurb(), rt_nurb_plot_snurb(), rt_nurb_pr_mesh(), rt_nurb_reverse_srf(), rt_nurb_s_bound(), rt_nurb_s_diff(), rt_nurb_s_eval(), rt_nurb_s_flat(), rt_nurb_s_refine(), rt_nurb_s_xsplit(), rt_nurb_scopy(), rt_nurb_tcladjust(), rt_nurb_uv_dist(), rt_process_caseb(), and rt_trim_case(). NMG_CK_SNURB(_p) BU_CKMAG(_p, RT_SNURB_MAGIC, "snurb") ![]() NMG_CK_CNURB(_p) BU_CKMAG(_p, RT_CNURB_MAGIC, "cnurb") NMG_CK_KNOT(_p) BU_CKMAG(_p, RT_KNOT_VECTOR_MAGIC, "knot_vector") RT_NURB_STRIDE(pt) (RT_NURB_EXTRACT_COORDS(pt) * sizeof( fastf_t)) We made a couple direct edits to OpenNURBS that are a pain to reapply every time we update their sources - those should be extricated and reworked too.Define surface and curve structures for Non Rational Uniform B-Spline (NURB) curves and surfaces. Ideally, our mods and extensions to the OpenNURBS API should be consolidated together, refactored, and made into a proper overlay so that our binding layer is easier to debug, develop, and maintain. We extended the OpenNURBS API but in an unclean non-reusable way. The other objective is to clean up the code. Profile and go to town while ensuring you don't break anything. One glaring optimization point currently is a slow ray tracing "prep" but even ray tracing "shot" could be significantly improved. One of the main objectives of this project is to improve performance. ![]() We started, however, by focusing on just getting it to work correctly and robustly before shifting gears towards optimization and cleanup. Our rendering support was based on research in 2006 that demonstrated that you could indeed perform exceptionally fast NURBS ray-tracing. Our implementation leverages the OpenNURBS API (from the Rhino3D folks) and implements many of the most useful portions of the API that they removed. Technically, this is our second attempt, which was considerably more successful than our first! We now have comprehensive import support (via step-g and 3dm-g) and robust ray tracing. BRL-CAD has support implemented for NURBS boundary representation geometry.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |