63 using VecXBool = Eigen::Matrix<bool, Eigen::Dynamic, 1>;
64 using context::MatrixRef;
66 using context::VectorRef;
68 eigenpy::StdContainerFromPythonList<
69 std::vector<std::string>>::register_converter();
70 StdVectorPythonVisitor<std::vector<long>,
true>::expose(
"StdVec_long");
71 eigenpy::exposeStdVectorEigenSpecificType<context::Vector3s>(
73 StdVectorPythonVisitor<std::vector<bool>,
true>::expose(
"StdVec_bool");
74 StdVectorPythonVisitor<std::vector<int>,
true>::expose(
"StdVec_int");
75 StdVectorPythonVisitor<std::vector<Scalar>,
true>::expose(
"StdVec_Scalar");
76 StdVectorPythonVisitor<context::VectorOfVectors, true>::expose(
78 StdVectorPythonVisitor<std::vector<context::MatrixXs>,
true>::expose(
80 StdVectorPythonVisitor<std::vector<VecXBool>,
false>::expose(
82 StdVectorPythonVisitor<std::vector<VectorRef>,
true>::expose(
"StdVec_VecRef");
83 StdVectorPythonVisitor<std::vector<MatrixRef>,
true>::expose(
"StdVec_MatRef");
94 using aligator::context::ConstVectorRef;
96 bp::docstring_options module_docstring_options(
true,
true,
true);
98 bp::scope().attr(
"__version__") = ALIGATOR_VERSION;
99#ifdef ALIGATOR_MULTITHREADING
101 "Get the number of available threads.");
103 "Get the current number of threads.");
105 (
"num_threads"_a,
"dynamic"_a =
true));
107 eigenpy::enableEigenPy();
109 eigenpy::OptionalConverter<ConstVectorRef, std::optional>::registration();
110 eigenpy::detail::NoneToPython<std::nullopt_t>::registration();
113 eigenpy::StdVectorPythonVisitor<std::vector<std::string_view>,
true>::expose(
114 "StdVec_StringView");
116 bp::import(
"warnings");
119 "has_pinocchio_features",
120 +[]()
constexpr ->
bool {
122#ifdef ALIGATOR_WITH_PINOCCHIO
128 "Whether Aligator (and its Python bindings) were compiled with support "
158#ifdef ALIGATOR_WITH_PINOCCHIO
160 bp::import(
"pinocchio");
167#ifdef ALIGATOR_WITH_CROCODDYL_COMPAT
170 exposeCrocoddylCompat();