@@ -129,6 +129,16 @@ void moduleAddBaseCamera(py::module &m)
129129 return (self->getPositionFromOrientation (vec1, vec2, vec3));
130130 });
131131
132+ c.def (" getLookAtFromOrientation" , [](BaseCamera *self, py::list p1, py::float_ p2, py::list p3) {
133+ sofa::defaulttype::Vec3 vec1;
134+ double vec2;
135+ sofa::defaulttype::Quat vec3;
136+ vec1 = sofa::defaulttype::Vec3 (py::cast<double >(p1[0 ]),py::cast<double >(p1[1 ]),py::cast<double >(p1[2 ]));
137+ vec2 = py::cast<double >(p2);
138+ vec3 = sofa::defaulttype::Quat (py::cast<double >(p3[0 ]),py::cast<double >(p3[1 ]),py::cast<double >(p3[2 ]),py::cast<double >(p3[3 ]));
139+ return (self->getLookAtFromOrientation (vec1, vec2, vec3));
140+ });
141+
132142 c.def (" setCameraType" , [](BaseCamera *self, int p1) {
133143 self->setCameraType (p1);
134144 });
@@ -141,6 +151,17 @@ void moduleAddBaseCamera(py::module &m)
141151 self->setCameraType (0 );
142152 });
143153
154+ c.def (" worldToScreenPoint" , [](BaseCamera *self, py::list pos) {
155+ sofa::defaulttype::Vec3 vec1;
156+ vec1 = sofa::defaulttype::Vec3 (py::cast<double >(pos[0 ]), py::cast<double >(pos[1 ]), py::cast<double >(pos[2 ]));
157+ return (self->worldToScreenPoint (vec1));
158+ });
159+
160+ c.def (" screenToWorldPoint" , [](BaseCamera *self, py::list pos) {
161+ sofa::defaulttype::Vec3 vec1;
162+ vec1 = sofa::defaulttype::Vec3 (py::cast<double >(pos[0 ]), py::cast<double >(pos[1 ]), py::cast<double >(pos[2 ]));
163+ return (self->screenToWorldPoint (vec1));
164+ });
144165}
145166
146167} // / namespace sofapython3
0 commit comments