bool intersect(const Complex& a, const Convex& b, const Transform& a2w, const Transform& b2w, Vector& v) { Transform b2a; b2a.multInverseLeft(a2w, b2w); BBox bb = b.bbox(b2a); return intersect(a.root, b, bb, b2a, v); }
bool find_prim(const Complex& a, const Convex& b, const Transform& a2w, const Transform& b2w, Vector& v, ShapePtr& p) { Transform b2a; b2a.multInverseLeft(a2w, b2w); BBox bb = b.bbox(b2a); return find_prim(a.root, b, bb, b2a, v, p); }
bool common_point(const Complex& a, const Convex& b, const Transform& a2w, const Transform& b2w, Vector& v, Point& pa, Point& pb) { Transform b2a; b2a.multInverseLeft(a2w, b2w); BBox bb = b.bbox(b2a); return common_point(a.root, b, bb, b2a, v, pb, pa); }