|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
依然是菜鸟求助
. Y* a, X( h) F0 h. }, R我用UIStyler建立了一个按钮,那如何实现:点击该按钮后可以用鼠标选择一曲线,获得该曲线中点坐标位置,我的程序如下,但是似乎总是死循环。' I; H* C) F1 C" O5 P
int GP_action_0_act_cb ( int dialog_id,
- ^7 E# o& T' ~/ H( r) G void * client_data," f* ~/ I2 j/ _/ n
UF_STYLER_item_value_type_p_t callback_data)1 x p# x" q6 o" I
{6 @/ G. \+ ^& L, C; V( [
/* Make sure User Function is available. */
8 m; a+ H1 I6 k/ v2 W7 Q if ( UF_initialize() != 0)
$ B+ w4 Q) ^2 D [9 M6 v+ I$ m return ( UF_UI_CB_CONTINUE_DIALOG );
2 o- l3 q* ?6 m5 [2 J7 l /* ---- Enter your callback code here ----- */' h' R& |2 M0 w
char message[133];
& L4 ~. ^# B$ f g8 o) x# vmessage[0]='\0';
@& E) b6 K K: E2 b- ]& V1 e6 s6 istrcpy(message, "请选择一条曲线");2 e; Y3 }8 L; u# o. [( Q9 R
UF_UI_selection_options_t opts;7 Y' Q9 m7 j' w* w
UF_UI_mask_t mask;
& g2 ^( Y( Y( H# ], D8 g2 e( hint response;
6 d) p9 H- v3 N3 Ztag_t object, view;
3 _9 `8 j* V8 S+ F( Mdouble cursor[3];( J0 G, }. [6 B- \
int unhighlight=0;
5 y+ v4 g3 A8 c. z1 `+ n
' L+ N! X9 L" m$ a' \3 m. ZUF_initialize();
8 \6 \) g$ Z1 q7 ~. c4 [opts.other_options=0;
9 {' K+ F6 ]7 V% c V( p, Oopts.reserved=NULL;6 C9 p4 x; l$ V) m" d
opts.num_mask_triples=1;
: R S3 c& i7 L. U- {( B8 m2 Vopts.mask_triples=&mask;
) z$ e) F8 Q1 S" C. p( H$ J* u2 @opts.mask_triples->object_type=UF_spline_type;9 [7 m3 q" b2 ]8 U
opts.mask_triples->object_subtype=0;5 q- m6 W& ?$ \# p0 H% k3 }
opts.mask_triples->solid_type=0;5 z. s9 [6 X7 N
opts.scope=UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;, C _* z. n/ W7 S: n
double port[3];
6 P: a! x/ W7 A! ^! k2 _
) ?2 m: Z4 f8 ddo{int irc=UF_UI_select_single(message, &opts, &response, &object, cursor, &view);}
6 s( b, L* W1 ]. T4 ]9 @5 twhile (!(response==UF_UI_OBJECT_SELECTED));
& {; w4 ?5 S4 v' t! f6 w( Oif (response!=UF_UI_OBJECT_SELECTED)5 F C8 w \5 _' K; d
{& o/ ~: y4 k2 k# S3 s. Q1 ]
uc1601("No Curve Selected",1);
1 s6 J( a2 u7 T- jUF_terminate ();) }% Q1 \2 K' ~5 t4 j6 E9 q
return (UF_UI_CB_CONTINUE_DIALOG);
4 I, o+ |1 p5 Q$ M5 v} ( ^ V4 ~/ I) E$ X/ y
9 {( P7 e2 q) Y7 Z% M2 `
int ret=UF_MODL_ask_curve_props(object,0.5,port,NULL,NULL,NULL,NULL,NULL);
4 T* m @) X7 v) r B char message2[133];) a2 C( l" i9 {+ r
message2[0]='\0';/ u# W) b% ~8 b+ p( k' R. N
sprintf (message2, "曲线中点坐标为:%f,%f,%f",port[0],port[1],port[2]);" u4 ]/ x. u; `5 F2 E
uc1601(message2,1);
. [) k; [1 F/ D
* S/ o( M" O# r, Z$ W% QUF_terminate ();; Q0 _2 `, g* d" a8 i
return (UF_UI_CB_CONTINUE_DIALOG);
3 O P/ v3 `1 t% N& i } |
|