@@ -37,7 +37,7 @@ void define_collision_stencil(py::module_& m)
37
37
)ipc_Qu8mg5v7" ,
38
38
py::arg (" edges" ), py::arg (" faces" ))
39
39
.def (
40
- " vertices" , &CollisionStencil::vertices< double > ,
40
+ " vertices" , &CollisionStencil::vertices,
41
41
R"ipc_Qu8mg5v7(
42
42
Get the vertex attributes of the collision stencil.
43
43
@@ -53,7 +53,7 @@ void define_collision_stencil(py::module_& m)
53
53
)ipc_Qu8mg5v7" ,
54
54
py::arg (" vertices" ), py::arg (" edges" ), py::arg (" faces" ))
55
55
.def (
56
- " dof" , &CollisionStencil::dof< double > ,
56
+ " dof" , &CollisionStencil::dof,
57
57
R"ipc_Qu8mg5v7(
58
58
Select this stencil's DOF from the full matrix of DOF.
59
59
@@ -71,8 +71,9 @@ void define_collision_stencil(py::module_& m)
71
71
.def (
72
72
" compute_distance" ,
73
73
py::overload_cast<
74
- const Eigen::MatrixXd&, const Eigen::MatrixXi&,
75
- const Eigen::MatrixXi&>(
74
+ Eigen::ConstRef<Eigen::MatrixXd>,
75
+ Eigen::ConstRef<Eigen::MatrixXi>,
76
+ Eigen::ConstRef<Eigen::MatrixXi>>(
76
77
&CollisionStencil::compute_distance, py::const_),
77
78
R"ipc_Qu8mg5v7(
78
79
Compute the distance of the stencil.
@@ -89,8 +90,9 @@ void define_collision_stencil(py::module_& m)
89
90
.def (
90
91
" compute_distance_gradient" ,
91
92
py::overload_cast<
92
- const Eigen::MatrixXd&, const Eigen::MatrixXi&,
93
- const Eigen::MatrixXi&>(
93
+ Eigen::ConstRef<Eigen::MatrixXd>,
94
+ Eigen::ConstRef<Eigen::MatrixXi>,
95
+ Eigen::ConstRef<Eigen::MatrixXi>>(
94
96
&CollisionStencil::compute_distance_gradient, py::const_),
95
97
R"ipc_Qu8mg5v7(
96
98
Compute the distance gradient of the stencil w.r.t. the stencil's vertex positions.
@@ -107,8 +109,9 @@ void define_collision_stencil(py::module_& m)
107
109
.def (
108
110
" compute_distance_hessian" ,
109
111
py::overload_cast<
110
- const Eigen::MatrixXd&, const Eigen::MatrixXi&,
111
- const Eigen::MatrixXi&>(
112
+ Eigen::ConstRef<Eigen::MatrixXd>,
113
+ Eigen::ConstRef<Eigen::MatrixXi>,
114
+ Eigen::ConstRef<Eigen::MatrixXi>>(
112
115
&CollisionStencil::compute_distance_hessian, py::const_),
113
116
R"ipc_Qu8mg5v7(
114
117
Compute the distance Hessian of the stencil w.r.t. the stencil's vertex positions.
@@ -124,7 +127,7 @@ void define_collision_stencil(py::module_& m)
124
127
py::arg (" vertices" ), py::arg (" edges" ), py::arg (" faces" ))
125
128
.def (
126
129
" compute_distance" ,
127
- py::overload_cast<const VectorMax12d& >(
130
+ py::overload_cast<Eigen::ConstRef< VectorMax12d> >(
128
131
&CollisionStencil::compute_distance, py::const_),
129
132
R"ipc_Qu8mg5v7(
130
133
Compute the distance of the stencil.
@@ -141,7 +144,7 @@ void define_collision_stencil(py::module_& m)
141
144
py::arg (" positions" ))
142
145
.def (
143
146
" compute_distance_gradient" ,
144
- py::overload_cast<const VectorMax12d& >(
147
+ py::overload_cast<Eigen::ConstRef< VectorMax12d> >(
145
148
&CollisionStencil::compute_distance_gradient, py::const_),
146
149
R"ipc_Qu8mg5v7(
147
150
Compute the distance gradient of the stencil w.r.t. the stencil's vertex positions.
@@ -158,7 +161,7 @@ void define_collision_stencil(py::module_& m)
158
161
py::arg (" positions" ))
159
162
.def (
160
163
" compute_distance_hessian" ,
161
- py::overload_cast<const VectorMax12d& >(
164
+ py::overload_cast<Eigen::ConstRef< VectorMax12d> >(
162
165
&CollisionStencil::compute_distance_hessian, py::const_),
163
166
R"ipc_Qu8mg5v7(
164
167
Compute the distance Hessian of the stencil w.r.t. the stencil's vertex positions.
@@ -175,9 +178,11 @@ void define_collision_stencil(py::module_& m)
175
178
py::arg (" positions" ))
176
179
.def (
177
180
" ccd" ,
178
- [](const CollisionStencil& self, const VectorMax12d& vertices_t0,
179
- const VectorMax12d& vertices_t1, const double min_distance,
180
- const double tmax, const NarrowPhaseCCD& narrow_phase_ccd) {
181
+ [](const CollisionStencil& self,
182
+ Eigen::ConstRef<VectorMax12d> vertices_t0,
183
+ Eigen::ConstRef<VectorMax12d> vertices_t1,
184
+ const double min_distance, const double tmax,
185
+ const NarrowPhaseCCD& narrow_phase_ccd) {
181
186
double toi;
182
187
bool r = self.ccd (
183
188
vertices_t0, vertices_t1, toi, min_distance, tmax,
@@ -204,8 +209,9 @@ void define_collision_stencil(py::module_& m)
204
209
py::arg (" narrow_phase_ccd" ) = DEFAULT_NARROW_PHASE_CCD)
205
210
.def (
206
211
" print_ccd_query" ,
207
- [](const CollisionStencil& self, const VectorMax12d& vertices_t0,
208
- const VectorMax12d& vertices_t1) -> void {
212
+ [](const CollisionStencil& self,
213
+ Eigen::ConstRef<VectorMax12d> vertices_t0,
214
+ Eigen::ConstRef<VectorMax12d> vertices_t1) -> void {
209
215
self.write_ccd_query (std::cout, vertices_t0, vertices_t1);
210
216
},
211
217
R"ipc_Qu8mg5v7(
0 commit comments