|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
$ [3 o+ A* Z/ E$ o0 i, q( g: Q" E
NX二次开发源码分享: 高亮镜像Wave linked的面. B$ @ B# B Q* R% m
+ c) |9 R' C$ Y' Mstatic void highlight_mirrored_face(tag_t face)
; U1 c ~" z- T5 s; z4 q{4 W% c5 E3 V! O" J7 K/ J
int
1 \7 M3 x c# x9 g' M* Z7 K9 h2 b; m! ~ ii,
& b! ]$ |7 f. V9 N" h jj," v$ c, i0 t* h m, c1 o
n_feats,# q% Z; @; V/ s/ A$ E4 o7 r2 x3 Z, E
n_items;
. P" P4 _9 r9 F) _) S char0 z( {% w D6 {# P0 [9 `
*feat_type;6 {- R" o5 I% A) r
tag_t
9 W$ ~$ N/ M: @* S( R *feats,8 Q4 v2 P' L3 R- D$ \
mirror,4 b w8 M; r/ B( f m6 B
*results,4 Z3 x# m! _ o' I7 t& h8 P
*sources;
, A e# X' c# f0 h8 j
$ E" Q: L y9 \, ]* i+ _ n_feats = ask_face_feats(face, &feats);, T% Z; W+ V% T2 Z, m
/ ]" Q8 H G1 q0 e# q
for (ii = 0; ii < n_feats; ii++)0 A' T1 |2 l: M6 N+ R3 [
{, u/ q, O: f% @
UF_CALL(UF_MODL_ask_feat_type(feats[ii], &feat_type));
8 W* r; b0 G% m9 s' o: v: O if ((!strcmp(feat_type, "MIRROR")) &&
6 l$ c- V3 y) Z: {; E9 I8 o ! UF_CALL(UF_WAVE_map_link_geom_to_source(feats[ii], face, TRUE,
* }: B# ^' W. ^1 k9 L7 w2 |! K3 O8 ` &mirror)))
+ ]7 ^7 h; V! e, R b E. o* Z {
: t/ X$ s2 P& g. f
2 A% H) q, o3 |" f! g* M# i /* Begin work around to PR 4244233 */2 e) F% G* U3 P% d# z+ U2 M! J
if (mirror == NULL_TAG)
0 x6 [$ R# i& B6 o0 b {
5 T8 e9 H0 [: B UF_CALL(UF_WAVE_ask_linked_feature_map(feats[ii], TRUE,
n# }# o% h6 I3 \) N &n_items, &sources, &results));* R- a# L, ~- ?+ Y& r6 [0 ^
for (jj = 0; jj < n_items; jj++)( [7 W" o: n0 T3 o3 m% g* \
{
A& L$ |8 J# K if (results[jj] == face)7 ^( @- ~- v8 M" ]; ~. Q5 \
{
+ M/ r9 c) O) {7 \ mirror = sources[jj];
6 L. }( ]9 N" [. ^ break;! M2 }3 s `6 \1 T" i
}
0 R& \# O* J* k }% Y( o( F2 ~. [; ^3 F$ Z
if (n_items > 0)
$ Z8 c1 _, M& V# l: Z: j$ p) `: x {
+ g" b; |$ \- B/ A; L. Q0 w UF_free(sources);
# g3 K* p* ]% f, C+ W UF_free(results);
/ O0 L8 P# w4 x) ]6 a2 K }2 O; [! K+ u( p( M; a* Z
}& H, s5 p) e: L3 U% s3 Y) f& C
/* End work around to PR 4244233 */9 B* E2 F, n+ m0 t
2 k/ l/ P/ o) W& O
UF_DISP_set_highlight(face, TRUE);( _; W. E2 _: ~8 v+ \* M& V
UF_DISP_set_highlight(mirror, TRUE);, g _9 R% l+ ^
uc1601("Mirrored face highlighted", TRUE);
) w9 W! X' |9 W& I, N UF_DISP_set_highlight(face, FALSE);
) X/ Z) P/ Q; t7 j/ A UF_DISP_set_highlight(mirror, FALSE);2 W2 |* g/ S, @8 D" V3 i {, e
}
9 O6 ?* m3 ]; m: H+ W+ H- i UF_free(feat_type);0 N9 p8 P4 B8 n( g. b" w0 |
}, B2 N8 A+ L" l+ B$ S* m
5 j( s& J, s; W& Q7 [5 \ if (n_feats > 0) UF_free(feats);
5 r( r/ {5 D3 J. g2 Z# q" b}' u8 e; x; @6 D- s7 X4 k
% x! G- ~ I$ z0 q- f |
|