44
55#include " BiorbdModel.h"
66#include " biorbdConfig.h"
7+ #ifdef _WIN32
8+ #define BIORBD_API_C __declspec (dllexport)
9+ #else
10+ #define BIORBD_API_C
11+ #endif
712
813namespace biorbd {
914namespace rigidbody {
@@ -15,63 +20,63 @@ class KalmanReconsIMU;
1520}
1621extern " C" {
1722 // Create a pointer on a model
18- BIORBD_API biorbd::Model* c_biorbdModel (
23+ BIORBD_API_C biorbd::Model* c_biorbdModel (
1924 const char * pathToModel);
20- BIORBD_API void c_deleteBiorbdModel (
25+ BIORBD_API_C void c_deleteBiorbdModel (
2126 biorbd::Model*);
22- BIORBD_API void c_writeBiorbdModel (
27+ BIORBD_API_C void c_writeBiorbdModel (
2328 biorbd::Model*, const char * path);
2429
2530
2631 // Joints functions
27- BIORBD_API void c_boneRotationSequence ( // Return the angle sequence of a bone named segName
32+ BIORBD_API_C void c_boneRotationSequence ( // Return the angle sequence of a bone named segName
2833 biorbd::Model* m,
2934 const char * segName,
3035 char * seq);
31- BIORBD_API void c_localJCS ( // Return the LCS for segment of index i in parent coordinate system
36+ BIORBD_API_C void c_localJCS ( // Return the LCS for segment of index i in parent coordinate system
3237 biorbd::Model* m,
3338 int i,
3439 double * RtOut);
35- BIORBD_API void c_globalJCS (
40+ BIORBD_API_C void c_globalJCS (
3641 biorbd::Model*,
3742 const double * Q,
3843 double * jcs);
39- BIORBD_API void c_inverseDynamics (
44+ BIORBD_API_C void c_inverseDynamics (
4045 biorbd::Model* model,
4146 const double * q,
4247 const double * qdot,
4348 const double * qddot,
4449 double * tau);
45- BIORBD_API void c_massMatrix (
50+ BIORBD_API_C void c_massMatrix (
4651 biorbd::Model* model,
4752 const double * q,
4853 double * massMatrix);
4954
5055
5156 // dof functions
52- BIORBD_API int c_nQ (
57+ BIORBD_API_C int c_nQ (
5358 biorbd::Model* model);
54- BIORBD_API int c_nQDot (
59+ BIORBD_API_C int c_nQDot (
5560 biorbd::Model* model);
56- BIORBD_API int c_nQDDot (
61+ BIORBD_API_C int c_nQDDot (
5762 biorbd::Model* model);
58- BIORBD_API int c_nGeneralizedTorque (
63+ BIORBD_API_C int c_nGeneralizedTorque (
5964 biorbd::Model* model);
6065
6166
6267 // Markers functions
63- BIORBD_API int c_nMarkers (
68+ BIORBD_API_C int c_nMarkers (
6469 biorbd::Model* model);
65- BIORBD_API void c_markersInLocal (
70+ BIORBD_API_C void c_markersInLocal (
6671 biorbd::Model* model,
6772 double * markPos);
68- BIORBD_API void c_markers (
73+ BIORBD_API_C void c_markers (
6974 biorbd::Model* model,
7075 const double * Q,
7176 double * markPos,
7277 bool removeAxis = true ,
7378 bool updateKin = true );
74- BIORBD_API void c_addMarker (
79+ BIORBD_API_C void c_addMarker (
7580 biorbd::Model *model,
7681 const double *markPos,
7782 const char * name = " " ,
@@ -81,9 +86,9 @@ extern "C" {
8186 const char * axesToRemove = " " );
8287
8388 // IMUs functions
84- BIORBD_API int c_nIMUs (
89+ BIORBD_API_C int c_nIMUs (
8590 biorbd::Model*);
86- BIORBD_API void c_addIMU (
91+ BIORBD_API_C void c_addIMU (
8792 biorbd::Model *model,
8893 const double *imuRT,
8994 const char * name = " " ,
@@ -93,15 +98,15 @@ extern "C" {
9398
9499 // Kalman IMU
95100#ifndef SKIP_KALMAN
96- BIORBD_API biorbd::rigidbody::KalmanReconsIMU* c_BiorbdKalmanReconsIMU (
101+ BIORBD_API_C biorbd::rigidbody::KalmanReconsIMU* c_BiorbdKalmanReconsIMU (
97102 biorbd::Model*,
98103 double * QinitialGuess = nullptr ,
99104 double freq = 100 ,
100105 double noiseF = 5e-3 ,
101106 double errorF = 1e-10 );
102- BIORBD_API void c_deleteBiorbdKalmanReconsIMU (
107+ BIORBD_API_C void c_deleteBiorbdKalmanReconsIMU (
103108 biorbd::rigidbody::KalmanReconsIMU*);
104- BIORBD_API void c_BiorbdKalmanReconsIMUstep (
109+ BIORBD_API_C void c_BiorbdKalmanReconsIMUstep (
105110 biorbd::Model*,
106111 biorbd::rigidbody::KalmanReconsIMU*,
107112 double * imu,
@@ -111,19 +116,19 @@ extern "C" {
111116#endif
112117
113118 // Math functions
114- BIORBD_API void c_matrixMultiplication (
119+ BIORBD_API_C void c_matrixMultiplication (
115120 const double * M1,
116121 const double * M2,
117122 double * Mout);
118- BIORBD_API void c_meanRT (
123+ BIORBD_API_C void c_meanRT (
119124 const double *imuRT,
120125 unsigned int nFrame,
121126 double * imuRT_mean);
122- BIORBD_API void c_projectJCSinParentBaseCoordinate (
127+ BIORBD_API_C void c_projectJCSinParentBaseCoordinate (
123128 const double * parent,
124129 const double * jcs,
125130 double * out);
126- BIORBD_API void c_transformMatrixToCardan (
131+ BIORBD_API_C void c_transformMatrixToCardan (
127132 const double * M,
128133 const char * sequence,
129134 double * cardanOut);
0 commit comments