Angles Vec2D::angles_relative_to_triangle(const reference_triangle_t * t) const { Vec2D PA = Vec2D(t->point_a) - *this; Vec2D PB = Vec2D(t->point_b) - *this; Vec2D PC = Vec2D(t->point_c) - *this; float alpha_ = PB.directed_angle_to(PC); float beta_ = PC.directed_angle_to(PA); float gamma_ = PA.directed_angle_to(PB); Angles result; result.alpha = alpha_; result.beta = beta_; result.gamma = gamma_; assert(std::fabs(alpha_ + beta_ + gamma_ - 2 * M_PI) < 0.0001); return result; }