public static void Render_Entity(PK.ENTITY_t entity, PK.TRANSF_t view_transf, PK.TRANSF_t topol_transf) { fixed(PK.TOPOL.render_facet_o_t *facet_options = &g_facetOptions) fixed(PK.TOPOL.render_line_o_t * line_options = &g_lineOptions) { Render_Entity(entity, view_transf, topol_transf, line_options, facet_options); } }
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); } } } }