Matrix creation simplification

This commit is contained in:
Marc Garcia Puig 2020-06-29 17:28:44 +02:00
parent 1aa286f6a9
commit 114e42357a
1 changed files with 10 additions and 54 deletions

View File

@ -86,64 +86,20 @@ static void TransformList(const carla::geom::Transform &self, boost::python::lis
}
}
static boost::python::list BuildMatrix(const std::array<float, 16> &m) {
boost::python::list r_out;
boost::python::list r[4];
for (uint8_t i = 0; i < 16; ++i) { r[uint8_t(i / 4)].append(m[i]); }
for (uint8_t i = 0; i < 4; ++i) { r_out.append(r[i]); }
return r_out;
}
static auto GetTransformMatrix(const carla::geom::Transform &self) {
const std::array<float, 16> tr = self.GetMatrix();
boost::python::list py_tranf;
boost::python::list rows[4];
rows[0].append(tr[0]);
rows[0].append(tr[1]);
rows[0].append(tr[2]);
rows[0].append(tr[3]);
rows[1].append(tr[4]);
rows[1].append(tr[5]);
rows[1].append(tr[6]);
rows[1].append(tr[7]);
rows[2].append(tr[8]);
rows[2].append(tr[9]);
rows[2].append(tr[10]);
rows[2].append(tr[11]);
rows[3].append(tr[12]);
rows[3].append(tr[13]);
rows[3].append(tr[14]);
rows[3].append(tr[15]);
py_tranf.append(rows[0]);
py_tranf.append(rows[1]);
py_tranf.append(rows[2]);
py_tranf.append(rows[3]);
return py_tranf;
return BuildMatrix(self.GetMatrix());
}
static auto GetInverseTransformMatrix(const carla::geom::Transform &self) {
const std::array<float, 16> tr = self.GetInverseMatrix();
boost::python::list py_tranf;
boost::python::list rows[4];
rows[0].append(tr[0]);
rows[0].append(tr[1]);
rows[0].append(tr[2]);
rows[0].append(tr[3]);
rows[1].append(tr[4]);
rows[1].append(tr[5]);
rows[1].append(tr[6]);
rows[1].append(tr[7]);
rows[2].append(tr[8]);
rows[2].append(tr[9]);
rows[2].append(tr[10]);
rows[2].append(tr[11]);
rows[3].append(tr[12]);
rows[3].append(tr[13]);
rows[3].append(tr[14]);
rows[3].append(tr[15]);
py_tranf.append(rows[0]);
py_tranf.append(rows[1]);
py_tranf.append(rows[2]);
py_tranf.append(rows[3]);
return py_tranf;
return BuildMatrix(self.GetInverseMatrix());
}
void export_geom() {