+struct Line_details {
+ Real force_;
+ Interval extent_; /* Y-extent of the system */
+
+ Real padding_; /* compulsory space after this system (if we're not
+ last on a page) */
+ Real bottom_padding_;
+ Real space_; /* spring length */
+ Real inverse_hooke_;
+
+ SCM break_permission_;
+ SCM page_permission_;
+ SCM turn_permission_;
+ Real break_penalty_;
+ Real page_penalty_;
+ Real turn_penalty_;
+
+ bool title_;
+
+ Line_details ()
+ {
+ force_ = infinity_f;
+ padding_ = 0;
+ bottom_padding_ = 0;
+ space_ = 0;
+ inverse_hooke_ = 1;
+ break_permission_ = ly_symbol2scm ("allow");
+ page_permission_ = ly_symbol2scm ("allow");
+ turn_permission_ = ly_symbol2scm ("allow");
+ break_penalty_ = 0;
+ page_penalty_ = 0;
+ turn_penalty_ = 0;
+ title_ = false;
+ }
+
+ Line_details (Prob *pb)
+ {
+ force_ = 0;
+ extent_ = unsmob_stencil (pb->get_property ("stencil")) ->extent (Y_AXIS);
+ padding_ = robust_scm2double (pb->get_property ("next-padding"), 0);
+ bottom_padding_ = 0;
+ space_ = robust_scm2double (pb->get_property ("next-space"), 1.0);
+ inverse_hooke_ = 1.0;
+ break_permission_ = ly_symbol2scm ("allow");
+ page_permission_ = pb->get_property ("page-break-permission");
+ turn_permission_ = pb->get_property ("page-turn-permission");
+ break_penalty_ = 0;
+ page_penalty_ = robust_scm2double (pb->get_property ("page-break-penalty"), 0);
+ turn_penalty_ = robust_scm2double (pb->get_property ("page-turn-penalty"), 0);
+ title_ = to_boolean (pb->get_property ("is-title"));
+ }
+};
+
+/*