Handle closed splines in Collada importer
(cherry picked from commit 8f7ab02bc6
)
This commit is contained in:
parent
e359ba3733
commit
c15bb8147e
2 changed files with 8 additions and 0 deletions
|
@ -845,6 +845,8 @@ void Collada::_parse_curve_geometry(XMLParser &parser, String p_id, String p_nam
|
||||||
|
|
||||||
CurveData &curvedata = state.curve_data_map[p_id];
|
CurveData &curvedata = state.curve_data_map[p_id];
|
||||||
curvedata.name = p_name;
|
curvedata.name = p_name;
|
||||||
|
String closed = parser.get_attribute_value_safe("closed").to_lower();
|
||||||
|
curvedata.closed = closed == "true" || closed == "1";
|
||||||
|
|
||||||
COLLADA_PRINT("curve name: " + p_name);
|
COLLADA_PRINT("curve name: " + p_name);
|
||||||
|
|
||||||
|
|
|
@ -1074,6 +1074,12 @@ Error ColladaImport::_create_resources(Collada::Node *p_node, uint32_t p_use_com
|
||||||
c->set_point_tilt(i, tilts->array[i]);
|
c->set_point_tilt(i, tilts->array[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (cd.closed && pc > 1) {
|
||||||
|
Vector3 pos = c->get_point_position(0);
|
||||||
|
Vector3 in = c->get_point_in(0);
|
||||||
|
Vector3 out = c->get_point_out(0);
|
||||||
|
c->add_point(pos, in, out, -1);
|
||||||
|
}
|
||||||
|
|
||||||
curve_cache[ng->source] = c;
|
curve_cache[ng->source] = c;
|
||||||
path->set_curve(c);
|
path->set_curve(c);
|
||||||
|
|
Loading…
Reference in a new issue