#ifdef __cplusplus
extern "C" {
#endif
+#ifdef __cplusplus
+class Variable;
+#else
typedef struct Variable Variable;
+#endif
Variable* newVariable(int id, double desiredPos, double weight);
void setVariableDesiredPos(Variable *, double desiredPos);
double getVariablePos(Variable*);
+#ifdef __cplusplus
+class Constraint;
+#else
typedef struct Constraint Constraint;
+#endif
Constraint* newConstraint(Variable* left, Variable* right, double gap);
+#ifdef __cplusplus
+class VPSC;
+#else
typedef struct VPSC VPSC;
+#endif
VPSC* newVPSC(int n, Variable* vs[], int m, Constraint* cs[]);
void deleteVPSC(VPSC*);
void deleteConstraint(Constraint*);
void satisfyVPSC(VPSC*);
void solveVPSC(VPSC*);
+#ifdef __cplusplus
+class IncVPSC;
+#else
typedef struct IncVPSC IncVPSC;
+#endif
VPSC* newIncVPSC(int n, Variable* vs[], int m, Constraint* cs[]);
void splitIncVPSC(IncVPSC*);
int getSplitCnt(IncVPSC *vpsc);