|
double AskFaceAreasByPK(tag_t face_tag, double tol)
' P8 Z) r" \, o q5 E{
' t) [$ _/ p8 `, t0 r" V( m- _ tag_t ps_tag = NULL_TAG;# x0 r' m6 O% w; w* o+ l
double amount[3] = { 0.0, 0.0, 0.0 };9 P4 p9 @4 y4 u) n6 c) o
double mass[3] = { 0.0, 0.0, 0.0 };9 d) t+ e$ c0 x# m$ Y
double c_of_g[3] = { 0.0, 0.0, 0.0 };: o( Z2 p3 `/ x$ H& [* [5 l y
double m_of_i[6] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };0 g* C+ E3 h# k7 @1 c3 O) R/ P# N2 T9 M
double periphery[3] = { 0.0, 0.0, 0.0 };
! h s" f: B* j1 r! S t2 p double areas = 0.0;
' N9 H! P( {+ S* H5 Y& _( }4 X PK_FACE_t pkFace = 0;; @# X4 p/ v" B( O* o" L
PK_TOPOL_eval_mass_props_o_t props_o_t; - z. _- U( t5 Z; l) m0 l( J
if (NULL_TAG == face_tag || UF_PS_ask_ps_tag_of_object(face_tag, &ps_tag))7 i+ {# t" O" t" {9 I
return 0;# j# e9 g2 n. m. b9 G
pkFace = ps_tag;/ N, M2 ^6 A2 i6 A; R
if (tol < 0.99)8 G" J! c' y. i
tol = 0.99;
' V' k& E/ @8 J! X% v$ n5 l( Q2 _/ ` if (tol > 1.0)/ I7 X* G3 W% q) |% F; _; M
tol = 1.0;
8 I$ h8 Z3 z7 Y8 J" o; t PK_TOPOL_eval_mass_props_o_m(props_o_t);
H: [( c- x* m4 S9 |" Z props_o_t.mass = PK_mass_c_of_g_c;- ]' s; w: U8 V; J. F/ J
PK_TOPOL_eval_mass_props(1, &pkFace, tol, &props_o_t, amount, mass, c_of_g, m_of_i, periphery);
# z+ o; f7 w# a. R2 |- E! x areas = amount[0] * 1000.0 * 1000.0;
( J! b- i. A% \1 W8 r+ F return areas;
& Q+ t. N9 O2 c7 A0 z5 S" `}& ^/ t8 O, D0 o: d$ H
* D( N! K+ O4 S8 Y! P" B( O
|
|