63 using VecXBool = Eigen::Matrix<bool, Eigen::Dynamic, 1>;
64 using context::MatrixRef;
66 using context::VectorRef;
68 StdVectorPythonVisitor<std::vector<long>,
true>::expose(
"StdVec_long");
69 eigenpy::exposeStdVectorEigenSpecificType<context::Vector3s>(
71 StdVectorPythonVisitor<std::vector<bool>,
true>::expose(
"StdVec_bool");
72 StdVectorPythonVisitor<std::vector<int>,
true>::expose(
"StdVec_int");
73 StdVectorPythonVisitor<std::vector<Scalar>,
true>::expose(
"StdVec_Scalar");
74 StdVectorPythonVisitor<context::VectorOfVectors, true>::expose(
76 StdVectorPythonVisitor<std::vector<context::MatrixXs>,
true>::expose(
78 StdVectorPythonVisitor<std::vector<VecXBool>,
false>::expose(
80 StdVectorPythonVisitor<std::vector<VectorRef>,
true>::expose(
"StdVec_VecRef");
81 StdVectorPythonVisitor<std::vector<MatrixRef>,
true>::expose(
"StdVec_MatRef");
92 using aligator::context::ConstVectorRef;
94 bp::docstring_options module_docstring_options(
true,
true,
true);
96 bp::scope().attr(
"__version__") = ALIGATOR_VERSION;
97#ifdef ALIGATOR_MULTITHREADING
99 "Get the number of available threads.");
101 "Get the current number of threads.");
103 (
"num_threads"_a,
"dynamic"_a =
true));
105 eigenpy::enableEigenPy();
107 eigenpy::OptionalConverter<ConstVectorRef, std::optional>::registration();
108 eigenpy::detail::NoneToPython<std::nullopt_t>::registration();
111 eigenpy::StdVectorPythonVisitor<std::vector<std::string_view>,
true>::expose(
112 "StdVec_StringView");
114 bp::import(
"warnings");
117 "has_pinocchio_features",
118 +[]()
constexpr ->
bool {
120#ifdef ALIGATOR_WITH_PINOCCHIO
126 "Whether Aligator (and its Python bindings) were compiled with support "
156#ifdef ALIGATOR_WITH_PINOCCHIO
158 bp::import(
"pinocchio");
165#ifdef ALIGATOR_WITH_CROCODDYL_COMPAT
168 exposeCrocoddylCompat();