public static void Set_Tessellation_Options(PK.TOPOL.render_line_o_t *line_options, PK.TOPOL.render_facet_go_o_t *go_options, PK.TOPOL.facet_mesh_o_t *generation_settings) { g_lineOptions = *line_options; g_facetOptions.go_option = *go_options; g_facetOptions.control = *generation_settings; CSharp_Set_Tessellation_Options(line_options, go_options, generation_settings); }
public static void Render_Entity(PK.ENTITY_t entity, PK.TRANSF_t view_transf, PK.TRANSF_t topol_transf, PK.TOPOL.render_line_o_t *line_options, PK.TOPOL.render_facet_o_t *facet_options) { PK.ERROR.code_t error; PK.CLASS_t paraClass; if (entity == PK.ENTITY_t.@null) { return; } StringBuilder setting = new StringBuilder(); HCSP.Show_One_Rendering_Option("create body segments", setting); bool merge_bodies = setting.ToString() == "on" ? true : false; HCSP.Show_One_Rendering_Option("merge faces", setting); bool merge_faces = setting.ToString() == "on" ? true : false; HCSP.Show_One_Rendering_Option("faces", setting); bool render_faces = setting.ToString() == "on" ? true : false; HCSP.Show_One_Rendering_Option("edges", setting); bool render_edges = setting.ToString() == "on" ? true : false; error = PK.ENTITY.ask_class(entity, ¶Class); if (error != PK.ERROR.code_t.no_errors) { throw new Exception("PK.ENTITY.ask_class returned: " + error.ToString()); } if (paraClass == PK.CLASS_t.assembly) { HCSP.open_assembly_internal(entity, true, 0); } else { if (render_faces && view_transf == 0) { PK.TOPOL_t entity_topol = (PK.TOPOL_t)entity; error = PK.TOPOL.render_facet(1, &entity_topol, &topol_transf, view_transf, facet_options); if (error != PK.ERROR.code_t.no_errors) { throw new Exception("PK.TOPOL.render_facet returned: " + error.ToString()); } } if (render_edges) { PK.TOPOL_t entity_topol = (PK.TOPOL_t)entity; error = PK.TOPOL.render_line(1, &entity_topol, &topol_transf, view_transf, line_options); if (error != PK.ERROR.code_t.no_errors) { throw new Exception("PK.TOPOL.render_line returned: " + error.ToString()); } } // will this necessarily be a body? if (paraClass == PK.CLASS_t.body) { insert_vertices_for_body(entity); } if (merge_faces && !merge_bodies) { if (paraClass == PK.CLASS_t.body) { HCSP.merge_body_faces_internal((int *)&entity, 1); } } } }
public static void Render_Entities(int count, PK.ENTITY_t *entities, PK.TRANSF_t view_transf, PK.TRANSF_t *topol_transf, PK.TOPOL.render_line_o_t *line_options, PK.TOPOL.render_facet_o_t *facet_options) { for (int i = 0; i < count; i++) { PK.TRANSF_t tt = topol_transf != null ? (int)topol_transf[i] : 0; Render_Entity(entities[i], view_transf, tt, line_options, facet_options); } }
public static void Show_Tessellation_Options(PK.TOPOL.render_line_o_t *line_options, PK.TOPOL.render_facet_go_o_t *go_options, PK.TOPOL.facet_mesh_o_t *generation_settings) { *line_options = g_lineOptions; *go_options = g_facetOptions.go_option; *generation_settings = g_facetOptions.control; }
private static extern void CSharp_Set_Tessellation_Options(PK.TOPOL.render_line_o_t *line_options, PK.TOPOL.render_facet_go_o_t *go_options, PK.TOPOL.facet_mesh_o_t *generation_settings);