38 a = (vec1_pull_seg - vec2_pull_seg) * M_PI;
39 b = vec2_pull_seg * M_PI;
44 for (
int i = 0; i <= 2; i++)
48 result = result + cos(b(i));
52 result = result + (sin(a(i) + b(i)) - sin(b(i))) / a(i);
57 if (fabs(a(0) - a(1)) <
epsilon)
59 result = result + cos(b(0) - b(1)) / 2.0;
63 result = result + (sin(b(0) - b(1) + a(0) - a(1)) - sin(b(0) - b(1))) / ((a(0) - a(1)) * 2.0);
66 if (fabs(a(0) + a(1)) <
epsilon)
68 result = result + cos(b(0) + b(1)) / 2.0;
72 result = result + (sin(b(0) + b(1) + a(0) + a(1)) - sin(b(0) + b(1))) / ((a(0) + a(1)) * 2.0);
76 if (fabs(a(0) - a(2)) <
epsilon)
78 result = result + cos(b(0) - b(2)) / 2.0;
82 result = result + (sin(b(0) - b(2) + a(0) - a(2)) - sin(b(0) - b(2))) / ((a(0) - a(2)) * 2.0);
85 if (fabs(a(0) + a(2)) <
epsilon)
87 result = result + cos(b(0) + b(2)) / 2.0;
91 result = result + (sin(b(0) + b(2) + a(0) + a(2)) - sin(b(0) + b(2))) / ((a(0) + a(2)) * 2.0);
95 if (fabs(a(1) - a(2)) <
epsilon)
97 result = result + cos(b(1) - b(2)) / 2.0;
101 result = result + (sin(b(1) - b(2) + a(1) - a(2)) - sin(b(1) - b(2))) / ((a(1) - a(2)) * 2.0);
104 if (fabs(a(1) + a(2)) <
epsilon)
106 result = result + cos(b(1) + b(2)) / 2.0;
110 result = result + (sin(b(1) + b(2) + a(1) + a(2)) - sin(b(1) + b(2))) / ((a(1) + a(2)) * 2.0);
114 if (fabs(a(0) - a(1) - a(2)) <
epsilon)
116 result = result + cos(b(0) - b(1) - b(2)) / 4.0;
120 result = result + (sin(b(0) - b(1) - b(2) + a(0) - a(1) - a(2)) - sin(b(0) - b(1) - b(2))) / ((a(0) - a(1) - a(2)) * 4.0);
123 if (fabs(a(0) + a(1) - a(2)) <
epsilon)
125 result = result + cos(b(0) + b(1) - b(2)) / 4.0;
129 result = result + (sin(b(0) + b(1) - b(2) + a(0) + a(1) - a(2)) - sin(b(0) + b(1) - b(2))) / ((a(0) + a(1) - a(2)) * 4.0);
132 if (fabs(a(0) - a(1) + a(2)) <
epsilon)
134 result = result + cos(b(0) - b(1) + b(2)) / 4.0;
138 result = result + (sin(b(0) - b(1) + b(2) + a(0) - a(1) + a(2)) - sin(b(0) - b(1) + b(2))) / ((a(0) - a(1) + a(2)) * 4.0);
141 if (fabs(a(0) + a(1) + a(2)) <
epsilon)
143 result = result + cos(b(0) + b(1) + b(2)) / 4.0;
147 result = result + (sin(b(0) + b(1) + b(2) + a(0) + a(1) + a(2)) - sin(b(0) + b(1) + b(2))) / ((a(0) + a(1) + a(2)) * 4.0);