Example #1
0
void Curve3D::_set_data(const Dictionary &p_data) {

	ERR_FAIL_COND(!p_data.has("points"));
	ERR_FAIL_COND(!p_data.has("tilts"));

	PoolVector3Array rp = p_data["points"];
	int pc = rp.size();
	ERR_FAIL_COND(pc % 3 != 0);
	points.resize(pc / 3);
	PoolVector3Array::Read r = rp.read();
	PoolRealArray rtl = p_data["tilts"];
	PoolRealArray::Read rt = rtl.read();

	for (int i = 0; i < points.size(); i++) {

		points[i].in = r[i * 3 + 0];
		points[i].out = r[i * 3 + 1];
		points[i].pos = r[i * 3 + 2];
		points[i].tilt = rt[i];
	}

	baked_cache_dirty = true;
}