struct MyStruct4
{
Point3d p1;
Point3d p2;
Point3d p3;
Point3d p4;
};
vector<MyStruct4>parts_bnd;
static void getpointlist(vector<MyStruct4>& points)
{
char Cue[] = "選擇實體";
char Title[] = "選擇要處理的實體";
int Scope = UF_UI_SEL_SCOPE_NO_CHANGE;
int Response;
tag_t* Object;
int count = 0;
UF_UI_select_with_class_dialog(Cue, Title, Scope, init_proc_body, NULL, &Response, &count, &Object);
if (count)
{
MyStruct4 prt;
for (size_t i = 0; i < count; i++)
{
tag_t csys_tag0 = NULL_TAG;
tag_t matrix_id0 = NULL_TAG;
double csys_origin0[3];
UF_CSYS_ask_wcs(&csys_tag0);
UF_CSYS_ask_csys_info(csys_tag0, &matrix_id0, csys_origin0);
double min_corner0[3], directions0[3][3], distances0[3];
UF_MODL_ask_bounding_box_exact(Object[i], csys_tag0, min_corner0, directions0, distances0);
Point3d poins0(min_corner0[0], min_corner0[1], min_corner0[2] + distances0[2]+1);
Point3d poins1(min_corner0[0], min_corner0[1] + distances0[1], min_corner0[2] + distances0[2]+1);
Point3d poins2(min_corner0[0] + distances0[0], min_corner0[1] + distances0[1], min_corner0[2] + distances0[2]+1);
Point3d poins3(min_corner0[0] + distances0[0], min_corner0[1], min_corner0[2] + distances0[2]+1);
prt.p1 = poins0;
prt.p2 = poins1;
prt.p3 = poins2;
prt.p4 = poins3;
parts_bnd.push_back(prt);
UF_DISP_set_highlight(Object[i],0);
}
}
}