diff --git a/pandatool/src/mayaegg/mayaToEggConverter.cxx b/pandatool/src/mayaegg/mayaToEggConverter.cxx index 657e928950..e8638a0cc0 100644 --- a/pandatool/src/mayaegg/mayaToEggConverter.cxx +++ b/pandatool/src/mayaegg/mayaToEggConverter.cxx @@ -1002,6 +1002,8 @@ make_nurbs_surface(const MDagPath &dag_path, MFnNurbsSurface &surface, } egg_nurbs->set_v_knot(v_knots + 1, v_knot_array[v_knots - 1]); + LMatrix4d vertex_frame_inv = egg_group->get_vertex_frame_inv(); + for (i = 0; i < egg_nurbs->get_num_cvs(); i++) { int ui = egg_nurbs->get_u_index(i); int vi = egg_nurbs->get_v_index(i); @@ -1012,7 +1014,9 @@ make_nurbs_surface(const MDagPath &dag_path, MFnNurbsSurface &surface, status.perror("MPoint::get"); } else { EggVertex vert; - vert.set_pos(LPoint4d(v[0], v[1], v[2], v[3])); + LPoint4d p4d(v[0], v[1], v[2], v[3]); + p4d = p4d * vertex_frame_inv; + vert.set_pos(p4d); egg_nurbs->add_vertex(vpool->create_unique_vertex(vert)); } } @@ -1238,6 +1242,8 @@ make_nurbs_curve(const MDagPath &, const MFnNurbsCurve &curve, } egg_curve->set_knot(knots + 1, knot_array[knots - 1]); + LMatrix4d vertex_frame_inv = egg_group->get_vertex_frame_inv(); + for (i = 0; i < egg_curve->get_num_cvs(); i++) { double v[4]; MStatus status = cv_array[i].get(v); @@ -1245,7 +1251,9 @@ make_nurbs_curve(const MDagPath &, const MFnNurbsCurve &curve, status.perror("MPoint::get"); } else { EggVertex vert; - vert.set_pos(LPoint4d(v[0], v[1], v[2], v[3])); + LPoint4d p4d(v[0], v[1], v[2], v[3]); + p4d = p4d * vertex_frame_inv; + vert.set_pos(p4d); egg_curve->add_vertex(vpool->create_unique_vertex(vert)); } }