36 m_upper_smoothing_radius,
37 m_pore_mouth - m_upper_smoothing_radius};
40 m_pore_mouth - m_pore_length + m_lower_smoothing_radius};
43 m_upper_smoothing_radius,
44 m_pore_mouth - m_upper_smoothing_radius};
47 m_pore_mouth - m_pore_length + m_lower_smoothing_radius};
49 if (pos[2] > m_pore_mouth + m_channel_width / 2) {
51 dist = m_pore_mouth + m_channel_width - pos[2];
57 if (pos[0] < c11[0] || pos[0] > c21[0]) {
59 dist = pos[2] - m_pore_mouth;
65 if (pos[2] > c11[1]) {
69 m_upper_smoothing_radius;
70 vec[0] = -(c11[0] - pos[0]) * (dist) / (dist + m_upper_smoothing_radius);
72 vec[2] = -(c11[1] - pos[2]) * (dist) / (dist + m_upper_smoothing_radius);
76 m_upper_smoothing_radius;
77 vec[0] = -(c21[0] - pos[0]) * (dist) / (dist + m_upper_smoothing_radius);
79 vec[2] = -(c21[1] - pos[2]) * (dist) / (dist + m_upper_smoothing_radius);
83 if (pos[2] > c12[1]) {
97 if (pos[0] > c12[0] && pos[0] < c22[0]) {
99 dist = pos[2] - (m_pore_mouth - m_pore_length);
108 m_lower_smoothing_radius;
109 vec[0] = (c12[0] - pos[0]) * (dist) / (-dist + m_lower_smoothing_radius);
111 vec[2] = (c12[1] - pos[2]) * (dist) / (-dist + m_lower_smoothing_radius);
115 m_lower_smoothing_radius;
116 vec[0] = (c22[0] - pos[0]) * (dist) / (-dist + m_lower_smoothing_radius);
118 vec[2] = (c22[1] - pos[2]) * (dist) / (-dist + m_lower_smoothing_radius);