Skip to content

Commit 9f8e44f

Browse files
committed
Fix SWIG wrapping of vehicle transmission classes
(cherry picked from commit 5c7b0e0)
1 parent 525fc53 commit 9f8e44f

4 files changed

Lines changed: 37 additions & 30 deletions

File tree

src/chrono_swig/interface/vehicle/ChEngine.i

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#include "chrono_vehicle/ChPowertrainAssembly.h" // Testing
55
%}
66

7-
%include "chrono_vehicle/ChPart.h"
8-
%include "chrono_vehicle/ChEngine.h"
9-
// Include ChPowertrainAssembly - test
10-
%include "chrono_vehicle/ChPowertrainAssembly.h"
7+
%include "../../../chrono_vehicle/ChPart.h"
8+
%include "../../../chrono_vehicle/ChEngine.h"
9+
%include "../../../chrono_vehicle/ChPowertrainAssembly.h"

src/chrono_swig/interface/vehicle/ChModuleVehicle.i

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -269,8 +269,6 @@ Before adding a shared_ptr, mark as shared ptr all its inheritance tree in the m
269269
%shared_ptr(chrono::vehicle::ChEngineShafts)
270270

271271
%shared_ptr(chrono::vehicle::ChTransmission)
272-
%shared_ptr(chrono::vehicle::ChAutomaticTransmission)
273-
%shared_ptr(chrono::vehicle::ChManualTransmission)
274272

275273
// Expose for both python and csharp
276274
%shared_ptr(chrono::vehicle::ChVehicleVisualSystem)
@@ -323,7 +321,7 @@ Before adding a shared_ptr, mark as shared ptr all its inheritance tree in the m
323321
%template(ChAxleList) std::vector<std::shared_ptr<chrono::vehicle::ChAxle> > ;
324322

325323

326-
#ifdef SWIGPYTHON
324+
#ifdef SWIGPYTHON // --------------------------------------------------------------------- PYTHON
327325

328326
#ifdef CHRONO_IRRLICHT
329327
#define ChApiIrr
@@ -332,7 +330,7 @@ Before adding a shared_ptr, mark as shared ptr all its inheritance tree in the m
332330
%include "chrono_swig/interface/vehicle/ChVehicleVisualSystemIrrlicht.i"
333331
#endif
334332

335-
#endif // ----- end PYTHON
333+
#endif // ----------------------------------------------------------------- end PYTHON
336334

337335
// TODO:
338336
//%include "rapidjson.i"
@@ -471,6 +469,12 @@ Before adding a shared_ptr, mark as shared ptr all its inheritance tree in the m
471469
%DefSharedPtrDynamicCast(chrono::vehicle,ChTransmission, ChManualTransmissionShafts)
472470
%DefSharedPtrDynamicCast(chrono::vehicle,ChTransmission, ManualTransmissionShafts)
473471

472+
%DefSharedPtrDynamicCast(chrono::vehicle, ChTransmission, ChAutomaticTransmission);
473+
%DefSharedPtrDynamicCast(chrono::vehicle, ChAutomaticTransmission, ChAutomaticTransmissionSimpleMap);
474+
%DefSharedPtrDynamicCast(chrono::vehicle, ChAutomaticTransmission, ChAutomaticTransmissionShafts);
475+
%DefSharedPtrDynamicCast(chrono::vehicle, ChTransmission, ChManualTransmission);
476+
%DefSharedPtrDynamicCast(chrono::vehicle, ChManualTransmission, ChManualTransmissionShafts);
477+
474478
%DefSharedPtrDynamicCast(chrono::vehicle,ChDriveline, ChDrivelineWV)
475479
%DefSharedPtrDynamicCast(chrono::vehicle,ChDriveline, ChShaftsDriveline2WD)
476480
%DefSharedPtrDynamicCast(chrono::vehicle,ChDriveline, ChShaftsDriveline4WD)

src/chrono_swig/interface/vehicle/ChPowertrain.i

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
#include "chrono_vehicle/powertrain/EngineSimpleMap.h"
2424
#include "chrono_vehicle/powertrain/EngineShafts.h"
2525

26+
#include "chrono_vehicle/ChTransmission.h"
27+
2628
#include "chrono_vehicle/powertrain/ChAutomaticTransmissionSimpleMap.h"
2729
#include "chrono_vehicle/powertrain/ChAutomaticTransmissionShafts.h"
2830
#include "chrono_vehicle/powertrain/AutomaticTransmissionSimpleMap.h"
@@ -40,14 +42,6 @@
4042
%shared_ptr(chrono::vehicle::EngineSimpleMap)
4143
%shared_ptr(chrono::vehicle::EngineShafts)
4244

43-
%shared_ptr(chrono::vehicle::ChAutomaticTransmissionSimpleMap)
44-
%shared_ptr(chrono::vehicle::ChAutomaticTransmissionShafts)
45-
%shared_ptr(chrono::vehicle::AutomaticTransmissionSimpleMap)
46-
%shared_ptr(chrono::vehicle::AutomaticTransmissionShafts)
47-
%shared_ptr(chrono::vehicle::ChManualTransmissionShafts)
48-
%shared_ptr(chrono::vehicle::ManualTransmissionShafts)
49-
50-
5145
%import "../../../chrono_vehicle/ChPart.h"
5246

5347
#ifdef SWIGCSHARP
@@ -61,17 +55,11 @@
6155
// Parse the header file to generate wrappers
6256
%include "../../../chrono_vehicle/ChPowertrainAssembly.h"
6357

58+
6459
%include "../../../chrono_vehicle/powertrain/ChEngineSimple.h"
6560
%include "../../../chrono_vehicle/powertrain/ChEngineSimpleMap.h"
6661
%include "../../../chrono_vehicle/powertrain/ChEngineShafts.h"
6762
%include "../../../chrono_vehicle/powertrain/EngineSimple.h"
6863
%include "../../../chrono_vehicle/powertrain/EngineSimpleMap.h"
6964
%include "../../../chrono_vehicle/powertrain/EngineShafts.h"
7065

71-
%include "../../../chrono_vehicle/powertrain/ChAutomaticTransmissionSimpleMap.h"
72-
%include "../../../chrono_vehicle/powertrain/ChAutomaticTransmissionShafts.h"
73-
%include "../../../chrono_vehicle/powertrain/AutomaticTransmissionSimpleMap.h"
74-
%include "../../../chrono_vehicle/powertrain/AutomaticTransmissionShafts.h"
75-
%include "../../../chrono_vehicle/powertrain/ChManualTransmissionShafts.h"
76-
%include "../../../chrono_vehicle/powertrain/ManualTransmissionShafts.h"
77-

src/chrono_swig/interface/vehicle/ChTransmission.i

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,34 @@
22

33
%csmethodmodifiers chrono::vehicle::ChTransmission::GetType "public virtual new"
44

5-
#endif // --------------------------------------------------------------------- CSHARP
6-
5+
#endif // ----------------------------------------------------------------- end CSHARP
76

87
%{
98
#include "chrono_vehicle/ChPart.h"
109
#include "chrono_vehicle/ChTransmission.h"
11-
//#include "chrono_vehicle/ChPowertrainAssembly.h" // Included for testing
10+
#include "chrono_vehicle/powertrain/ChAutomaticTransmissionSimpleMap.h"
11+
#include "chrono_vehicle/powertrain/AutomaticTransmissionSimpleMap.h"
12+
#include "chrono_vehicle/powertrain/ChAutomaticTransmissionShafts.h"
13+
#include "chrono_vehicle/powertrain/AutomaticTransmissionShafts.h"
14+
#include "chrono_vehicle/powertrain/ChManualTransmissionShafts.h"
15+
#include "chrono_vehicle/powertrain/ManualTransmissionShafts.h"
1216
%}
1317

18+
%shared_ptr(chrono::vehicle::ChAutomaticTransmission)
19+
%shared_ptr(chrono::vehicle::ChManualTransmission)
20+
%shared_ptr(chrono::vehicle::ChAutomaticTransmissionSimpleMap)
21+
%shared_ptr(chrono::vehicle::AutomaticTransmissionSimpleMap)
22+
%shared_ptr(chrono::vehicle::ChAutomaticTransmissionShafts)
23+
%shared_ptr(chrono::vehicle::AutomaticTransmissionShafts)
24+
%shared_ptr(chrono::vehicle::ChManualTransmissionShafts)
25+
%shared_ptr(chrono::vehicle::ManualTransmissionShafts)
1426

15-
%include "chrono_vehicle/ChPart.h"
16-
%include "chrono_vehicle/ChTransmission.h"
17-
// Include ChPowertrainAssembly if necessary
18-
//%include "chrono_vehicle/ChPowertrainAssembly.h"
27+
%include "../../../chrono_vehicle/ChPart.h"
28+
%include "../../../chrono_vehicle/ChTransmission.h"
29+
%include "../../../chrono_vehicle/powertrain/ChAutomaticTransmissionSimpleMap.h"
30+
%include "../../../chrono_vehicle/powertrain/AutomaticTransmissionSimpleMap.h"
31+
%include "../../../chrono_vehicle/powertrain/ChAutomaticTransmissionShafts.h"
32+
%include "../../../chrono_vehicle/powertrain/AutomaticTransmissionShafts.h"
33+
%include "../../../chrono_vehicle/powertrain/ChManualTransmissionShafts.h"
34+
%include "../../../chrono_vehicle/powertrain/ManualTransmissionShafts.h"
1935

0 commit comments

Comments
 (0)