|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
$ M4 X1 {5 |9 v9 H: c/ g! L
) y: `% U3 e1 Z
NX二次开发源码分享: 高亮镜像Wave linked的面
) k( `$ O) d5 f. k S" T2 u2 `) N1 c2 k+ Q' T
static void highlight_mirrored_face(tag_t face)
9 E6 w4 z9 d0 S( A, y4 n{6 c& U& L4 Y5 M5 ^4 F1 s. c
int
& ?8 A" [8 n4 ]6 k) w ii,/ N4 \, X w4 m( e' n3 R0 U( n
jj,- i7 O4 i! K9 g5 N' {" i
n_feats,4 B' D- t5 |/ x6 O2 x
n_items;3 f0 [9 @/ k5 N( [6 e! p
char1 J) p0 z- r. Z1 x* k. D6 E3 l/ c, w
*feat_type;
4 ]9 i$ j8 b' _; E tag_t' p( n5 k) k* i( X: j
*feats,
$ H# I, }. ?- n- J+ s mirror,
1 h0 I5 s% [* q8 C* E5 F *results,
5 o- j5 t6 ?3 q, r4 d4 l *sources;4 M% X( j8 q) K2 S+ P* W/ m1 I
0 q1 B# M [3 L1 ~! e8 P n_feats = ask_face_feats(face, &feats);7 j! J- w. p c5 B# ]2 N
1 O& t; b; s" x( I, c* T% @! d for (ii = 0; ii < n_feats; ii++)
4 N( D# F- M7 K6 K) k: S {8 K+ r8 @+ T0 Y W6 a# [
UF_CALL(UF_MODL_ask_feat_type(feats[ii], &feat_type));7 p' y1 f/ x+ T) ?" A- ]* S
if ((!strcmp(feat_type, "MIRROR")) &&% ~. Y3 X# h3 D
! UF_CALL(UF_WAVE_map_link_geom_to_source(feats[ii], face, TRUE,/ G& l' E% i \/ M9 q
&mirror)))
* W |; s+ r6 H4 B& W3 G {4 F' @1 n7 ^& D3 g
/ Z: v' L- Z9 f2 i
/* Begin work around to PR 4244233 */6 r+ ~2 G5 d. z# F
if (mirror == NULL_TAG)
7 m e' h3 I8 X3 h* s" T- Y {# ?8 g% r& m u8 j" o
UF_CALL(UF_WAVE_ask_linked_feature_map(feats[ii], TRUE,, f! k2 u; t* w4 Q \8 n2 Y* t7 i
&n_items, &sources, &results));
( w2 _* }- _4 U5 O) M for (jj = 0; jj < n_items; jj++): U$ y3 c D2 P1 U
{4 C6 ~+ t$ O7 e+ H! o+ C5 @ i: h
if (results[jj] == face)
* }8 O. M/ R# b2 w, q {
/ h' U1 p8 o8 X, R mirror = sources[jj];
: M+ L, o' l4 } break;% k/ r; h% e- o$ _% Q
}
, T8 s4 H* T6 N# Y9 O0 D% i2 S$ y }. w$ J; M Y+ |6 F* j, q
if (n_items > 0)
1 }! a- n- B# Y" v7 ?7 C {
' Y& X/ Y7 d: B UF_free(sources);
4 |3 O$ ]/ J9 ^2 m r: h K UF_free(results);3 [8 E7 g# _6 S1 ^
}) j' I4 ~# {1 R6 W) X1 [
}
: ?2 R% d: W9 p /* End work around to PR 4244233 */' A) J7 D" M$ L1 R
" ~; E' ]8 s' \% X' D, [# D9 e UF_DISP_set_highlight(face, TRUE);& R, L8 C5 L- `, s1 ~; M
UF_DISP_set_highlight(mirror, TRUE);
6 ?( ^/ Q- r* U6 b3 h; Y! a2 Z, h uc1601("Mirrored face highlighted", TRUE);+ r) Q) r+ J5 {" C$ R [
UF_DISP_set_highlight(face, FALSE);9 J: W$ ]9 l. `: i3 `' Q8 k
UF_DISP_set_highlight(mirror, FALSE);
0 U5 t. K- q/ P+ t+ V$ M. G }
6 S( H" u, \2 X, A UF_free(feat_type);
# k/ x2 _6 F( y9 q( b2 D }
A# ]: X; y$ a/ a5 H2 ~; s
7 ?, r6 @) T8 a if (n_feats > 0) UF_free(feats);% g4 @9 U2 ?! V7 ]/ E
}) O2 k' c5 v" z. B3 c# [1 s
R) |% b$ E& z8 D a0 C! ? |
|