#ifndef OPENMM_CWRAPPER_H_ #define OPENMM_CWRAPPER_H_ #ifndef OPENMM_EXPORT #define OPENMM_EXPORT #endif /* Global Constants */ static /* Type Declarations */ typedef struct OpenMM_ typedef struct OpenMM_Vec3Array_struct OpenMM_Vec3Array; typedef struct OpenMM_StringArray_struct OpenMM_StringArray; typedef struct OpenMM_BondArray_struct OpenMM_BondArray; typedef struct OpenMM_ParameterArray_struct OpenMM_ParameterArray; typedef struct OpenMM_PropertyArray_struct OpenMM_PropertyArray; typedef struct OpenMM_DoubleArray_struct OpenMM_DoubleArray; typedef struct OpenMM_IntArray_struct OpenMM_IntArray; typedef struct {double x, y, z;} OpenMM_Vec3; typedef enum {OpenMM_False = 0, OpenMM_True = 1} OpenMM_Boolean; #if defined(__cplusplus) extern "C" { #endif /* OpenMM_Vec3 */ extern OPENMM_EXPORT OpenMM_Vec3 OpenMM_Vec3_scale(const OpenMM_Vec3 vec, double scale); /* OpenMM_Vec3Array */ extern OPENMM_EXPORT OpenMM_Vec3Array* OpenMM_Vec3Array_create(int size); extern OPENMM_EXPORT void OpenMM_Vec3Array_destroy(OpenMM_Vec3Array* array); extern OPENMM_EXPORT int OpenMM_Vec3Array_getSize(const OpenMM_Vec3Array* array); extern OPENMM_EXPORT void OpenMM_Vec3Array_resize(OpenMM_Vec3Array* array, int size); extern OPENMM_EXPORT void OpenMM_Vec3Array_append(OpenMM_Vec3Array* array, const OpenMM_Vec3 vec); extern OPENMM_EXPORT void OpenMM_Vec3Array_set(OpenMM_Vec3Array* array, int index, const OpenMM_Vec3 vec); extern OPENMM_EXPORT const OpenMM_Vec3* OpenMM_Vec3Array_get(const OpenMM_Vec3Array* array, int index); /* OpenMM_StringArray */ extern OPENMM_EXPORT OpenMM_StringArray* OpenMM_StringArray_create(int size); extern OPENMM_EXPORT void OpenMM_StringArray_destroy(OpenMM_StringArray* array); extern OPENMM_EXPORT int OpenMM_StringArray_getSize(const OpenMM_StringArray* array); extern OPENMM_EXPORT void OpenMM_StringArray_resize(OpenMM_StringArray* array, int size); extern OPENMM_EXPORT void OpenMM_StringArray_append(OpenMM_StringArray* array, const char* string); extern OPENMM_EXPORT void OpenMM_StringArray_set(OpenMM_StringArray* array, int index, const char* string); extern OPENMM_EXPORT const char* OpenMM_StringArray_get(const OpenMM_StringArray* array, int index); /* OpenMM_BondArray */ extern OPENMM_EXPORT OpenMM_BondArray* OpenMM_BondArray_create(int size); extern OPENMM_EXPORT void OpenMM_BondArray_destroy(OpenMM_BondArray* array); extern OPENMM_EXPORT int OpenMM_BondArray_getSize(const OpenMM_BondArray* array); extern OPENMM_EXPORT void OpenMM_BondArray_resize(OpenMM_BondArray* array, int size); extern OPENMM_EXPORT void OpenMM_BondArray_append(OpenMM_BondArray* array, int particle1, int particle2); extern OPENMM_EXPORT void OpenMM_BondArray_set(OpenMM_BondArray* array, int index, int particle1, int particle2); extern OPENMM_EXPORT void OpenMM_BondArray_get(const OpenMM_BondArray* array, int index, int* particle1, int* particle2); /* OpenMM_ParameterArray */ extern OPENMM_EXPORT int OpenMM_ParameterArray_getSize(const OpenMM_ParameterArray* array); extern OPENMM_EXPORT double OpenMM_ParameterArray_get(const OpenMM_ParameterArray* array, const char* name); /* OpenMM_PropertyArray */ extern OPENMM_EXPORT int OpenMM_PropertyArray_getSize(const OpenMM_PropertyArray* array); extern OPENMM_EXPORT const char* OpenMM_PropertyArray_get(const OpenMM_PropertyArray* array, const char* name); /* These methods need to be handled specially, since their C++ APIs cannot be directly translated to C. Unlike the C++ versions, the return value is allocated on the heap, and you must delete it yourself. */ extern OPENMM_EXPORT OpenMM_State* OpenMM_Context_getState(const OpenMM_Context* target, int types, int enforcePeriodicBox); extern OPENMM_EXPORT OpenMM_StringArray* OpenMM_Platform_loadPluginsFromDirectory(const char* directory); #if defined(__cplusplus) } #endif #endif /*OPENMM_CWRAPPER_H_*/ /* */ extern OPENMM_EXPORT * _create(int size); extern OPENMM_EXPORT void _destroy(* array); extern OPENMM_EXPORT int _getSize(const * array); extern OPENMM_EXPORT void _resize(* array, int size); extern OPENMM_EXPORT void _append(* array, value); extern OPENMM_EXPORT void _set(* array, int index, value); extern OPENMM_EXPORT _get(const * array, int index); /* OpenMM:: extern OPENMM_EXPORT void OpenMM_ typedef enum { , } OpenMM_ extern OPENMM_EXPORT OpenMM_ , extern OPENMM_EXPORT , 1