|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
依然是菜鸟求助8 a1 R F1 S; e! o* P `& g
我用UIStyler建立了一个按钮,那如何实现:点击该按钮后可以用鼠标选择一曲线,获得该曲线中点坐标位置,我的程序如下,但是似乎总是死循环。
( J' i9 u0 g& F& O( Dint GP_action_0_act_cb ( int dialog_id,
+ ]/ H7 t4 e0 w# ?9 T void * client_data,% q! y9 d" w! A: [* v J+ K
UF_STYLER_item_value_type_p_t callback_data)
" z$ U0 y4 N/ ?3 X" {6 [" ~! r+ ]3 \{
1 r8 ?, i9 u9 W, ` /* Make sure User Function is available. */
t# {# o, s2 u' _$ p& J$ F if ( UF_initialize() != 0)
u k& j: U* Q return ( UF_UI_CB_CONTINUE_DIALOG );
! G9 X& k% n9 ]1 S* d [/ B6 A /* ---- Enter your callback code here ----- */0 K9 K- [; o3 S5 Y2 o$ J- ?# M
char message[133];
* u- Y) \; R& g; K jmessage[0]='\0';; x! W( u! Y8 D1 S5 a0 c6 g
strcpy(message, "请选择一条曲线");+ x! O+ X0 p! F, u: i: M: A& z
UF_UI_selection_options_t opts;
2 V0 u+ F! a- ]6 P3 u2 I% FUF_UI_mask_t mask;7 y5 E3 V: C8 N" F! o1 {
int response;; }1 l+ @; ]1 D& c2 q( b- G
tag_t object, view;
! T8 j: d0 P* X* \! j bdouble cursor[3];3 Z1 G, a% K7 q+ J
int unhighlight=0;
: {+ k% t- ^6 ` I7 C: G5 z4 a+ Q, G, F2 D: Z) o$ i' a! ^3 H. G5 ?
UF_initialize(); ]/ B9 T! ^2 t- z: d, X
opts.other_options=0;( b. i; n6 m7 J
opts.reserved=NULL;
( [( T d1 b' k/ ]! X4 ?5 |( ~opts.num_mask_triples=1;
+ Y; K) D; F% gopts.mask_triples=&mask;. B; J# ]7 {. [7 m) r: [
opts.mask_triples->object_type=UF_spline_type;/ n: X. M( o, ]* O# ?7 G* z0 S: h$ B
opts.mask_triples->object_subtype=0;
( Z5 c+ F0 m( p* ]0 U# h* S/ O7 I3 bopts.mask_triples->solid_type=0;
* Y7 [8 J! P* d8 copts.scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;& k+ `0 Z6 A/ h0 O% h5 Z
double port[3];
3 @/ {! r) w @9 s3 ~- i& a) H" N- u+ Y; f. X
do{int irc=UF_UI_select_single(message, &opts, &response, &object, cursor, &view);}8 d9 Q; a0 K+ E' ?
while (!(response==UF_UI_OBJECT_SELECTED));
) O" }) N+ e$ P+ T& Lif (response!=UF_UI_OBJECT_SELECTED)8 e0 R7 \5 _' O) N% E. n# B0 p
{
0 i+ J+ |7 b s# a) Yuc1601("No Curve Selected",1);
$ F# X6 E5 s1 `- ?UF_terminate ();
" l) Q7 S- Y, V) Q8 ]/ s, Ereturn (UF_UI_CB_CONTINUE_DIALOG);
. `2 G/ \& z6 X4 m; X}
# a. A/ v+ q8 v
4 b. S2 |* T/ t p% d6 _% Zint ret=UF_MODL_ask_curve_props(object,0.5,port,NULL,NULL,NULL,NULL,NULL);7 U i1 J, [: n9 h- n
char message2[133];* [6 S, L6 Q/ W/ |! M
message2[0]='\0';9 S" U" o$ L: [, M, [7 J
sprintf (message2, "曲线中点坐标为:%f,%f,%f",port[0],port[1],port[2]);
6 o, ^! p0 T' v3 n1 Z3 Y5 B uc1601(message2,1);. [+ g7 [" Y6 j- i3 H( Y
9 l8 h; v5 x9 G
UF_terminate ();# z3 V: T! g" j( I" h/ B
return (UF_UI_CB_CONTINUE_DIALOG);
. b: y( Z9 Q2 y0 V6 D6 \ } |
|