Skip to content

Commit c9670d5

Browse files
authored
Binding base camera (#110)
* Added bindings for camera methods
1 parent a427fa0 commit c9670d5

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

bindings/Sofa/src/SofaPython3/Sofa/Core/Binding_BaseCamera.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)