Skip to content

Commit 76dd20d

Browse files
committed
Fix export of optional parts in base/types
1 parent d2da516 commit 76dd20d

File tree

5 files changed

+27
-14
lines changed

5 files changed

+27
-14
lines changed

CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ if (SISL_FOUND)
2222
include_directories(${SISL_INCLUDE_DIRS})
2323
list(APPEND TOOLKIT_ADDITIONAL_SOURCES ${CMAKE_SOURCE_DIR}/src/spline.cpp)
2424
list(APPEND TOOLKIT_ADDITIONAL_LIBRARIES ${BASELIB_LIBRARIES} ${SISL_LIBRARIES})
25+
add_definitions("-DWITH_SISL=1")
26+
list(APPEND PKG_CFLAGS "-DWITH_SISL=1")
27+
else()
28+
add_definitions("-DWITH_SISL=0")
29+
list(APPEND PKG_CFLAGS "-DWITH_SISL=0")
2530
endif()
2631

2732
INCLUDE(baseBase)

base.orogen

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ using_library 'base-types'
77
import_types_from "base/Temperature.hpp"
88
import_types_from "base/Pressure.hpp"
99
import_types_from "base/Time.hpp"
10-
import_types_from "base/Trajectory.hpp"
1110
import_types_from "base/commands/LinearAngular6DCommand.hpp"
1211
import_types_from "base/commands/Motion2D.hpp"
1312
import_types_from "base/commands/Speed6D.hpp"
@@ -34,6 +33,7 @@ if has_library?('base-lib')
3433
using_library 'base-lib'
3534
# Opaque wrappers for Spline types
3635
import_types_from 'base/wrappers/geometry/Spline.hpp'
36+
import_types_from "base/Trajectory.hpp"
3737
end
3838

3939
# Opaque wrappers for Eigen types
@@ -74,6 +74,7 @@ max_sizes '/base/samples/RigidBodyState', 'sourceFrame' => 32, 'targetFrame' =>
7474

7575
# Explicitely intanciate ro_ptr wrappers for Frame and FramePair as it is the
7676
# standard way to push this kind of types on ports
77+
has_base_lib = has_library?('base-lib')
7778
typekit do
7879
roptr_frame_t = ro_ptr('/base/samples/frame/Frame')
7980
roptr_framepair_t = ro_ptr('/base/samples/frame/FramePair')
@@ -106,8 +107,6 @@ typekit do
106107
'/base/JointTransformVector',
107108
'/base/JointsTrajectory',
108109
'/base/LinearAngular6DCommand',
109-
'/base/Trajectory',
110-
'/std/vector</base/Trajectory>',
111110
'/base/samples/Joints',
112111
'/base/samples/Pointcloud',
113112
'/base/samples/DistanceImage',
@@ -129,8 +128,6 @@ typekit do
129128
'/base/samples/Wrenches',
130129
'/base/samples/Motion2D',
131130
'/base/samples/DepthMap',
132-
'/base/geometry/Spline<1>',
133-
'/base/geometry/Spline<3>',
134131
'/base/Time',
135132
'/base/Position',
136133
'/std/vector</base/Vector3d>',
@@ -157,6 +154,13 @@ typekit do
157154
'/base/samples/Pressure',
158155
'/std/vector</std/string>'
159156

157+
if has_base_lib
158+
export_types '/base/Trajectory',
159+
'/std/vector</base/Trajectory>',
160+
'/base/geometry/Spline<1>',
161+
'/base/geometry/Spline<3>'
162+
end
163+
160164
ros_mappings \
161165
'/std/string' => 'std_msgs/String',
162166
'/base/Time' => 'std_msgs/Time',

test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
pkg_check_modules(BASE REQUIRED "base-lib")
1+
pkg_check_modules(BASE REQUIRED "base-types")
22
include_directories(${BASE_INCLUDE_DIRS})
33
link_directories(${BASE_LIBRARY_DIRS})
44

typekit/Opaques.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
* Opaques.hpp
88
*/
99

10+
#if WITH_SISL
1011
void orogen_typekits::toIntermediate(::wrappers::geometry::Spline& intermediate, ::base::geometry::SplineBase const& real_type)
1112
{
1213
intermediate = wrappers::geometry::Spline(real_type);
@@ -19,6 +20,7 @@ void orogen_typekits::fromIntermediate(::base::geometry::SplineBase& real_type,
1920
result.reset(intermediate.vertices, intermediate.knots, intermediate.kind);
2021
real_type = result;
2122
}
23+
#endif // WITH_SISL
2224

2325

2426
void orogen_typekits::toIntermediate(::wrappers::Matrix<double, 4, 4>& intermediate, ::base::Affine3d const& real)

typekit/Opaques.hpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ namespace orogen_typekits
1818
for(int i=0; i < ROWS*COLS; ++i)
1919
real(i / COLS, i % COLS) = intermediate.data[i];
2020
}
21-
21+
2222

2323
template<typename T, int ROWS, int COLS, int EIGEN_OPTIONS, int EIGEN_MAX_ROWS, int EIGEN_MAX_COLS>
2424
void toIntermediate(::wrappers::MatrixX<T>& intermediate, Eigen::Matrix<T, ROWS, COLS, EIGEN_OPTIONS, EIGEN_MAX_ROWS, EIGEN_MAX_COLS> const& real)
@@ -28,7 +28,7 @@ namespace orogen_typekits
2828
intermediate.cols = real.cols();
2929

3030
typedef Eigen::Matrix<T,ROWS,COLS,EIGEN_OPTIONS,EIGEN_MAX_ROWS,EIGEN_MAX_COLS> EigenMatrix;
31-
31+
3232
Eigen::Map<EigenMatrix> m(&(intermediate.data[0]),real.rows(), real.cols());
3333
m = real;
3434
}
@@ -37,7 +37,7 @@ namespace orogen_typekits
3737
void fromIntermediate(Eigen::Matrix<T, ROWS, COLS, EIGEN_OPTIONS, EIGEN_MAX_ROWS, EIGEN_MAX_COLS>& real, ::wrappers::MatrixX<T> const& intermediate)
3838
{
3939
typedef const Eigen::Matrix<T,ROWS,COLS,EIGEN_OPTIONS,EIGEN_MAX_ROWS,EIGEN_MAX_COLS> EigenMatrix;
40-
40+
4141
if (static_cast<int>(intermediate.data.size()) != intermediate.rows * intermediate.cols)
4242
throw std::logic_error("vector size does not match rows and cols in /wrappers/MatrixX");
4343

@@ -55,17 +55,17 @@ namespace orogen_typekits
5555
template<typename T, int EIGEN_OPTIONS, int EIGEN_MAX_ROWS, int EIGEN_MAX_COLS>
5656
void fromIntermediate(Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic, EIGEN_OPTIONS, EIGEN_MAX_ROWS, EIGEN_MAX_COLS>& real, wrappers::MatrixX<T> const& intermediate)
5757
{
58-
fromIntermediate<T, Eigen::Dynamic, Eigen::Dynamic, EIGEN_OPTIONS, EIGEN_MAX_ROWS, EIGEN_MAX_COLS>(real, intermediate);
58+
fromIntermediate<T, Eigen::Dynamic, Eigen::Dynamic, EIGEN_OPTIONS, EIGEN_MAX_ROWS, EIGEN_MAX_COLS>(real, intermediate);
5959
}
6060

61-
61+
6262
template<typename T, int EIGEN_OPTIONS, int EIGEN_MAX_ROWS, int EIGEN_MAX_COLS>
6363
void toIntermediate(wrappers::VectorX<T>& intermediate, Eigen::Matrix<T, Eigen::Dynamic, 1, EIGEN_OPTIONS, EIGEN_MAX_ROWS, EIGEN_MAX_COLS> const& real)
6464
{
6565
typedef Eigen::Matrix<T,Eigen::Dynamic,1,EIGEN_OPTIONS,EIGEN_MAX_ROWS,EIGEN_MAX_COLS> EigenVector;
66-
66+
6767
intermediate.data.resize(real.size(),0.0);
68-
68+
6969
Eigen::Map<EigenVector> m(&(intermediate.data[0]),real.size());
7070
m = real;
7171
}
@@ -74,7 +74,7 @@ namespace orogen_typekits
7474
void fromIntermediate(Eigen::Matrix<T, Eigen::Dynamic, 1, EIGEN_OPTIONS, EIGEN_MAX_ROWS, EIGEN_MAX_COLS>& real, wrappers::VectorX<T> const& intermediate)
7575
{
7676
typedef const Eigen::Matrix<T,Eigen::Dynamic,1,EIGEN_OPTIONS,EIGEN_MAX_ROWS,EIGEN_MAX_COLS> EigenVector;
77-
77+
7878
Eigen::Map<EigenVector> m(&(intermediate.data[0]),intermediate.data.size());
7979
real = m;
8080
}
@@ -116,9 +116,11 @@ namespace orogen_typekits
116116
real.axis()[2] = intermediate.axis[2];
117117
}
118118

119+
#if WITH_SISL
119120
void toIntermediate(::wrappers::geometry::Spline& intermediate, ::base::geometry::SplineBase const& real_type);
120121

121122
void fromIntermediate(::base::geometry::SplineBase& real_type, ::wrappers::geometry::Spline const& intermediate);
123+
#endif // WITH_SISL
122124

123125

124126
void toIntermediate(::wrappers::Matrix<double, 4, 4>& intermediate, ::base::Affine3d const& real);

0 commit comments

Comments
 (0)