|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
6 u" M8 q, @: C$ j
( H& [5 e4 f( uNX二次开发源码分享: 高亮镜像Wave linked的面
! v1 S! p/ c+ W) M6 V, n% a7 d9 m- C* E8 {" d
static void highlight_mirrored_face(tag_t face)4 |+ G; O! ]" Z7 ~# g9 X
{% z' N7 e7 |# ]4 K ~ `
int
6 _( {- @1 F5 C% `$ f ii,
8 ]4 O6 v! I5 v$ L& c& m jj,
j6 q4 Z7 o4 a/ b5 |% F+ n n_feats,
& d# b2 ]$ M( g6 i+ l n_items;1 [' d7 ^+ y% p4 u- {& y. A- e, ]# V
char
$ F+ e4 x+ J9 j" N; j3 M *feat_type;
8 N |" M7 e' d; d/ t6 g6 F tag_t! q+ P' t4 G S) v! @. v0 l
*feats,- }- n8 N, f4 m
mirror,
* h5 Q* V% O& U/ f: k A! l *results,) Z& e; b6 n# g# d
*sources;
, x: q8 H2 l. n/ \* q. g& L' E, s& p% j- A
n_feats = ask_face_feats(face, &feats);5 D; H, F' p" i( w" u
6 U5 }9 h7 i4 a! r. t' c7 b for (ii = 0; ii < n_feats; ii++)
- G1 ~* [. k/ L3 W9 i {
+ ~2 u$ ?9 l/ k; n UF_CALL(UF_MODL_ask_feat_type(feats[ii], &feat_type));
( C! j. ^& B+ | if ((!strcmp(feat_type, "MIRROR")) &&. n3 [6 n' Q, P3 Q: s/ c
! UF_CALL(UF_WAVE_map_link_geom_to_source(feats[ii], face, TRUE,
" Z- L$ N1 P& L$ N* l8 y &mirror)))
" w f8 c' Z r2 I$ x Q {7 ?) E* Y& J7 p( r* N1 ]2 X
( j. m/ E* S: M' o% g! c /* Begin work around to PR 4244233 */) h2 v* @ Q, W# k
if (mirror == NULL_TAG)
) R: O( S- H# q2 e {+ ~) e1 I0 x, J8 k
UF_CALL(UF_WAVE_ask_linked_feature_map(feats[ii], TRUE,
3 D9 w/ D" U) _& d &n_items, &sources, &results));
/ o, |, h6 x# T for (jj = 0; jj < n_items; jj++)( O3 \0 ^4 [, g2 S/ f e0 |( V
{
; A( f2 D2 u1 d0 `" ?% _, W if (results[jj] == face)
2 s9 C. b7 F6 q$ J, j/ ]: g; E {
& k5 L5 U$ `. C1 g mirror = sources[jj];
7 Y& R9 G% I4 C; ? break;/ R2 y/ z% Y& d8 ?6 O$ I/ K
}4 Y- I. }8 S) {) r4 P
}
5 \- b9 w& [0 w( j& Z if (n_items > 0)
4 _" V& z) d' ^8 X {
( E0 K! S4 d8 K5 E' x UF_free(sources);
! _2 j, J9 q4 i( A; P$ V1 G3 d8 C UF_free(results);1 m1 z2 O! `8 n# h; k9 ~
}
" @9 x% G1 [3 V7 R1 m2 E% s }" a8 B1 t3 [( C Y0 x t/ k$ N5 v8 U- P
/* End work around to PR 4244233 */
: ?. |; y: b0 I. K9 @: R1 V' T1 [) i9 J7 V* e' z d/ \! P; f; d
UF_DISP_set_highlight(face, TRUE);
/ k: e! f$ z6 u0 M+ U4 \ UF_DISP_set_highlight(mirror, TRUE);( a; z7 X6 V! m* l5 C* [- h
uc1601("Mirrored face highlighted", TRUE);5 {, _& {" H" u6 J/ T8 ` U3 F
UF_DISP_set_highlight(face, FALSE);5 K) N2 a" m0 Q( Y. [1 w
UF_DISP_set_highlight(mirror, FALSE);
# T) m% J( N9 _ }) b0 j# b @/ q d2 R1 Z) b
UF_free(feat_type);
5 @& Y* X6 e$ A! R }* `8 S, y; s$ a; _
; J. s) Q+ C/ d* }& Z
if (n_feats > 0) UF_free(feats);5 ]5 W$ Y8 z! f* l, G+ @9 q
}/ F0 Q) [; b1 _/ N M
* w, i# R' S! g5 ~" \0 l |
|