transform nurbs correctly, like polysets

This commit is contained in:
David Rose 2003-04-09 20:34:17 +00:00
parent a16fe56c74
commit 242920ed62
1 changed files with 10 additions and 2 deletions

View File

@ -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));
}
}