|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
依然是菜鸟求助1 r3 w4 X" z0 ^( \/ F
我用UIStyler建立了一个按钮,那如何实现:点击该按钮后可以用鼠标选择一曲线,获得该曲线中点坐标位置,我的程序如下,但是似乎总是死循环。5 Q* S( M+ C: p) x
int GP_action_0_act_cb ( int dialog_id,1 c/ O* [+ q* }0 L$ S
void * client_data,
: C7 g( s" k$ S1 { UF_STYLER_item_value_type_p_t callback_data)
" }8 T, r1 b( g q! [: H. Q! I) L{. T+ n3 b, S. r8 M+ d. ?/ b+ C0 F
/* Make sure User Function is available. */
% @& D$ i9 c. _; h3 v# X$ r1 K& [ if ( UF_initialize() != 0) 0 W( j* X! G& q9 _/ D/ U
return ( UF_UI_CB_CONTINUE_DIALOG ); C# @- H; R' e% V2 p7 V
/* ---- Enter your callback code here ----- */( |2 d. O# {5 m2 i! ?% l, t
char message[133];% R" ]. ~* o2 r2 @
message[0]='\0'; W" M3 B/ l1 ^# q
strcpy(message, "请选择一条曲线");
1 v4 \1 @- E) ^. r. i* h( uUF_UI_selection_options_t opts;
5 f+ D" W r3 Z" _, \UF_UI_mask_t mask;
& e6 A! L4 u! n1 l* K( nint response;
& R3 L! [; E) d: S: M/ ctag_t object, view;$ h' ^1 n4 |: \) ?; s0 s3 z/ }5 Z
double cursor[3];* o" M/ I2 g2 T
int unhighlight=0;0 [9 `& W: v+ M, p
/ `7 O# v( G6 S1 v8 E5 k! yUF_initialize();
' |0 Q; }% p: X8 k/ O' iopts.other_options=0;
# M7 d& |- {+ ropts.reserved=NULL;
H; X, \$ t7 K( G; [opts.num_mask_triples=1;; q" B. j4 a5 A$ X; Y# L
opts.mask_triples=&mask;
J9 u a2 A8 X/ U3 popts.mask_triples->object_type=UF_spline_type;' V1 b: |. T5 y' K
opts.mask_triples->object_subtype=0;* p, Q( ?1 Y: z2 p. a* E
opts.mask_triples->solid_type=0;& m2 f3 C* T) Y4 P# ^+ x
opts.scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;/ d2 B) @6 U) }; x
double port[3];+ a3 U: o5 r, H# e3 U- ^
& z7 B' Y' H! w+ g9 ~8 h
do{int irc=UF_UI_select_single(message, &opts, &response, &object, cursor, &view);}
! j3 M' Q* \- y) K3 S, u5 owhile (!(response==UF_UI_OBJECT_SELECTED));
0 z1 e8 E3 O1 B( O, p! @if (response!=UF_UI_OBJECT_SELECTED)
9 F& Y2 V8 M& l* t7 s, V [: C{! j& j' P- y- o, l$ ^& F
uc1601("No Curve Selected",1);9 Q8 n1 U$ @ H# O' r: @* O
UF_terminate ();) g9 l3 a/ |6 G$ D; M: ]+ b
return (UF_UI_CB_CONTINUE_DIALOG);
! F! b( j* c- P: s4 C8 E1 P} ! j; A K% I, l0 f
+ V4 A' H1 h9 i7 }3 p: K+ Jint ret=UF_MODL_ask_curve_props(object,0.5,port,NULL,NULL,NULL,NULL,NULL);" \+ l9 D$ m2 a7 ^9 O* A
char message2[133];) F. P& r& ?$ q5 `) ~( A" |' _3 r, ?
message2[0]='\0';$ F% E( E+ f7 {9 B9 v
sprintf (message2, "曲线中点坐标为:%f,%f,%f",port[0],port[1],port[2]);: q* j2 a2 J. v3 m4 d
uc1601(message2,1);
) @2 J$ {5 T, L; ~5 F% i" \! k( C* G% Z" R0 H1 t0 K
UF_terminate ();( w! i" U5 ~2 M9 r* k
return (UF_UI_CB_CONTINUE_DIALOG);% R. r- d: P3 d
} |
|