|
double AskFaceAreasByPK(tag_t face_tag, double tol)% |, C5 j% _' U b. Z) g
{! i+ m& n: z) v# ]! c2 p3 ^4 r
tag_t ps_tag = NULL_TAG;
$ W4 H5 I$ v, _2 f3 A7 y* k* G double amount[3] = { 0.0, 0.0, 0.0 };
7 A/ @1 i3 S" X0 X double mass[3] = { 0.0, 0.0, 0.0 };
& {6 J B* Y* o6 _# S double c_of_g[3] = { 0.0, 0.0, 0.0 };8 p& r/ ^7 g9 a# J
double m_of_i[6] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
- i* s( y- q# y. F double periphery[3] = { 0.0, 0.0, 0.0 };$ w) i$ N/ @: `) F4 [6 q0 ?
double areas = 0.0;
% b% Z0 G/ e1 k' c PK_FACE_t pkFace = 0;
1 n! L3 j8 `1 K2 W5 z PK_TOPOL_eval_mass_props_o_t props_o_t; * ~* w7 ^1 X/ H, \
if (NULL_TAG == face_tag || UF_PS_ask_ps_tag_of_object(face_tag, &ps_tag))
! a( G0 H. _% W0 v' a4 N return 0;
% H. b' p9 Q, W, _8 {9 o pkFace = ps_tag;
6 \2 I& Z* z, T8 `8 O% t- P4 b if (tol < 0.99); `% J, @4 I4 j
tol = 0.99;3 L) t/ p. T3 R
if (tol > 1.0)2 `8 a- \! s7 h
tol = 1.0;
1 Z6 c$ [2 h# {3 G/ c% i* L9 p0 r PK_TOPOL_eval_mass_props_o_m(props_o_t);
6 b& T# h% k! C, W/ q. l props_o_t.mass = PK_mass_c_of_g_c;2 W* y5 b S. v8 S
PK_TOPOL_eval_mass_props(1, &pkFace, tol, &props_o_t, amount, mass, c_of_g, m_of_i, periphery);% U2 E% b7 p% O3 R
areas = amount[0] * 1000.0 * 1000.0;% d+ f8 W$ K% a7 T5 A3 K% P( _
return areas;2 N8 F, c+ w. b9 {
}
% J$ }1 B; c9 u
( Z- m+ o6 N. z2 V9 a+ m9 |# \ |
|