namespace OpenMM { class Platform { public: virtual std::string getName() const = 0; private: }; } // namespace OpenMM %inline %{ namespace OpenMM { int Platform_getNumPlatforms() { return OpenMM::Platform::getNumPlatforms(); } int Platform_build_with_cuda() { #ifdef USE_CUDA_PLATFORM return 1; #else return 0; #endif } int Platform_registerPlatform_cuda() { #ifdef USE_CUDA_PLATFORM OpenMM::Platform::registerPlatform(new CudaPlatform()); return 1; #else return 0; #endif } } // namespace OpenMM %}