24 float div = (
v2[0] - v1[0]) * (v4[1] - v3[1]) - (
v2[1] - v1[1]) * (v4[0] - v3[0]);
30 ans.
lambda = ((v1[1] - v3[1]) * (v4[0] - v3[0]) - (v1[0] - v3[0]) * (v4[1] - v3[1])) / div;
31 float mu = ((v1[1] - v3[1]) * (
v2[0] - v1[0]) - (v1[0] - v3[0]) * (
v2[1] - v1[1])) / div;
32 if (ans.
lambda >= 0.0f && ans.
lambda <= 1.0f && mu >= 0.0f && mu <= 1.0f) {
33 if (ans.
lambda == 0.0f || ans.
lambda == 1.0f || mu == 0.0f || mu == 1.0f) {
54 double div = (
v2[0] - v1[0]) * (v4[1] - v3[1]) - (
v2[1] - v1[1]) * (v4[0] - v3[0]);
60 ans.
lambda = ((v1[1] - v3[1]) * (v4[0] - v3[0]) - (v1[0] - v3[0]) * (v4[1] - v3[1])) / div;
61 double mu = ((v1[1] - v3[1]) * (
v2[0] - v1[0]) - (v1[0] - v3[0]) * (
v2[1] - v1[1])) / div;
62 if (ans.
lambda >= 0.0 && ans.
lambda <= 1.0 && mu >= 0.0 && mu <= 1.0) {
63 if (ans.
lambda == 0.0 || ans.
lambda == 1.0 || mu == 0.0 || mu == 1.0) {
79isect_result<mpq2>
isect_seg_seg(
const mpq2 &v1,
const mpq2 &
v2,
const mpq2 &v3,
const mpq2 &v4)
81 isect_result<mpq2> ans;
82 mpq_class div = (
v2[0] - v1[0]) * (v4[1] - v3[1]) - (
v2[1] - v1[1]) * (v4[0] - v3[0]);
88 ans.lambda = ((v1[1] - v3[1]) * (v4[0] - v3[0]) - (v1[0] - v3[0]) * (v4[1] - v3[1])) / div;
90 mpq_class mudiv = ((v1[1] - v3[1]) * (
v2[0] - v1[0]) - (v1[0] - v3[0]) * (
v2[1] - v1[1]));
91 if (ans.lambda >= 0 && ans.lambda <= 1 &&
92 ((div > 0 && mudiv >= 0 && mudiv <= div) || (div < 0 && mudiv <= 0 && mudiv >= div)))
94 if (ans.lambda == 0 || ans.lambda == 1 || mudiv == 0 || mudiv == div) {
111uint64_t hash_mpq_class(
const mpq_class &value)
ATTR_WARN_UNUSED_RESULT const BMVert * v2
isect_result< VecBase< T, Size > > isect_seg_seg(const VecBase< T, Size > &v1, const VecBase< T, Size > &v2, const VecBase< T, Size > &v3, const VecBase< T, Size > &v4)
uint64_t get_default_hash(const T &v)
unsigned __int64 uint64_t
enum blender::math::isect_result::@111 kind