|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 H: _& l% j7 e4 {) `% h3 }4 D! Y
2 i8 n0 j/ H/ x h# |* `NX二次开发源码分享: 高亮镜像Wave linked的面( n ^" e) Z. w8 O! ]
: G. L9 m$ d+ V. `2 ~
static void highlight_mirrored_face(tag_t face)) ]% m1 J* v1 p5 G
{
1 W. b6 R6 @3 R9 U- P* W. v$ B* K int: @! h6 m( B$ B" N" \( F" E
ii,4 Q7 q- L7 h% H$ C/ H5 b& r0 P* F
jj,
- [+ ~7 M$ z7 B* x n_feats,/ E; Z8 i/ h2 i; [5 Y1 Y9 j
n_items;
; Y0 A2 B7 C v, F5 _ char
: ?" J u* T& H5 C; R *feat_type;! E& s# F" _0 }; W! i8 j7 g* j
tag_t8 ^ g7 F- P# j
*feats,8 p/ r/ u4 Y# |# s1 m X% @4 C
mirror,8 r1 X( L2 Q9 c) N0 U
*results,
* S I1 X( [3 w# P+ ~+ A z9 n' @ *sources;. q6 W1 Y R# }
, }! T, [' r; t
n_feats = ask_face_feats(face, &feats);% r2 m1 d/ N" J1 W9 R" Y8 q
2 I; @0 v, h! I. z+ v1 f
for (ii = 0; ii < n_feats; ii++)6 [ B4 U1 k3 i" u
{6 S" L/ u/ X7 G z* ?
UF_CALL(UF_MODL_ask_feat_type(feats[ii], &feat_type));
* k4 Q! P. p$ d3 w, x if ((!strcmp(feat_type, "MIRROR")) &&
9 Q0 _% ]' U. I) O ! UF_CALL(UF_WAVE_map_link_geom_to_source(feats[ii], face, TRUE,1 D# A3 N/ d/ G: b+ v+ T( J* x q3 l
&mirror)))
9 _: B" k; \6 }' g {
& u2 n' H7 [/ h( M8 [/ K" m g0 I9 }( z, Q, F/ t/ ^
/* Begin work around to PR 4244233 */
. P% l2 b+ I8 R! D6 a if (mirror == NULL_TAG)/ N) h7 q! c# @+ A5 `7 n
{
, j# e5 Z( J, f7 V- P UF_CALL(UF_WAVE_ask_linked_feature_map(feats[ii], TRUE,& V8 u3 Z# x5 w: Y6 Y: i, X2 H& E
&n_items, &sources, &results));* M! R' w" Y% p2 n. r b# U' L9 w
for (jj = 0; jj < n_items; jj++)( r/ ]8 k( N) H; i! p2 o1 W
{
5 K5 r' ?( k& ~$ P$ V% N: y if (results[jj] == face)
( x t. z2 v% X4 N4 U, }) [( s {/ u1 n3 @8 J2 e1 G
mirror = sources[jj];
1 m! e' b) {) W: K4 r' V/ H) [3 x* Y break;, O9 `" _1 a H% [; h3 T
}
$ P3 x& {$ \- @; n( R( B7 i }
) t$ d1 l6 Z( z D& c if (n_items > 0)( l3 U0 }, |9 H3 o1 \1 X
{
4 M( m8 G' Y9 U7 w$ u: M UF_free(sources);/ ^4 l# m& _2 u* F! Z3 ]( U
UF_free(results);
+ u9 z" f% @. V# Y }
7 t7 B: }+ c) P3 h6 U! e }
& |& v: E- S* z /* End work around to PR 4244233 */1 o2 I. z% _; R. s9 j
2 l7 S u0 E" n) Y( X- o4 C& T UF_DISP_set_highlight(face, TRUE);
* u2 P! L& j4 B. m7 _- D UF_DISP_set_highlight(mirror, TRUE);1 v1 F# s7 i* A! S/ G5 R8 D* A
uc1601("Mirrored face highlighted", TRUE);
* f0 F) I+ f# ]* C, a% | UF_DISP_set_highlight(face, FALSE);0 b) N$ R5 Q: a7 c8 T! a8 |2 Z
UF_DISP_set_highlight(mirror, FALSE);
$ r. Z$ \) H/ e0 F2 l) r0 p; b8 y1 }4 K }
2 d5 J4 {$ s, N5 d UF_free(feat_type);
5 Q% r1 }4 a5 Q2 ~! X }7 ]6 {4 Q; w' V3 f( r
* F7 ^7 A& y/ ?- z
if (n_feats > 0) UF_free(feats);$ @. S- y5 P7 A0 u2 y9 z6 G0 [
}
2 o; k5 M/ @$ P5 d5 W3 y# G/ v: f! C" y. m. P( v3 X. I
|
|