class MyMass:CMass
{
	F64 radius;
};

class MySpring:CSpring
{

};

CMathODE *ode = NULL;

U0 MyDerivative(CMathODE *ode, F64, COrder2D3 *, COrder2D3 *)
{
	MyMass *tmpm1, *tmpm2;

	tmpm1 = ode->next_mass;
	while (tmpm1 != &ode->next_mass)
	{
		tmpm2 = tmpm1->next;
		while (tmpm2 != &ode->next_mass)
		{
			tmpm2 = tmpm2->next;
		}
		tmpm1 = tmpm1->next;
	}
}

U0 Init()
{
	ode = ODENew(0, 1e-4, ODEF_HAS_MASSES);
	ode->derive				= &MyDerivative;
	ode->drag_v2			= 0.002;
	ode->drag_v3			= 0.00001;
	ode->acceleration_limit	= 5e3;

	QueueInsert(ode, Fs->last_ode);
}

U0 CleanUp()
{
	QueueRemove(ode);
	QueueDel(&ode->next_mass,   TRUE);
	QueueDel(&ode->next_spring, TRUE);
	ODEDel(ode);
}
