/* FORM2 : Formulae et al for the Moment of inertia problems */



{ problem_solving_rules }.
%-------------------------


			% Moment of Inertia

relates(moment_of_inertia,[mass,rofg]).



prepare(moment_of_inertia,Q,rofg,rad_of_gyr(Obj,axis(X),RG),
		situation(Obj,axis(X))).



isform(moment_of_inertia, situation(Obj,axis(X)),
		M*RG^2 = integrate(Mf*RGf^2, A,B,Y0))
    <-- mass(Obj,M) &
	rad_of_gyr(Obj,axis(X),RG) &
	{ cont_meas(Obj,Y0,axis(X),Fibre,A,B) } &
	mass(Fibre,Mf) &
	rad_of_gyr(Fibre,axis(X),RGf).



			% Parallel Axes

relates(parallel_axes,[rofg]).



prepare(parallel_axes,Q,rofg,rad_of_gyr(Obj,Axis,RG),
		situation(Obj,Axis,Newaxis))
    <--	meets(Axis,Obj,Axpt) &
	centre(Obj,Origin) &
	{ diff(Axpt,Origin) } &
	meets(Newaxis,Obj,Origin) &
	parallel(Axis,Newaxis).



isform(parallel_axes, situation(Obj,RealAxis,CentreAxis),
		RG = RGC + A^2 )
    <--	rad_of_gyr(Obj,RealAxis,RG) &
	rad_of_gyr(Obj,CentreAxis,RGC) &
	perp_dist(RealAxis,CentreAxis,A,Dir).



